SQLMAP插件tamper編寫與使用詳解
今天繼續(xù)給大家介紹滲透測試相關(guān)知識,本文主要內(nèi)容是SQLMAP插件tamper編寫與使用。
免責(zé)聲明:
本文所介紹的內(nèi)容僅做學(xué)習(xí)交流使用,嚴(yán)禁利用文中技術(shù)進(jìn)行非法行為,否則造成一切嚴(yán)重后果自負(fù)!
再次強(qiáng)調(diào):嚴(yán)禁對未授權(quán)設(shè)備進(jìn)行滲透測試!
一、SQLMAP插件tamper簡介
我們在安裝SQLMAP后,一般來說會有一個名為tamper的目錄,如下所示:

在該目錄下,有很多python腳本,如下所示:

這些python腳本,就是sqlmap的插件,tamper翻譯成中文是過濾的意思,這些腳本,對sqlmap的payload進(jìn)行一定的修改,將其中容易被攔截的關(guān)鍵字等過濾成可以繞過的形式,因此,這些腳本中的內(nèi)容大多是一些替換,其中一個腳本的內(nèi)容如下所示:

相關(guān)tamper腳本的功能介紹請查看文章:SQLMAP插件tamper模塊介紹
二、SQLMAP插件tamper使用
上面我們介紹了SQLMAP插件tamper,而我們在使用SQLMAP對目標(biāo)站點(diǎn)嘗試進(jìn)行SQL注入的時候,我們應(yīng)該如何使用tamper插件呢。其實(shí)非常簡單,只需要在使用SQLMAP命令的時候,添加–tamper,并指定tamper的名稱即可,例如,我們執(zhí)行命令:
python .\sqlmap.py -u http://127.0.0.1/sqli/Less-1/?id=1 --tamper randomcase --proxy=http://127.0.0.1:8080
該命令使用了–proxy參數(shù)來指定代理,這樣可以使得我們使用burpsuit方便我們查看SQLMAP發(fā)送的數(shù)據(jù)包payload,burpsuit抓取到的數(shù)據(jù)包如下所示:

從上圖可以看出,數(shù)據(jù)包中的payload進(jìn)行了大小寫隨機(jī)轉(zhuǎn)換的處理,tamper插件發(fā)揮作用。
三、SQLMAP插件tamper編寫
最后,我們來簡單介紹一下tamper插件的編寫邏輯。
實(shí)際上,盡管SQLMAP自帶有很多插件,但是這些插件均不能繞過當(dāng)前使用的主流服務(wù)器安全防護(hù)軟件。因此,我們?nèi)绻褂肧QLMAP來進(jìn)行SQL注入的滲透測試,經(jīng)常需要自己手動編寫tamper插件。
tamper插件的編寫邏輯很簡單,一個典型的tamper插件如下圖所示:

從上圖中可以看出,該插件的邏輯非常簡單,輸入的是原始的payload,該腳本會對payload進(jìn)行處理后,然后輸出處理后的payload,其核心處理語句如下所示:
retVal = re.sub(r"\s*=\s*", " LIKE ", retVal)
re.sub是依據(jù)正則表達(dá)式的替換函數(shù),在該實(shí)例中,該函數(shù)使用了3個參數(shù),第一個參數(shù)為正則表達(dá)式,第二個參數(shù)為要被替換成的字符,第三個參數(shù)為要檢索的字符串。
該腳本的作用是,檢索retVal字符串中符合該正則表達(dá)式的值,并且用LIKE替換,因此就起到了替換payload中的等號“=”,并且使用LIKE替換的目的。
因此,如果我們要編寫自己的tamper插件,也可以參考上述邏輯,進(jìn)行payload的替換,由于其格式是相同的,因此我們可以直接參考現(xiàn)有tamper格式,然后寫入自己的內(nèi)部邏輯,并最終生成一個py腳本,放到tamper目錄下即可。
到此這篇關(guān)于SQLMAP插件tamper編寫與使用的文章就介紹到這了,更多相關(guān)SQLMAP tamper使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SQL Server 2012 多表連接查詢功能實(shí)例代碼
這篇文章主要介紹了SQL Server 2012 多表連接查詢功能實(shí)例代碼,需要的朋友可以參考下2017-01-01
sqlserver存儲過程中SELECT 與 SET 對變量賦值的區(qū)別
SQLServer中對已經(jīng)定義的變量賦值的方式用兩種,分別是 SET 和 SELECT。對于這兩種方式的區(qū)別,SQL Server 聯(lián)機(jī)叢書中已經(jīng)有詳細(xì)的說明,但很多時候我們并沒有注意,其實(shí)這兩種方式還是有很多差別的。2011-04-04
數(shù)據(jù)結(jié)構(gòu)簡明備忘錄 線性表
線性表是線性結(jié)構(gòu)的抽象,線性結(jié)構(gòu)的特點(diǎn)是結(jié)構(gòu)中的數(shù)據(jù)元素之間存在一對一的線性關(guān)系。2010-03-03
通過分析SQL語句的執(zhí)行計(jì)劃優(yōu)化SQL
基于代價的優(yōu)化器是很聰明的,在絕大多數(shù)情況下它會選擇正確的優(yōu)化器,減輕了DBA的負(fù)擔(dān)。但有時它也聰明反被聰明誤,選擇了很差的執(zhí)行計(jì)劃,使某個語句的執(zhí)行變得奇慢無比2011-10-10
在SQL Server中恢復(fù)多個數(shù)據(jù)庫的方法小結(jié)
這篇文章主要介紹了如何在SQL Server中恢復(fù)多個數(shù)據(jù)庫,通常情況下,只要備份文件的名稱與相應(yīng)的數(shù)據(jù)庫匹配,且沒有附加的日期或時間信息,就可以通過有效的 T-SQL 腳本來完成恢復(fù),文中給介紹了在SQL Server中恢復(fù)多個數(shù)據(jù)庫的方法小結(jié),需要的朋友可以參考下2024-09-09
SQL?Server數(shù)據(jù)庫表的創(chuàng)建與管理操作大全
這篇文章主要給大家介紹了關(guān)于SQL?Server數(shù)據(jù)庫表的創(chuàng)建與管理操作的相關(guān)資料,?SQL?Server是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它可以幫助用戶創(chuàng)建、管理和查詢數(shù)據(jù),文中介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
SQLSERVER語句的執(zhí)行時間顯示的統(tǒng)計(jì)結(jié)果是什么意思
在SQL語句調(diào)優(yōu)的時候,大部分都會查看語句執(zhí)行時間,究竟SQLSERVER顯示出來的統(tǒng)計(jì)結(jié)果是什么意思,接下來為您一一解釋,感興趣的朋友可以了解下2013-01-01

