Burp Suite利用宏绕过随机码
为了防止CSRF攻击,服务端随机产生一个token,然后将token交给前端,下次发送请求时,需将token一并发送,由服务器端验证是否一致。
注:这里是自己搭建的环境,重点在于总结宏绕过
实验步骤:
1、访问目标靶机,选择密码**模块并设置
中等级
http://192.168.1.140:8086/login.php
2、尝试登录,观察
如图:较低等级,中等级添加了salt值,查看网站源代码,查看salt值
注:重复访问操作会发现salt值是随机的(查看网页源代码)
分析得出salt是一个隐藏的字段,并跟随Request发出,用来验证每个Request的有效性。
3、利用BurpSuite中Option模块(Macros宏)绕过salt
注:首先获取salt的值,每次发送Request时均携带此值。
(1)打开Options-Sessions-Macros,并Add一个Macro(宏):
(2)在Macros Recorder中选择需要添加的请求,并点击OK:
(3)更改Macro名称,选择Configure item编辑此请求(修改宏名称为get_salt)
(4)下方有名为Custom parameter locations in response(在response中定义参数位置)的窗口,点击Add:
(5)更改参数名称,并选择参数位置,此时Burp可以自动生成正则表达式:
(6)点击OK后,可以看到Macro已经设置好了:
(7)之后需要添加会话处理规则,选择Options-Sessions-Session Handling Rules-Add:
(8)添加描述之后,选择Add-Run a macro:
(9)选择刚才设置的Macro,并设置要更改的参数名称,选择OK:
(10)在Scope选项卡中,选择适用范围与URL:
(11)这样规则就添加成功了,选择Enabled:
(12)此时规则已经应用成功,可在Repeater中进行测试:(出现 salt值每次发生变化则表示完成)
(13)可以看到,每次点击Go之后,salt的值都会根据上个Response更新,此时在进行Intruder Attack即可,注意由于Requests有先后顺序,Threads并不能设置太高(根据这道题的局限性,只能设置为1):
先看一个失败的回包:
再看一个成功的回包:
注:若回包不能看回包长度,需要看里面的相关值 这里需要如进在Options选择卡中,增加Match字段继续匹配
(14)如果根据返回长度无法判断,则需要进行进一步分辨,如进在Options选择卡中,增加Match字段继续匹配:
注:这里清除掉其他干扰选项,只添加sucess