3、SQLMAP自帶繞過腳本tamper的講解mysql
sqlmap在默認狀況下除了使用CHAR()函數防止出現單引號,沒有對注入的數據進行修改,還可使用--tamper參數對數據作修改來繞過WAF等設備,其中大部分腳本主要用正則模塊替代攻擊載荷字符編碼的方式來繞過WAF的檢測規則。sql
sqlmap.py xxxx --tampet 」模塊名「
目前官方提供53個繞過腳本,在平常使用中,咱們會對一些網站是否有安全防禦(WAF/IDS/IPS)進行試探,可使用參數--identify-waf進行檢測。下面介紹一些經常使用的tamper腳本。數據庫
1、apostrophemask.py :將引號替換爲UTF-8,用於過濾單引號。安全
2、base64encode.py :替換爲base64編碼。app
3、multiplespaces.py:圍繞SQL關鍵字添加多個空格。dom
4、space2plus.py:用+號替換爲空格。ide
5、nonrecursivereplacement.py:做爲雙重查詢語句,用雙重語句替代預約義的SQL關鍵字(適用於很是弱的自定義過濾器,例如將SELECT替換爲空)。函數
6、space2randomblank.py:將空格替換爲其餘有效字符。post
7、unionalltounion.py:將UNION ALL SELECT替換爲UNION SELECT。測試
8、securespher.py:追加特製的字符串。
9、space2hash.py:將空格替換爲#號,並添加一個隨機字符串和換行符。
10、space2mssqlblank.py(mssql):將空格替換爲其餘空符號。
11、spce2mssqlhash.py:將空格替換爲#號,並添加一個換行符。
12、between.py:用NOT BETWEEN 0 AND 替換大於號(>),用BETWEN AND 替換等號(=)。
13、percentage.py:ASP容許在每一個字符前面添加一個%號1.
14、sp_password.py:從DBMS日誌的自動模糊處理的有效載荷中追加sp_password。
15、charencode.py:對給定的Payload所有字符使用URL編碼(不處理已經編碼的字符)。
16、randomcase.py:隨機大小寫。
17、charunicodeencode.py:字符串unicode編碼。
18、space2comment.py:將空格替換爲/**/。
19、equaltolike.py:將等號替換爲like。
20、greatest.py:繞過對」>"的過濾,用GREATEEST替換大於號。
以上測試經過的數據庫類型和版本:
mysql4、mysql5.0和mysql5.5
orcale10g
postgresql8.3、postgresql 8.4和postgresql9.0
21、ifnull2ifisnull.py:繞過對IFNULL的過濾,替換相似IFNULL(A,B)爲IF(ISNULL(A),B,A)。
測試經過的數據庫類型和版本爲MySQL 5.0和MySQL 5.5
22、modsecurityversioned.py:過濾空格,使用MySQL內聯註釋的方式進行注入。
測試經過的數據庫類型和版本爲MySQL5.0
23、space2mysalblank.py:將空格替換爲其它空白符號(適用於MySQL)
測試經過的數據庫類型和版本爲MySQL5.1
24、modesecurityzeroversioned.py:使用MySQL內聯註釋的方式(/*!00000*/)
測試經過的數據庫類型和版本爲MySQL 5.0
25、space2mysqldash.py:將空格替換爲--,並添加一個換行符。
26、bluecoat.py:在SQL語句以後用有效的隨機空白符替換空格符,隨後用LIKE替換等於號。
測試經過的數據庫類型和版本爲MySQL5.1和SGOS
27、versionedkeywords.py:註釋繞過。
28、halfversionedmorekeywords.py:當數據庫爲MySQL時繞過防火牆,在每一個關鍵字以前添加MySQL版本註釋。
測試經過的數據庫類型和版本爲MySQL 4.0.18和MySQL 5.0.22
29、space2morehash.py:將空格替換爲#號,並添加一個隨機字符串和換行符。
測試經過的數據庫類型和版本爲MySQL5.1.14
30、apostrophenullencode.py:用非法雙字節unicode字符替換單引號。
31、appendnullbyte.py:在有效負荷的結束位置加載零字節字符編碼。
32、chardoubleeencode.py:對給定的Payload所有字符使用雙重URL編碼(不處理已編碼的字符)。
33、unmagicquotes.py:用一個多字節組合(%bf%27)和末尾通用註釋也一塊兒替換空格。
34、randomcomments.py:用/**/分割SQL關鍵字。
雖然SQLMAP自帶的tamper能夠作不少事情,但在實際環境中,每每比較複雜,可能會遇到不少狀況,tamper不可能很全面地應對各類環境。