WAF绕过之规则层面的绕过注入,网络安全零基础入门到精通教程建议收藏!
对于渗透测试人员来说掌握绕过各类WAF是一项重要的基本技能而WAF又分云WAF、硬件WAF、软件WAF、代码级WAF,本文针对基于规则类的WAF绕过技巧,这三篇文章希望可以帮助一些萌新学习到一些绕过WAF的姿势。绕过SQL注入规则主要利用WAF规则本身的问题、未考虑到SQL语法变形、及后端数据库SQL语句语法特性。不同的数据库虽然遵守SQL标准,但是通常会加入特有的语法。WAF的防御策略要兼顾各种
1 前言
对于渗透测试人员来说掌握绕过各类WAF是一项重要的基本技能而WAF又分云WAF、硬件WAF、软件WAF、代码级WAF,本文针对基于规则类的WAF绕过技巧,这三篇文章希望可以帮助一些萌新学习到一些绕过WAF的姿势。
2 概述
绕过SQL注入规则主要利用WAF规则本身的问题、未考虑到SQL语法变形、及后端数据库SQL语句语法特性。不同的数据库虽然遵守SQL标准,但是通常会加入特有的语法。WAF的防御策略要兼顾各种数据库的特殊语法,容易遗漏,从而被利用绕过WAF。已下我们就介绍一些方法。
1关键字替换
2特殊符号
3注释符
4空白符绕过
5浮点数词法解析
6利用不常用报错函数绕过
3 关键字替换
原理:现在世面上大部分WAF是通过正则+黑名单来起到拦截的作用,这种情况就可以用一些平常用的很少关键字替换来实现绕过,用的多的针对他的正则肯定就多,而这时候用一些偏门的,往往可以出乎意料。例如在mysql中,很多的waf会将sleep()函数列入了黑名单,为他添加很多相对应的正则,那么可以考虑使用和他差不多相同功能的benchmark()函数来实现绕过。
例如MySql中:
●AND 等价于 && ( 运算符 )
●OR 等价于 || ( 运算符 )
●= 等价于 like ( 运算符 )
●sleep() 等价于 benchmark() ( 延时函数 )
●mid()substring() 等价于 substr() ( 字符串截取函数 )
4 特殊符号
原理:关于这个的话就比较少了,有的时候waf在判断规则的时候是根据我们输入的内容来过滤的,例如360网站卫士,select * from tdb_goods where goods_id ='-1’unionselect*fromadmin 你这样输入语句他是不拦截的,但是你这样带入到MySql中MySql也不会识别,这个时候我们就可以尝试使用 “+”。
例子:select+*+from+admin 这样来尝试绕过“+”号相当于空格 在过滤空格的时候可以考虑使用这个突破。
5 注释符
原理:/*xxx*/是注释的意思,也是空白符的意思。MySQL对sql语句(union/**/select)词法是可以正常解析的。事实上大部分WAF都考虑到/**/可以作为空白符,但是waf检测 “/\*.*\*/”是非常性能,工程师会去使用一些折中的方法,例如说:可能在检测中间引入一些特殊字符,例如:/*\w+*/。或者,WAF可能只中间检查n个字符“/\*.{,n}\*/”。
1注释符: 2/**/ (常用于绕过waf)
3/*!*/ (常用于绕过waf)
4-- (常用于注释后面的sql语句)
5# (常用于注释后面的sql语句)
例子: 这种情况我们就可以考虑使用
select/**/xx/**/from/**/xxxx
select/*数字+字母*/xx/*数字+字母*/from/*数字+字母*/xxxx
select/*特殊符号+数字+字母*/xxx/*特殊符号+数字+字母*/from/*特殊符号+数字+字母*/xxxxx
举例: select/*@a?v|ddd–n*/xxxxx/*@a?v|ddd–n*/from/*@a?v|ddd–n*/xxxx
这里要特别说明,以前看到一篇waf绕过的文章那位前辈使用了 emoji表情 没错就是 emoji表情 绕过了国内大部分的WAF这故事告诉我们绕WAF就是在比脑洞想工程师没有想到的地方那么绕过WAF自然就水到渠成了。
6 空白符绕过
原理:现在大部分的WAF还是基于正则表达式来进行过滤的, SQL注入规则使用正则表达式的“\s”匹配空格,例如”select\s+union”。
那么利用正则表达式的空白符与MySQL空白符的不同说不定就可以绕过WAF的规则。
正则表达式空白符:%09,%0a,%0b,%0D,%20
MySql空白符:%09,%0A,%0b,%0D,%20,%0C,%A0,/**/
7 浮点数词法解析
原理: 利用MySql可以解析浮点数这个特点我们可以构造一些特殊的,带浮点数的语句来绕过WAF。
例子: 1select * from xxx where id=8E0union select 1,2,3,4,5,6,7E0from xxxx
2select * from xxx where id=8.0union select 1,2,3,4,5,6,7.0from xxxx
3select * from xxx where id=8\Nunion select 1,2,3,4,5,6,7 \Nfrom xxx
8 利用不常用报错函数绕过
原理:mysql的函数非常多,不同的函数有不同的功能,但是有一些对于我们渗透测试获取数据是很有用的但是又是用的很少的函数,WAF可能因为规则的不全木有录入进去导致绕过。
例子: 1select extractvalue(1, concat(1,user() ));
2select updatexml(1, concat(1,user() ),1);
3select exp(~(select * from(select user())a))
这里我就列举三种因为其他的大部分都需要 select * from xxx 我都可以这样操作了何必还那么麻烦呢?所以这里就列举了这3个比较实用的。
9 实例1
绕过网站安全狗(Apache版)4.0.18089进行注入












9 实例2-绕过云锁win_3.1.6版进行注入(针对GET请求)












10 实例3-绕过360网站卫士获取数据(一次很失败的绕过)
这个方法用于大家找到了网站的注入但是又证明不了时使用,只能出 user() 数据来证明这是一个漏洞。







最终user用户名称:cloud_checker@10.205.121.21
学习资源
如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你
知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。
1、知识库价值
深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。
广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。
实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。
2、 部分核心内容展示
360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。
内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。
1、网络安全意识

2、Linux操作系统

3、WEB架构基础与HTTP协议

4、Web渗透测试

5、渗透测试案例分享

6、渗透测试实战技巧

7、攻防对战实战

8、CTF之MISC实战讲解

3、适合学习的人群
一、基础适配人群
- 零基础转型者:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链;
- 开发/运维人员:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展或者转行就业;
- 应届毕业生:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期;
二、能力提升适配
1、技术爱好者:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者;
2、安全从业者:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力;
3、合规需求者:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员;
因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】

更多推荐
所有评论(0)