SQLMAP插件tamper編寫與使用詳解
今天繼續給大傢介紹滲透測試相關知識,本文主要內容是SQLMAP插件tamper編寫與使用。
免責聲明:
本文所介紹的內容僅做學習交流使用,嚴禁利用文中技術進行非法行為,否則造成一切嚴重後果自負!
再次強調:嚴禁對未授權設備進行滲透測試!
一、SQLMAP插件tamper簡介
我們在安裝SQLMAP後,一般來說會有一個名為tamper的目錄,如下所示:
在該目錄下,有很多python腳本,如下所示:
這些python腳本,就是sqlmap的插件,tamper翻譯成中文是過濾的意思,這些腳本,對sqlmap的payload進行一定的修改,將其中容易被攔截的關鍵字等過濾成可以繞過的形式,因此,這些腳本中的內容大多是一些替換,其中一個腳本的內容如下所示:
相關tamper腳本的功能介紹請查看文章:SQLMAP插件tamper模塊介紹
二、SQLMAP插件tamper使用
上面我們介紹瞭SQLMAP插件tamper,而我們在使用SQLMAP對目標站點嘗試進行SQL註入的時候,我們應該如何使用tamper插件呢。其實非常簡單,隻需要在使用SQLMAP命令的時候,添加–tamper,並指定tamper的名稱即可,例如,我們執行命令:
python .\sqlmap.py -u http://127.0.0.1/sqli/Less-1/?id=1 --tamper randomcase --proxy=http://127.0.0.1:8080
該命令使用瞭–proxy參數來指定代理,這樣可以使得我們使用burpsuit方便我們查看SQLMAP發送的數據包payload,burpsuit抓取到的數據包如下所示:
從上圖可以看出,數據包中的payload進行瞭大小寫隨機轉換的處理,tamper插件發揮作用。
三、SQLMAP插件tamper編寫
最後,我們來簡單介紹一下tamper插件的編寫邏輯。
實際上,盡管SQLMAP自帶有很多插件,但是這些插件均不能繞過當前使用的主流服務器安全防護軟件。因此,我們如果要使用SQLMAP來進行SQL註入的滲透測試,經常需要自己手動編寫tamper插件。
tamper插件的編寫邏輯很簡單,一個典型的tamper插件如下圖所示:
從上圖中可以看出,該插件的邏輯非常簡單,輸入的是原始的payload,該腳本會對payload進行處理後,然後輸出處理後的payload,其核心處理語句如下所示:
retVal = re.sub(r"\s*=\s*", " LIKE ", retVal)
re.sub是依據正則表達式的替換函數,在該實例中,該函數使用瞭3個參數,第一個參數為正則表達式,第二個參數為要被替換成的字符,第三個參數為要檢索的字符串。
該腳本的作用是,檢索retVal字符串中符合該正則表達式的值,並且用LIKE替換,因此就起到瞭替換payload中的等號“=”,並且使用LIKE替換的目的。
因此,如果我們要編寫自己的tamper插件,也可以參考上述邏輯,進行payload的替換,由於其格式是相同的,因此我們可以直接參考現有tamper格式,然後寫入自己的內部邏輯,並最終生成一個py腳本,放到tamper目錄下即可。
到此這篇關於SQLMAP插件tamper編寫與使用的文章就介紹到這瞭,更多相關SQLMAP tamper使用內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- SQLMAP插件tamper模塊簡介
- python編寫WAF與Sqlmap結合實現指紋探測
- python爬取免費代理並驗證代理是否可用
- Nginx配置本地圖片服務器的實現
- 圖文詳解HTTP頭中的SQL註入