burpsuite设置宏绕过csrf token

上一篇 / 下一篇  2015-09-10 10:49:04 / 个人分类:渗透测试

为了防止csrf和表单重复提交,有些系统使用了token机制,具体机制可自行研究,这对我们的个别测试造成了一定的不便。

解决思路:

1、将获取token的操作设置为宏,自动完成每次重新获取token的操作(最为省时,但比较麻烦)

2、测试阶段让开发将token设为一个定值(最为方便)

3、全部测试均使用proxy模块(最为简单,但最为耗时,且无法完成高级自动化测试功能)

针对思路1百度了一下,发现答案同质化严重,基本均参考外国博客:

https://labs.asteriskinfosec.com.au/fuzzing-and-sqlmap-inside-csrf-protected-locations-part-1/

实际试了下,发现还是英文原版的看的明白,中文的写的都太简略

如下为burpsuite绕过token的方法:

1、进入options选项、选择sessions

2、添加一个session handing rules,在弹出的session handing rules editor中输入rule的名字,并添加一个action

3、在点击Add弹出的菜单中选择run a macro(设置一个宏)

4、之后选择添加一个宏(点击Add

5、此时会弹出两个页面:macro recordermacro editor

首先看macro recorder页面,使用方式和proxy模块中http history一样

具体操作方式(以最简单的登录为例):

1)设置好浏览器,关闭burpsuite的拦截器

2)清掉之前的请求记录,开启一个新的浏览器(防止之前请求的影响)

3)访问登录页面,此时可以看到响应中有_csrf参数,目的达到

4ctrl选中刚才的get请求,点击OK

6、此时macro recorder页面会关闭,进入macro editor页面

可以在此页面测试宏(对于比较复杂的宏)

7、点击OK,回到action editor界面,选择只替换token参数

8、回到rule editor界面,选择scope页,选择此宏的作用域

9、如下我们就绕过了登陆页面的token,即可以拿一个请求重复发送,每次重新登陆获取token的步骤burpsuite自动帮我们做了。

intruder里验证,好的,我们发现我们可以对密码进行爆破了~

但是实际使用中遇到了一些问题:

如果token不是位于参数里而是位于header里,即X-CSRF-TOKEN,目前无法替换,不知道可有好的方法。


TAG: burpsuite csrf token

 

评分:0

我来说两句

Open Toolbar