使用参数“-l”指定一个Burp或WebScarab的代理日志文件,Sqlmap将从日志文件中解析出可能的攻击目标,并逐个尝试进行注入。该参数后跟一个表示日志文件的路径。
WebScarab我没有用过,Burp倒是常常会用。Burp默认不记录日志,想要记录日志需要手动开启,设置方法如下图所示:
只用勾选代理中的请求数据就足够了,日志文件路径可随意设置,这里我设置日志文件名为proxy.log,放在用户主目录中。
设置浏览器的代理为Burp,随便浏览几个网页后发现proxy.log竟然已经有70多K大,查看其内容,部分输出如下:
werner@Yasser:~$ more proxy.log
======================================================
7:22:52 PM :80 [117.18.237.29]
======================================================
POST / HTTP/1.1
Host: ocsp.digicert.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-SG,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Length: 83
Content-Type: application/ocsp-request
DNT: 1
Connection: close
0Q0O0M0K0I0 +
�ǝ ��Pr�Tz�
======================================================
======================================================
7:23:00 PM :80 [47.95.49.160]
======================================================
GET /pyufftj/article/details/21469201 HTTP/1.1
Host: blog.csdn.net
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
...
可以看到该日志文件不仅记录了GET参数,还记录了cookie和POST参数。现在使用如下命令让Sqlmap解析该日志文件,自动寻找目标,检测注入漏洞:
python sqlmap.py -l ../proxy.log
注意日志文件的路径要写正确。执行该命令时,每找到一个可能的攻击目标,Sqlmap都会询问是否要检测该目标。,默认回答为“Y”,想要测试该目标,直接按回车键就行。
当日志较大时会有很多可能目标,虽然有询问机制但依旧麻烦,因为不能一路按回车而要进行判断。若是可以对日志进行过滤就好了!确实是可以的,参数为“–scope”,详情见“五.18”。
4.从站点地图文件中解析目标
参数:-x
为便于搜索引擎收录,许多网站专门为搜索引擎生成了xml格式的站点地图,如。Sqlmap可以直接解析xml格式的站点地图,从中提取攻击目标,对一个网站全方位无死角地进行注入检测,此时使用的参数是“-x”,如:
python sqlmap.py -x
但执行该命令的结果却是:
[WARNING] no usable links found (with GET parameters)
没有找到有GET参数的可用链接。就我有限的经验而言,站点地图中的URL很少包含GET参数,POST参数就更不用说了。所以Sqlmap的这一功能似乎有些鸡肋。
5.从文本文件中解析目标
参数:-m
参数“-u”一次只能指定一个URL,若有多个URL需要测试就显得很不方便,我们可用将多个URL以一行一个的格式保存在文本文件中,然后使用参数“-m”,后跟该文本文件路径,让Sqlmap依次读取文件中的URL作为攻击目标。
如我们有文件url.txt,内容为:
?q=foobar
?id=1
*
然后可用使用如下命令让Sqlmap测试这些URL是否存在注入漏洞:
python sqlmap.py -m url.txt
同样,执行该命令时,Sqlmap会很贴心地一个个询问:“do you want to test this URL?”
6.从文件载入HTTP请求
参数:-r
可以将一个HTTP请求保存在文件中,然后使用参数“-r”加载该文件,Sqlmap会解析该文件,从该文件分析目标并进行测试。
设有如下所示的HTTP请求保存在文件get.txt中:
GET /user.php?id=1 HTTP/1.1
Host: 192.168.56.101:8080
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-SG,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
则使用如下命令让Sqlmap解析该文件,以该文件中HTTP请求目标为攻击目标进行测试:
python sqlmap.py -r get.txt
7.将Google搜索结果作为攻击目标
参数:-g