我正在尝试找出使用该GET
方法验证正确凭据的网站区域的密码。该页面是,.aspx
但我不确定这是否会产生任何有效的影响。
事实:
- 我已经知道用户名了。
- 没有针对机器人的保护措施 - 例如:没有
CAPTCHA
保护措施。没有任何东西可以验证是否是人类在尝试登录。 - 重试次数不受限制。页面不会将您踢出,也不会在后续失败尝试后强制进入冷却期。
这不是一个家庭作业问题或项目,更重要的是,获取和使用密码(如果找到)并不违反任何法律。
我只是不熟悉使用暴力破解程序来破解密码。我对暴力密码破解程序的了解仅限于,它们会系统地尝试使用提供的密码字典 txt 文件或自动生成的列表进行登录。
我试过了布鲁图斯以及 Mac 上另一个我忘记名字的程序。这两个程序都没有给我任何有用的信息,而且似乎也没有尝试过。我不知道暴力破解是否可行,或者我使用的程序是否过时,但无论如何,有人知道我该如何破解密码吗?
正如我之前提到的,这里不存在法律问题。我只是想向那些认为开发自己的登录脚本比实施已经涵盖了这些“黑客”预防问题的软件包更好的人证明这一点。
如果有人认为这个问题不适合或不被 superuser.com 接受,请将其迁移到其他 stack exchange 家族成员。如果它完全不合适,我很抱歉,投票关闭或删除它。
感谢提供任何信息
答案1
好吧,假设一个包含 az、AZ、0-9 和特殊字符的 6 个字符长的密码(为了便于讨论,我们将使用 qwerty 键盘上数字上方的字符),则有 139,314,069,504 种可能的组合。这意味着破解它需要 4,000 多年,每秒破解一次。即使是仅包含 5 个字符的字母和数字的密码,也有 916,132,832 种组合,破解它需要大约 29 年,每秒破解一次。
我想你可以让一组计算机同时尝试,但是你要用多少台机器来分担工作量呢?
什么是更可能的是找到另一种进入方式;这通常是 SQL 注入或错误检查,允许您直接或绕道访问数据库,以便您可以转储(假定的)密码哈希或直接密码。然后,有一个查找表或分解哈希的算法就容易多了。
除了回答之外,关于您的评论:
我只是想向那些认为开发自己的登录脚本比实施已经涵盖这些“黑客”预防问题的软件包更好的人证明这一点。
编写自己的库需要一些经验、成功和信任(等等)。不要误会我的意思,作为一名软件人员,我已经学会欣赏其他人编写的库,但如果我从未编写过自己的 String 类,我想我不会对数据类型有如此多的欣赏(也不会对内存管理有如此多的理解)。话虽如此,如果这是一个生产环境,我确实同意你的观点,可能应该使用“专业”库。
答案2
如何编写一个小脚本来生成所有可能的密码排列(或使用字典)并生成 WGET 的实例(当然有限制,以避免因数百万个进程而杀死系统)?
通过并行运行大量 WGET 实例,找到它所需的时间将大大减少(Brad 提到 1/秒,但这样,您就可以获得 10、100 或 1,000/秒,仅受您的互联网连接限制)。
当然,关键是要采用向页面提供用户名/密码的格式。您在标题中提到了 POST/GET,但我不知道这是否正确(大多数网站只使用其中一种;同时使用两种都是没有意义的)。