【总结】sqlmap常用命令
post
-u url --forms --skip(指定跳过参数) "" --technique BEUST(自选) --dbms mysql --batch --threads 10
-u url --data "" --technique BEUST --banner --batch --threads 10
-r req.txt -p "" --technique BEUST --dbms mysql --batch --threads 10
cookie
-r *.txt --cookie "" --technique BEUST --dbms mysql --level 2 --batch --threads 10
*指定参数 -r *.txt --cookie "" --technique BEUST --dbms mysql 这里不需要使用--level 2
user-agent
*指定参数 -r *.txt --user-agent "" --technique BEUST --dbms mysql --batch --threads 10
referer
*指定参数 -r *.txt --referer "" --technique BEUST --dbms mysql --batch --threads 10
绕waf
--tamper "" //指定脚本
防屏蔽
-safe-freq 3 //一个斜杠
代理
--proxy ""
--technique
这个参数可以指定sqlmap使用的探测技术,默认情况下会测试所有的方式。
支持的探测方式如下:
B: Boolean-based blind SQL injection(布尔型注入)
E: Error-based SQL injection(报错型注入)
U: UNION query SQL injection(联合查询注入)
S: Stacked queries SQL injection(可多语句查询注入)
T: Time-based blind SQL injection(基于时间延迟注入)
eg:sqlmap.py -u url --technique B
--level
一共5个等级,默认为1
--level 2 探测cookie型注入
--level 3 探测user-agent、referer注入
参数:-p,--skip
sqlmap默认测试所有的GET和POST参数,当--level的值大于等于2的时候也会测试HTTP Cookie头的值,当大于等于3的时候也会测试User-Agent和HTTP Referer头的值。但是你可以手动用-p参数设置想要测试的参数。例如: -p "id,user-anget"
当你使用--level的值很大但是有个别参数不想测试的时候可以使用--skip参数。
例如:--skip="user-angent.referer"
在有些时候web服务器使用了URL重写,导致无法直接使用sqlmap测试参数,可以在想测试的参数后面加*
--prefix 注入payload字符串前缀
--suffix 注入payload字符串后缀
--tamper 使用给定的脚本(S)篡改注入数据