一、输出级别
参数:-v
sqlmap的输出信息按从简到繁共分为7个级别,依次为0、1、2、3、4、5和6.使用参数“-v <级别>”来指定某个等级,如“-v 6”是指定输出级别为6。默认输出级别为2。各个输出级别的描述如下:
0:只显示Paython的tracebacks信息、错误信息[ERROR]和关键信息[CRITICAL];
1:同时显示普通信息[INFO]和警告信息[WARNING];
2:同时显示调试信息[DEBUG];
3:同时显示注入使用的攻击荷载;;
4:同时显示HTTP请求;
5:同时显示HTTP响应头;
6:同时显示HTTP响应体。
二、指定目标url
参数:-u/-url
使用参数-u指定一个url作为目标,该参数后跟一个表示url的字符串,可以是http协议也可以是https协议。
指定eul文本列表参数:-m
测试多个url时使用,将多个url保存在文本文档中,使用参数“-m”,后跟该文本文档路径。
sqlmap.py -m url.txt
三、从文件中载入HTTP请求
参数:-f
可以将一个HTTP请求保存在文件中,然后使用参数“-r”加载该文件,sqlmap会解析该文件,从该文件分析目标并进行测试。
sqlmap.py -r 1.txt
四、将google搜索作为攻击目标
参数:-g
sqlmap能自动获取google搜索的前一百个结果,对其中有GET参数的URL进行注入测试。当然,所处的网络环境能访问google才行。
sqlmap.py -g "inurl:".php?id=1""
五、请求
HTTP是一个复杂的协议。HTTP请求有多种方法(method),可以在不同位置(GET、POST、cookie和User-Agent等)携带不同参数。往往只有在特定位置携带了特定参数以特定方法发起的请求才是合法有效的请求。sqlmap运行时除了需要指定目标,有时还需要指定HTTP请求的一些细节。下面这些参数都用于指定HTTP请求细节。
5.1 HTTP请求
参数:-method
一般讲sqlmap能自动判断出是使用GET方法还是POST方法,但在某些情况下需要的可能是PUT等少见的方法,此时需要参数“-method”来指定方法。如:“method=PUT”。
5.2 POST数据
参数:-data
该参数指定的数据会被作为POST数据提交,sqlmap也会检测该参数指定数据是否存在注入漏洞。
5.3 cookie
参数:-cookie、-cookie-del、-drop-set-cookie和-load-cookies
有两种情况会用到这些参数:
a.要测试的页面只有在登陆状态下才能访问
b.想要检测是否存在cookie注入
当“-level”设置为2或更高时,sqlmap会自动检测cookie是否存在注入漏洞
1.“-cookie”和“-cookie-del”
在浏览器中登录目标网站后复制出维持登录的cookie,用参数“-cookie”来指定这些cookie,如:
sqlmap.py -u "http://192.168.1.5/727/index.php" --cookie "JSESSIONID=E5D6C8C81;new=werner;"
与POST参数不同,cookie默认的分隔符为“;”,想要指定cookie中的分隔符,使用参数“-cookie-del”。
六、User-agent
参数:"-User-agent"和"-random-agent"
默认情况下sqlmap发送的HTTP请求中的User-agent值为:
sqlmap/1.0-dev-xxxxxxx (http://sqlmap.org)
使用参数“-user-agent”可以指定一个user-agent。。使用参数“-random-agent”,sqlmap会从文件./txt/user-agents.txt中随机地取一个user-agent。
文件存放位置:
C:Python27sqlmap xt
当“-level”设置为3或更高时,sqlmap会检测user-agent是否存在注入漏洞
七、Host
参数:-host
使用该参数可以手动指定HTTP头中的Host值。
当“-level”设置为5或更高时,sqlmap会检测Host是否存在注入漏洞
八、Referer
参数:-referer
使用该参数可以指定HTTP头的Referer值。sqlmap发送的HTTP请求头部默认无Referer字段。
当“-level”设置为6或更高时,sqlmap会检测Referer是否存在注入漏洞