SQLMAP插件tamper編寫與使用詳解
今天繼續(xù)給大家介紹滲透測試相關(guān)知識(shí),本文主要內(nèi)容是SQLMAP插件tamper編寫與使用。
免責(zé)聲明:
本文所介紹的內(nèi)容僅做學(xué)習(xí)交流使用,嚴(yán)禁利用文中技術(shù)進(jìn)行非法行為,否則造成一切嚴(yán)重后果自負(fù)!
再次強(qiáng)調(diào):嚴(yán)禁對(duì)未授權(quán)設(shè)備進(jìn)行滲透測試!
一、SQLMAP插件tamper簡介
我們?cè)诎惭bSQLMAP后,一般來說會(huì)有一個(gè)名為tamper的目錄,如下所示:
在該目錄下,有很多python腳本,如下所示:
這些python腳本,就是sqlmap的插件,tamper翻譯成中文是過濾的意思,這些腳本,對(duì)sqlmap的payload進(jìn)行一定的修改,將其中容易被攔截的關(guān)鍵字等過濾成可以繞過的形式,因此,這些腳本中的內(nèi)容大多是一些替換,其中一個(gè)腳本的內(nèi)容如下所示:
相關(guān)tamper腳本的功能介紹請(qǐng)查看文章:SQLMAP插件tamper模塊介紹
二、SQLMAP插件tamper使用
上面我們介紹了SQLMAP插件tamper,而我們?cè)谑褂肧QLMAP對(duì)目標(biāo)站點(diǎn)嘗試進(jìn)行SQL注入的時(shí)候,我們應(yīng)該如何使用tamper插件呢。其實(shí)非常簡單,只需要在使用SQLMAP命令的時(shí)候,添加–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)常需要自己手動(dòng)編寫tamper插件。
tamper插件的編寫邏輯很簡單,一個(gè)典型的tamper插件如下圖所示:
從上圖中可以看出,該插件的邏輯非常簡單,輸入的是原始的payload,該腳本會(huì)對(duì)payload進(jìn)行處理后,然后輸出處理后的payload,其核心處理語句如下所示:
retVal = re.sub(r"\s*=\s*", " LIKE ", retVal)
re.sub是依據(jù)正則表達(dá)式的替換函數(shù),在該實(shí)例中,該函數(shù)使用了3個(gè)參數(shù),第一個(gè)參數(shù)為正則表達(dá)式,第二個(gè)參數(shù)為要被替換成的字符,第三個(gè)參數(shù)為要檢索的字符串。
該腳本的作用是,檢索retVal字符串中符合該正則表達(dá)式的值,并且用LIKE替換,因此就起到了替換payload中的等號(hào)“=”,并且使用LIKE替換的目的。
因此,如果我們要編寫自己的tamper插件,也可以參考上述邏輯,進(jìn)行payload的替換,由于其格式是相同的,因此我們可以直接參考現(xiàn)有tamper格式,然后寫入自己的內(nèi)部邏輯,并最終生成一個(gè)py腳本,放到tamper目錄下即可。
到此這篇關(guān)于SQLMAP插件tamper編寫與使用的文章就介紹到這了,更多相關(guān)SQLMAP tamper使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SQL Server 2012 多表連接查詢功能實(shí)例代碼
這篇文章主要介紹了SQL Server 2012 多表連接查詢功能實(shí)例代碼,需要的朋友可以參考下2017-01-01sqlserver存儲(chǔ)過程中SELECT 與 SET 對(duì)變量賦值的區(qū)別
SQLServer中對(duì)已經(jīng)定義的變量賦值的方式用兩種,分別是 SET 和 SELECT。對(duì)于這兩種方式的區(qū)別,SQL Server 聯(lián)機(jī)叢書中已經(jīng)有詳細(xì)的說明,但很多時(shí)候我們并沒有注意,其實(shí)這兩種方式還是有很多差別的。2011-04-04數(shù)據(jù)結(jié)構(gòu)簡明備忘錄 線性表
線性表是線性結(jié)構(gòu)的抽象,線性結(jié)構(gòu)的特點(diǎn)是結(jié)構(gòu)中的數(shù)據(jù)元素之間存在一對(duì)一的線性關(guān)系。2010-03-03sql根據(jù)表名獲取字段及對(duì)應(yīng)說明
sql根據(jù)表名獲取字段及對(duì)應(yīng)說明,需要的朋友可以參考下。2010-09-09通過分析SQL語句的執(zhí)行計(jì)劃優(yōu)化SQL
基于代價(jià)的優(yōu)化器是很聰明的,在絕大多數(shù)情況下它會(huì)選擇正確的優(yōu)化器,減輕了DBA的負(fù)擔(dān)。但有時(shí)它也聰明反被聰明誤,選擇了很差的執(zhí)行計(jì)劃,使某個(gè)語句的執(zhí)行變得奇慢無比2011-10-10在SQL Server中恢復(fù)多個(gè)數(shù)據(jù)庫的方法小結(jié)
這篇文章主要介紹了如何在SQL Server中恢復(fù)多個(gè)數(shù)據(jù)庫,通常情況下,只要備份文件的名稱與相應(yīng)的數(shù)據(jù)庫匹配,且沒有附加的日期或時(shí)間信息,就可以通過有效的 T-SQL 腳本來完成恢復(fù),文中給介紹了在SQL Server中恢復(fù)多個(gè)數(shù)據(jù)庫的方法小結(jié),需要的朋友可以參考下2024-09-09SQL Server 服務(wù)由于登錄失敗而無法啟動(dòng)
當(dāng)域的密碼被修改過后,相應(yīng)服務(wù)使用的登陸驗(yàn)證信息不會(huì)自動(dòng)更新需要手動(dòng)來更新,才能解決此問題。如果大家嫌比較麻煩,還是像上面的解決方案那樣直接將登陸身份修改為“本地系統(tǒng)帳戶”比較簡單。2010-05-05SQL?Server數(shù)據(jù)庫表的創(chuàng)建與管理操作大全
這篇文章主要給大家介紹了關(guān)于SQL?Server數(shù)據(jù)庫表的創(chuàng)建與管理操作的相關(guān)資料,?SQL?Server是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它可以幫助用戶創(chuàng)建、管理和查詢數(shù)據(jù),文中介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01SQLSERVER語句的執(zhí)行時(shí)間顯示的統(tǒng)計(jì)結(jié)果是什么意思
在SQL語句調(diào)優(yōu)的時(shí)候,大部分都會(huì)查看語句執(zhí)行時(shí)間,究竟SQLSERVER顯示出來的統(tǒng)計(jì)結(jié)果是什么意思,接下來為您一一解釋,感興趣的朋友可以了解下2013-01-01