阿里云waf-bypass-mssql

admin 2026-01-20 01:12:12 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文记录了针对阿里云WAF下MSSQL注入点的绕过实战。作者尝试了分块传输、编码混淆、HPP及脏字符等多种常规手段均未成功,最终在协助下完成WAF绕过并获取数据。此外还涉及OrderBy注入类型的测试,核心技术细节未完全公开。 综合评分: 55 文章分类: 渗透测试,WEB安全,云安全,漏洞POC


cover_image

阿里云waf-bypass-mssql

安全的黑魔法

2026年1月19日 22:07 湖南

编者荐语:

tql 师傅,感谢加白

以下文章来源于阿兰安全 ,作者阿兰_安音

阿兰安全 .

阿兰安全团队专注于攻防演练、代码审计、工具开发和漏洞trick等等,欢迎大家关注

 仿佛是下一世,少年微笑着脸。

声明

由于传播、利用本公众号阿兰安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号阿兰安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!本公众号文章的内容源自团队,未经许可严禁转载。

前言

这是团队中小伙伴挖到的一个mssql注入,但是存在阿里云waf,经过一番努力和团队中某位师傅的帮助下完成了bypass阿里云waf获取到了user和database

0x01 发现注入点

一个单引号成功的触发了报错信息

两个单引号正常回显

继续深入发现存在阿里云waf

也是花了不少的时间构造了一个payload,证明存在注入点

admin'and%1edatalength('nmsl')not%1ein(0)--

随后也是利用substring获取到了suser_sname()(当前连接到 SQL Server 的登录名)

0x02 fuzz尝试 获取db_name()

0x01 分块传输

利用工具:https://github.com/c0ny1/chunked-coding-converter

这是一款比较不错的sql绕过工具,利用分块传输来绕过waf,这里我们修改获一下payload把suser_sname()换成db_name(),可惜这一次的对手是阿里云waf,不幸GG

0x02 charset编码

参考文章:https://www.t00ls.com/articles-73197.html

不知道师傅们有没有注意到,返回包中的 Content-Type: text/plain; charset=gb2312 我们尝试构造一下 gb2312编码的payload ,同时记得修改请求包中的Content-Type

payload = "admin"
gb2312_bytes = payload.encode('gb2312')
percent_encoded = ''.join(f'%{b:02X}' for b in gb2312_bytes)
print(percent_encoded)

admin –> %61%64%6D%69%6E 发包

跟utf-8编码的返回一致,说明是可行的,那我们来编码一下原payload依然替换成db_name(),不幸还是GG

0x03 iis特性

参考文章:https://cloud.tencent.com/developer/article/1416023

iis支持unicode编码

当然我们还能同时实现 gb2312编码

admin --> 完整unicode编码 --> %u0061%u0064%u006D%u0069%u006E
adm --> gb2312编码  %61%64%6D
in  --> unicode编码 %u0069%u006E
admin --> %61%64%6D%u0069%u006E

那么我们在来一个随机任意字符串进行fuzz,但是还是不幸全部GG

0x04 HPP

HPP在实战中也帮助绕过了不少waf,当时尝试了很久最后用HPP绕过了payload如下:  但是本次利用还是不幸GG

id='aNd+casT(1/currenT_User%0aas%0adecimal)>0&ParamList=string&id='--

0x05 脏字符

脏字符这个其实在实战环境中也帮助绕过了不少waf,10w字符不够那就上20w,20w不够就上50w,再不行就100w。这一次就尝试到了50w脏字符,不幸GG

0x06 真实ip

一般来说,大多数云WAF采用CDN架构,用户请求先经过WAF集群再转发至源站。若能获取未被CDN代理的真实服务器IP,直接访问该IP即可绕过WAF, 但是本次的目标就是真实IP访问,不幸GG

0x07 数据包变形

利用工具:yakit

这里就不放截图了,也是不幸GG

0x08 终极奥义

到了这里,安师傅已经有点小崩溃了,突然他想到了什么,打开了微信,点开了某个人的头像并发送了神秘代码,然后就成功绕过了WAF

0x03 绕过waf

根据某位师傅的指点,安师傅立马写好了脚本,获取到了user和db_name() 开心的交洞去了

0x04 order-by注入

这一次安师傅再一次遇到了mssql,不过是order by注入类型的,这一次他还能绕过吗?

测试payload:
user
[user]

/Api/agent/GetPageListSort?pageSize=20&pageIndex=1&orderBy=user
/Api/agent/GetPageListSort?pageSize=20&pageIndex=1&orderBy=[user]

/Api/agent/GetPageListSort?pageSize=20&pageIndex=1&orderBy=user

/Api/agent/GetPageListSort?pageSize=20&pageIndex=1&orderBy=[user]

0x05 获取payload

相关payload的获取,请添加阿兰微信。

考虑到团队成员,这里不会放出所有的payload。


免责声明:

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

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

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

本文转载自:安全的黑魔法 《阿里云waf-bypass-mssql》

阿里云waf-bypass-mssql 网络安全文章

阿里云waf-bypass-mssql

文章总结: 本文记录了针对阿里云WAF下MSSQL注入点的绕过实战。作者尝试了分块传输、编码混淆、HPP及脏字符等多种常规手段均未成功,最终在协助下完成WAF绕
利用ai逆向js爽挣1500 网络安全文章

利用ai逆向js爽挣1500

文章总结: 本文记录了作者利用AI辅助逆向某站点JS加密参数的实战过程。通过浏览器插件过debugger、堆栈定位及扣取混淆代码,结合AI快速分析DES加密逻辑
评论:0   参与:  0