作者:王松_Striker & Jess_喵
预估稿费:170RMB(不服你也来投稿啊!)
投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿
前言
很多Web应用会有防止跨站请求伪造的策略,比如通过request请求传一个当前页面有效或者当前会话有效的参数(如果他们没有,那就很值得研究)。这些参数用来证明这个请求是从预定用户发出的,而不是攻击者那里。
这些参数,用来防止用户因为被劫持而发出伪造的请求。企业的安全顾问来评估这些参数,过程非常繁琐。传统的扫描器和其他自动化工具不能够准确的提交这些参数,也因此变得不那么理想。
这篇文章将展示如何使用Burp的intruder的Recursive Grep payload功能来自动提交有csrf保护的token的方法。
使用场景
我们使用一个自己开发的程序来展示这个例子。这个程序是一个带有防御csrf的token的简单搜索表单。
我们的目的是通过这个搜索功能来查看是否有XSS漏洞。
当我们第一次加载这个页面,我们看到这个页面的源代码有一个hidden的输入框,name是csrf_token。每次刷新这个页面时,这个token都会改变。
为了自动测试,我们需要一种在每次发送request请求时都能提交正确的csrf_token的方法。提交任何不匹配的数据都会导致报错或者在服务器端显示错误日志。
Recursive Grep功能
Burp工具提供了一个名叫recursive grep的payload,