记一次MSSQL注入绕waf过程

admin 2026-02-17 20:10:54 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文记录了一次针对MSSQL数据库的SQL注入及WAF绕过实战。作者发现注入点后确认列数并识别数据库类型。针对WAF拦截延时函数的情况,采用布尔盲注策略,利用len()、db_name()、ascii()及substring()函数结合二分法,逐步爆破数据库名与表名。最终通过编写脚本自动化执行,成功规避WAF检测并获取数据。 综合评分: 85 文章分类: 渗透测试,WEB安全,漏洞分析


cover_image

记一次MSSQL注入绕waf过程

原创

zkaq-郑居中 zkaq-郑居中

掌控安全EDU

2026年2月11日 11:20 江西

扫码领资料

获网安教程

本文由掌控安全学院 – 郑居中 投稿

Track安全社区投稿~

千元稿费!还有保底奖励~( https://bbs.zkaq.cn)****

在挖漏洞时,使用 xia sql 插件发现一个注入点,经过测试发现存在 waf 拦截记录一下。

在查询中发现单引号是空白页面,在加一个单引号,显示空数据,但是有回显,初步判断 pname 存在 SQL注入。

然后判断列数1’order by 9–无回显,1’order by 8–有回显,所以为 8 列。

像这种有回显、无回显,只能选择盲注,第一反应是时间盲注,那就要看是什么数据库,根据 asp 我们选择 mysql、sqlserver 数据库,不同的数据库,延时语句不一样。

mysql:sleep()

sql server:waitfor delay 0:0:8

但是输入 1'if(length(database())=6,sleep(3),0)--  报错回显 502,说明存在 waf 拦截,经过测试 waf 拦截了 sleep()这个函数,那就避开 sleep()函数,先测试其他函数benchmark(),也被拦截。

hex()、bin()==>ascii()
sleep()==>benchmark()
concat_ws()==>group_concat()
mid()、substr()==>substring()
@@version==>version()
@@datadir==>datadir()
逻辑符号:如and和or不能使用时,尝试&&和||双管道符。

在使用 length()判断数据库名称的长度时,没有 502,返回空白页面,说明 WAF 没有拦截,但是语法错误,怎么会错呢?

想了半天,应该时 SQL server 数据库,不支持 length()、database()函数,使用 len()、db_name()函数测试。

len()函数计算正确和错误,回显数据不一致,说明猜测正确,数据库类型为 SQL server。

那就先测出 db_name()数据库名称的长度。爆破出数据库名称长度为 15 位。

使用 sql server 数据库中的waitfor delay ‘0:0:8’,发现还是被拦截,想到 db_name()和 len()没有被拦截,那就使用 substring()、ascii()函数一个一个计算数据库的字符。

?pName=1%27%20or%20ascii(substring(db_name(),1,1))>100–,使用二分法判断

?pName=1’or ascii(substring(db_name(),1,1))=104–,最后判断出 db_name 第一个字符为 104—–h。

一个一个测是不可能的,直接写一个简单脚本跑一下。直接拿到数据库名称。

数据库得到了,接下来就按部就班的测试表的名称,计算第一个表的长度。

1’or%20len((select%20top%201%20name%20from%20sys.tables))%3D10–

第一个表的长度是 18,接下来就按部就班的使用脚本跑就可以。

申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.

没看够~?欢迎关注!

分享本文到朋友圈,可以凭截图找老师领取

上千教程+工具+交流群+靶场账号

分享后扫码加我!

回顾往期内容

我与红队:一场网络安全实战的较量与成长

网络安全人员必考的几本证书!

文库|内网神器cs4.0使用说明书

重生HW之感谢客服小姐姐带我进入内网遨游

手把手教你CNVD漏洞挖掘 + 资产收集

【精选】SRC快速入门+上分小秘籍+实战指南

代理池工具撰写 | 只有无尽的跳转,没有封禁的IP!

点赞+在看支持一下吧~感谢看官老爷~

你的点赞是我更新的动力


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:掌控安全EDU zkaq-郑居中 zkaq-郑居中《记一次MSSQL注入绕waf过程》

评论:0   参与:  0