Burpsuite是一个功能强大的工具,也是一个比较复杂的工具
本节主要说明一下burp的intruder模块中的2个技巧
1、md5加密
我们在payload Processing中的add选项可以进行选择,Hash加密,md5的加密方式,进行md5进行解密
2、利用漏洞中验证码绕过的小技巧
1. 验证码不刷新
导致验证码不刷新的原因是:登录密码错误之后,session中的值没有更新,验证码不变。验证码不刷新通常有以下两种情况:无条件不刷新、有条件不刷新。
1.1无条件不刷新
无条件不刷新是指在某一时间段内,无论登录失败多少次,只要不刷新页面,就可以无限次的使用同一个验证码来对一个或多个用户帐号进行暴力猜解。
1.2有条件不刷新
有条件不刷新多见于如下情况:登录失败之后,系统会打开一个新页面或者弹出一个新的警告窗口,提示用户登录失败,点击确定后返回登录界面且验证码刷新。这种情况下,只要我们不关闭新窗口或弹窗,配合使用Burpsuite的intruder模块就可以进行暴力破解了。
2.验证码前端可获取
这种情况在早期的一些网站中比较常见,主要是因为程序员在写代码的时候安全意识不足导致的。验证码通常会被他们隐藏在网站的源码中或者高级一点的隐藏在请求的Cookie中,但这两种情况都可以被攻击者轻松绕过。
2.1验证码隐藏在源码中
验证这种情况很简单,我们只需要记住验证码,然后右键打开网站源代码,Ctrl+F搜索,输入刚才的验证码,如果可以成功匹配到,那恭喜你,接下来就可以写工具,提取源码中的验证码并将其放入每次请求的报文中,来进行帐号破解,这里推荐使用python。
2.2验证码隐藏在Cookie中
这种情况,我们可以在提交登录的时候抓包,然后分析一下包中的Cookie字段,看看其中有没有相匹配的验证码,或者是经过了一些简单加密后的验证码。
3. 验证码空值绕过
验证码空值绕过,是在日常的渗透测试中很容易被我们忽略的一点,实际应用中我们可以通过直接删除验证码参数或者Cookie中的一些值来绕过判断,进行暴力破解。
4. 验证码易识别
在平常的漏洞挖掘过程中,如果我们发现登录的验证码非常简单且易于识别,那我们就可以尝试使用自动化工具来进行登录破解了,如PKAV的HTTP Fuzzer。
5. 存在无验证码页面
经过测试,如果我们发现网站验证码自身并不存在缺陷,那我们接下来就可以尝试寻找一些其他的登录页面或接口来尝试暴力破解。
5.1隐藏的页面
这种页面通常是留给测试人员使用的,或者是一些忘记删除的老界面,利用的前提是该界面依旧可用,一般情况下,我们可以通过扫描器来发现这种页面。
5.2 微信公众号、APP登录页面
很多网站的web登录页面已经做的相当完善了,但是却在微信公众后的绑定接口或者是APP的登录界面上面栽了跟头,在渗透测试的过程中,一定不要忘了对公众号和APP的测试。
6. 其他绕过方法
6.1万能验证码
渗透测试的过程中,有时候会出现这种情况,系统存在一个万能验证码,如000000,只要输入万能验证码,就可以无视验证码进行暴力破解。
6.2验证码无效
这种情况下,无论我们输入什么数据,验证码都会判断通过,验证码形同虚设,这种情况我只遇到过一次。
6.3验证码数量有限
多见于计算类型的验证码,如1+8=?,这种类型的验证码严格意义上来说不能叫做验证码,多刷新几次验证码,我们可能会发现系统中的算数题目只有那么几道,这种情况下只要将验证码全部下载下来,生成一个md5库,然后将前端生成的验证码与本地文件进行对比即可。
3、绕过验证码
方法1:
说起对存在验证码的登录表单进行爆破,大部分人都会想到PKav HTTP Fuzzer,这款工具在前些年确实给我们带来了不少便利。
反观burp一直没有一个高度自定义通杀大部分图片验证码的识别方案,这里我查到captcha-kille(https://github.com/c0ny1/captcha-killer)工具,希望burp也能用上各种好用的识别码技术。
其设计理念是只专注做好对各种验证码识别技术接口的调用!
说具体点就是burp通过同一个插件,就可以适配各种验证码识别接口,无需重复编写调用代码。
我们可以去github 下载 captcha-killer.jar 扩展,然后加载到burp中,各种调试成功试别爆破后就可以绕过验证码了
优点:基于 burpsite 开发的小插件,这个插件本身是不能试别验证码的,但是可以添加接口,这就非常方便使用了,直接百度搜索下一些收费或者免费的解码平台,然后配置进去即可,方便简单强大.
缺点:不知道是BUG还是什么情况,我总是遇到修改后的包的http头丢失字母,比如域名xx.com 丢失最后的m 经过各种换接口调试,终于解决了.
自身使用后缺点:需要不断的重新安装,比较麻烦
方法2:
切换到 Burpsuite 的 Project options的session选项卡,点击Macros下的add按钮
点击add按钮之后,这时候弹出两个窗口,一个是Macro 记录器,一个是Macro编辑器,Macro记录器是记录发送那些HTTP请求,Macro编辑器是编辑一些参数,比如具体截取响应报文中的哪一个参数等等
首先操作Macro记录器,点击选择我们要发送HTTP请求,然后点击右下角的OK按钮即可
然后开始操作Macro编辑器, 选择右侧Configure item, 在弹出的界面中找到’Custom parameter locations in response’区域,然后点击右侧的 Add按钮
在弹出的窗口中,首先给要截取得参数值命名,我这里命名为randcode ,然后用鼠标选择我们要截取的内容,这里就把randcode的三位数字的值选取了即可,如果出现如下界面就表示OK了
然后点击右下角的OK,然后在所有回到的界面中继续点击右下角的OK
至此,我们就配置完毕了Macro。
接着开始让Burpsuite 自动调用Macros,并替换经过代理的请求中的randcode的值
我们切换回Project options 的选项卡,找到Session Handling Rules
点击Add 按钮,在弹出的界面中找到Rules Action区域,点击下方的Add按钮,在弹出的下拉列表中选择Run as Macros,在弹出的界面中进行如下配置
点击ok,返回上一页面,切换到Scope标签,进行如下配置
点击ok,然后回到上一个界面继续点击ok,到此,配置完毕,接下来就爆破了