sqlmap Tamper腳本編寫


sqlmap Tamper腳本編寫

前言

sqlmap是一個自動化的SQL注入工具,其主要功能是掃描,發現並利用給定的URL的SQL注入漏洞,目前支持的數據庫是MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB。采用五種獨特的SQL注入技術,分別是:

  • 基於布爾的盲注,即可以根據返回頁面判斷條件真假的注入。
  • 基於時間的盲注,即不能根據頁面返回內容判斷任何信息,用條件語句查看時間延遲語句是否執行(即頁面返回時間是否增加)來判斷。
  • 基於報錯注入,即頁面會返回錯誤信息,或者把注入的語句的結果直接返回在頁面中。
  • 聯合查詢注入,可以使用union的情況下的注入。
  • 堆查詢注入,可以同時執行多條語句的執行時的注入。

sqlmap是滲透測試中判斷sql注入的神器,但是sqlmap不會繞過一些過濾(比如過濾and),也不會繞過安全狗等WAF。為了讓sqlmap更加方便(為了讓自己偷懶不用手動寫python腳本sql 注入)----->sqlmap提供了tamper

tamper內置了很多繞過功能(比如替換雙引號 在括號前增減內聯注釋) 下面就是tamper文件夾中對應的模塊。

tamper格式介紹

tamper文件夾下的所有python文件都滿足以下格式

import re
from lib.core.enums import PRIORITY

__priority__ = PRIORITY.HIGHEST

# 對當前腳本的介紹(不用管)
def dependencies():
    pass


# 對payload進行處理(知識舉個例子 payload將空格變成/**/ 將union變成UnIoN)
def tamper(payload, **kwargs):
	payload = payload.replace('union', 'UnIoN')
    payload = payload.replace(' ', '/**/')
    return payload

編寫完成后放到tamper文件夾下 sqlmap就可以直接使用

sqlmap -u "xxxxx" --tamper "xxx.py,yyy.py" # tamper可以有一個或多個py文件

遇到sql注入的問題直接使用sqlmap是沒有靈魂的,但是如果經過手動判斷,自己編寫了tamper之后再用sqlmap那就是有靈性的( ͡°ᴥ ͡° ʋ)( ͡°ᴥ ͡° ʋ)( ͡°ᴥ ͡° ʋ)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM