Web表单暴力破解技巧


对于没有验证码,没有带token,没有使用AES、RSA等加密算法加密,没有错误账号锁定机制,没有IP锁定机制,或者仅使用一些简单的防护,如对密码进行MD5、SHA-1等,多次错误锁定账号或IP等的Web登录表单来说,绕过这些策略去暴力破解太容易了。本文结合实战经验总结了其它三种绕过防护暴力破解的方法:验证码识别、带token的登录请求、前端加密。

验证码识别

对于简单图片验证码,可以使用PKAV进行识别。GitHub地址:

https://github.com/estell-yf/PKAV

以某网站为例,登录页面如图:

使用PKAV图形验证码识别,输入验证码图片地址,配置识别引擎,点击识别测试,如果成功识别可使用该工具进行暴力破解测试,否则请尝试修改识别引擎多次尝试,如图:

识别成功后即可进行变体设置,如图:

输入分析地址(登录页面url),将Burp抓到的登录数据包复制到请求包,选中用户名和密码添加标记,选中验证码添加验证码标记,然后设置重放模式和变体赋值即可。该网站表单提交使用字符串拼接形式,非常规模式。然后设置重放选项,通常设置验证码长度和返回数据处理,一般根据验证码错误返回数据特征设置重试规则,根据账号密码错误返回数据特征设置变体条件丢弃,根据登录成功返回数据特征设置提取内容,也可以跳过,直接使用默认配置,然后在发包器界面自行筛选破解成功的数据包,如图:

然后启动发包器,开始暴力破解,如图:

对于稍复杂点的图片验证码,可以使用

https://github.com/c0ny1/captcha-killer
https://github.com/f0ng/captcha-killer-modified

或者其他OCR识别工具。

带token的登录请求

有些登录表单包含隐藏token(注意:有些隐藏表单名称为自定义名称,但和token作用相同),在登录时随着用户名和密码同时提交到服务器,token验证通过后再验证用户名密码,如图:

使用Burp设置暴力破解参数(Attack type需要设置为Pitchfork,设置为Cluster bomb不成功),用户名和密码设置方法和以前一样,添加token标记,如图:

然后设置提取物,选中token的值点击Ok即可,如图:

然后根据实际情况设置是否需要进行URL编码,设置是否跟随跳转,如图:

接着设置Payloads,将数据包中的token值填入第一次请求初始payload框中,如图:

使用单线程,然后开始爆破即可。

该方法由于攻击类型不能设置为Cluster bomb而受到限制。

前端加密

现在越来越多系统使用前端加密,但这种方式仍然存在一定风险,一般通过查看源码,查看按钮点击事件跟踪等方法获取加密算法和密钥,进而进行重放并暴力破解。通过跟踪定位js文件获取密钥和加密算法,如图:

使用插件BurpCrypto添加密钥和processor名称,如图:

在Payloads中添加程序,如图:

然后开始暴力破解,如图:

按理来说通过动态获取加密密钥然后进行加密,再提交到服务器端的方法也可以暴力破解,但是目前没研究,以后再说。

声明:Hack All Sec的博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Web表单暴力破解技巧


Hacker perspective for security