網(wǎng)站首頁 編程語言 正文
今天繼續(xù)給大家介紹滲透測(cè)試相關(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)行滲透測(cè)試!
一、SQLMAP插件tamper簡(jiǎn)介
我們?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í)非常簡(jiǎn)單,只需要在使用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編寫
最后,我們來簡(jiǎn)單介紹一下tamper插件的編寫邏輯。
實(shí)際上,盡管SQLMAP自帶有很多插件,但是這些插件均不能繞過當(dāng)前使用的主流服務(wù)器安全防護(hù)軟件。因此,我們?nèi)绻褂肧QLMAP來進(jìn)行SQL注入的滲透測(cè)試,經(jīng)常需要自己手動(dòng)編寫tamper插件。
tamper插件的編寫邏輯很簡(jiǎn)單,一個(gè)典型的tamper插件如下圖所示:
從上圖中可以看出,該插件的邏輯非常簡(jiǎn)單,輸入的是原始的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目錄下即可。
原文鏈接:https://blog.csdn.net/weixin_40228200/article/details/126511769
相關(guān)推薦
- 2022-07-11 在web頁面播放rtsp流視頻(webrtc)
- 2022-07-19 Nacos注冊(cè)中心配置用法解析
- 2023-05-06 MacOS安裝python報(bào)錯(cuò)"zsh:?command?not?found:python"的解決方
- 2022-03-15 redis編譯報(bào)致命錯(cuò)誤:jemalloc/jemalloc.h:沒有那個(gè)文件或目錄
- 2022-06-12 3種Python?實(shí)現(xiàn)酷炫進(jìn)度條的實(shí)用方法_python
- 2022-09-12 Python?argparse庫的基本使用步驟_python
- 2022-07-13 解決 Webpack TypeError: cli.isMultipleCompiler is no
- 2022-12-15 Golang控制協(xié)程執(zhí)行順序方法詳解_Golang
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支