天天看點

sqlmap從入門到精通-第七章-7-1 繞過WAF腳本-apostrophemask.py

7.7 sqlmap使用tamper繞過WAF

7.7.1 tamper簡介

1. tamper簡介

sqlmap壓縮包解壓後根目錄下有個tamper的檔案夾,裡面有58個python腳本,其中剔除__init__.py這個檔案就含有57個腳本,這些腳本對應不同的繞過WAF的功能子產品

2. tamper腳本使用

tamper是sqlmap繞過功能,使用方式:python sqlmap.py --tamper="xxoo.py" 或者 python sqlmap.py --tamper="xxoo.py,ooo.py" 同時執行多個tamper腳本

例如:

python sqlmap.py -u http://106.54.35.126/Less-1/?id=1 --dbs --tamper "appendnullbyte.py"

7.7.2 sqlmap WAF檢測

WAF檢測的方式一般是基于HTTP頭進行檢測,市面上用于識别WAF有一個比較好的工具wafw00f和sqlmap這兩款工具識别

對于識别WAF工具的位址:https://github.com/EnableSecurity/wafw00f

sqlmap使用識别WAF的方式:python sqlmap.py -u http://106.54.35.126/Less-1/?id=1 --identify-waf

7.7.3 tamper繞過WAF腳本清單注釋

sqlmap我目前使用的版本是1.4.5.27含有57個繞過WAF的腳本,按照字母順序來分析,我這裡會詳細給大家示範,是以這一節會分很多小節來示範,是以會很長

1. apostrophemask.py腳本

通過UTF-8全角字元替換單引号字元,在tamper中對原始payload("1 AND '1'='1") 進行替換,将單引号替換為"%EF%BC%87",相當于%EF%BC%87=' ,這裡是适用于所有資料庫

實踐測試:

測試位址:python sqlmap.py -u http://106.54.35.126/Less-1/?id=1 --dbs --tamper="apostrophemask.py" --proxy="http://127.0.0.1:8080"

sqlmap從入門到精通-第七章-7-1 繞過WAF腳本-apostrophemask.py

 測試期間Burpsuite抓包結果:

sqlmap從入門到精通-第七章-7-1 繞過WAF腳本-apostrophemask.py

使用Burpsuite解碼看看

sqlmap從入門到精通-第七章-7-1 繞過WAF腳本-apostrophemask.py

 發現結果并不是單引号,作者書中解釋的是UTF-8全角字元,大家可以自己去測試,我認為與編碼有關。大家可以測試是否是解碼之後為單引号,我這裡使用sqlmap進行測試,結果大家看到了,根本無法注入,實際是存在SQL注入