0x01前言
在測試過程中,經常會遇到一些主機防護軟件,對這方面做了一些嘗試,可成功bypass了GET和POST的注入防禦,分享一下姿勢。
0x02環境搭建
Windows Server 2003+phpStudy
sql注入點測試程式碼:
sql.php
運行效果:
0x03 Bypass過程
對不同waf做了一些嘗試,關於SQL注入bypass,可以考慮劃分為3種:
1、完全bypass(union select+select from)
2、部分bypass(union select或select from)
3、獲取一些敏感資訊(如version()、database()等)
A、Union+select
先考慮如何繞過union+select,可以考慮一下幾種形式
1、最常見形式%20、+、/**/
2、Mysql中可以利用的空白字元有:%09,%0a,%0b,%0c,%0d,%20,%a0
3、內聯注釋 /!12345select/
通過組合測試,可以發現 union%0a/*!12345select*/ 1,2可以繞過防禦。
B、select+from
select+from也可以通過同樣的組合形式繞過防禦。
至此已完全繞過union+select+from。
0x04自動化注入
編寫tamper bypass腳本,來利用sqlmap來跑數據
先看一下原始sqlmap的效果:
sqlmap.py -u http://192.168.106.130/config/sql.php?id=1 --flush-session --dbs 失敗
加載tamper腳本,可成功獲取數據。
sqlmap.py -u http://192.168.106.130/config/sql.php?id=1 --flush-session --technique=U --tamper=“360safe.py”--dbs
tamper腳本:
這邊主要是針對union select査詢進行的關鍵字替換,測試過程中,可以發現利用tamper腳本來bypass的弊端,sqlmap的部分payload是固定的,部分關鍵字會被waf攔截,需要一步步調試,總結,測試哪些關鍵字是被攔截的,如何繞過關鍵字的檢測等,還是挺麻煩。
0x05 END
最好的自動化注入工具:可以考慮自己編寫一個自動化注入工具,靈活的自定義payload來獲取資料庫資訊。
現時的測試成果,可成功bypass注入防禦,如 安全狗、雲鎖、360主機衛士、D盾_IIS防火牆等主機防護軟件及各種雲waf,有些姿勢都在用。
最後
歡迎關注個人微信公眾號:Bypass--,每週原創一篇科技乾貨。