我盯着Burp Suite的力破Intruder标签页看了整整三分钟,那个红色的解实“Start attack”按钮就在眼前。目标是力破一个本地搭建的测试站点,登录表单就两个字段——username和password。解实我手动试了三次,力破admin/admin,解实admin/123456,力破admin/password,解实全部返回“登录失败”。力破第四次输入时,解实我故意把密码改成“admin”,力破系统居然提示“密码错误次数过多,解实账号已锁定”。力破
这是解实个反暴力破解机制,但锁定期只有60秒。力破我等的就是这60秒。
Burp Suite的Intruder模块就是个暴力破解的瑞士军刀。抓包、发送到Intruder、设置payload位置、加载字典、开跑——流程简单得让人怀疑自己是不是漏了什么关键步骤。但真正麻烦的是绕过防护。我盯着那个锁定提示,心里清楚,如果直接跑一万个密码,前三次错误尝试就会触发锁定,然后整个攻击就得停下来等。
解决办法其实很笨:把字典里的密码按顺序排列,每三个一组,每组之间加一个延迟。Intruder的“Resource pool”设置里有个“Delay between requests”选项,我把它设成61000毫秒。这样每跑三个密码,就自动停61秒,等锁定解除。慢是慢了点,但一万个密码跑下来,也就三个多小时。比起手动输入,效率高到不知道哪里去了。
真正让我意外的是,字典选择比技术参数更重要。我一开始用的是rockyou.txt,经典大字典,跑了一个小时,连个水花都没溅起来。后来换了个思路,从目标网站的源码注释里找到了开发者的名字“zhangwei”,又在他的GitHub仓库里翻到了测试密码习惯——他喜欢用“zw+生日”的格式。我手动生成了一个两百条的小字典,把“zw1990”“zw1988”“zw1992”这类组合全塞进去。
第47个密码是“zw19910815”。服务器返回的响应长度从“登录失败”的287字节变成了302重定向的1142字节。Intruder的界面里,那一条结果的颜色和其他条目明显不一样。我点开响应包,看到“Location: /dashboard.php”的那一刻,说实话,有点兴奋。但紧接着冒出来的念头是:这开发者的安全意识,比他写代码的水平差远了。
整个实验做完,我最大的感触不是Burp Suite有多强,而是暴力破解的本质其实是对人类行为的预测。密码不是随机生成的,它是人的记忆习惯、生活经历、懒惰心理的集合体。你不需要尝试所有可能性,你只需要找到那个人的思维模式。技术手段只是加速了这个过程——Intruder负责把猜测变成自动化请求,而真正的“破解”发生在你分析目标、构建字典的那段时间里。
实验结束后,我把那个测试站点的密码改成了“Zx9!qLm@2#vP”,然后给开发者的GitHub提了个issue,建议他检查一下自己的代码仓库有没有泄露敏感信息。他没回复。过了三天,我发现他把那个仓库删了。


相关文章




精彩导读
热门资讯
关注我们