0x00 前言

随着国家安全法的出台,网络安全迎来发展的新时期,越来越多企业或政府单位开始重视网络安全。很多网站陆陆续续告别裸奔时代,开始部署web应用防火墙(WAF)以应对网络攻击。由此,相关网站的安全性很大程度上取决于WAF的防护能力,WAF攻防研究已成为安全从业人员的必修课之一。

大多数WAF以规则匹配为基础进行安全防护,少数WAF带有自学习能力,规则维护成为WAF的核心。近年来,基于语义识别的WAF陆续出现,对其防护能力的研究也成为大家关心的热点之一。本文以MySQL为研究对象,总结相关WAF注入绕过技术,通过实战演练让大家了解各大WAF的相关特性,最后从攻防角度对WAF安全进行总结。

0x01 注入绕过技术总结

对已知的WAF相关绕过技术,总结如下,网上已有相关技巧的讲解,这里就不一一演示,不明白的可以自己查询相关资料:

在实际攻击场景中,单一的绕过技巧往往无效,需要我们综合利用各种绕过技术进行组合,结合各自WAF特性不断进行推理,才能真正实现绕过。

0x02 注入点检测绕过

Bypass WAF的第一步是识别注入点,我们拿到一个URL,第一步判断参数是否有注入,然后再进行后续的绕过。简单的and 1=1 and 1=2判断肯定会被WAF拦截,我们需转变思路进行绕过,一般WAF为了平衡风险和业务的关系不会对下面数字型探测方式进行拦截,否则会产生大量误报影响正常业务运行。

[<img src=“https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/2/26/161d0cee3df20b4e~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image)](https://link.juejin.cn/?target=http%3A%2F%2Fosajswi8b.bkt.clouddn.com%2Fwp-content%2Fuploads%2F2018%2F02%2Ft-2.png “http://osajswi8b.bkt.clouddn.com/wp-content/uploads/2018/02/t-2.png”” style=“margin: auto” />

<img src="https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/2/26/161d0cee3dff3724~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image) [](https://link.juejin.cn/?target=http%3A%2F%2Fosajswi8b.bkt.clouddn.com%2Fwp-content%2Fuploads%2F2018%2F02%2Ft-4.png “http://osajswi8b.bkt.clouddn.com/wp-content/uploads/2018/02/t-4.png”" style=“margin: auto” />

本地测试环境:<img src="https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/2/26/161d0cee3f1230ff~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image)如若 and也会拦截,可以直接在参数上进行类似判断操作,如id=1*0 、id=1*2,除了以上方法,还有很多其它衍生出的识别绕过方法,以{“op}为例作演示,其它的方法大家可以按照这种思路自行发挥" style=“margin: auto” />

安全狗:

[<img src=“https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/2/26/161d0cee3e232314~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image)](https://link.juejin.cn/?target=http%3A%2F%2Fosajswi8b.bkt.clouddn.com%2Fwp-content%2Fuploads%2F2018%2F02%2F%25E5%25AE%2589%25E5%2585%25A8%25E7%258B%2597.png “http://osajswi8b.bkt.clouddn.com/wp-content/uploads/2018/02/%E5%AE%89%E5%85%A8%E7%8B%97.png”” style=“margin: auto” />

百度云加速:[<img src=“https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/2/26/161d0cee5f084b72~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image)](https://link.juejin.cn/?target=http%3A%2F%2Fosajswi8b.bkt.clouddn.com%2Fwp-content%2Fuploads%2F2018%2F02%2F%25E7%2599%25BE%25E5%25BA%25A6%25E4%25BA%2591%25E5%258A%25A0%25E9%2580%259F.png “http://osajswi8b.bkt.clouddn.com/wp-content/uploads/2018/02/%E7%99%BE%E5%BA%A6%E4%BA%91%E5%8A%A0%E9%80%9F.png”” style=“margin: auto” />

腾讯云:

[<img src=“https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/2/26/161d0cee614170fa~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image)](https://link.juejin.cn/?target=http%3A%2F%2Fosajswi8b.bkt.clouddn.com%2Fwp-content%2Fuploads%2F2018%2F02%2F%25E8%2585%25BE%25E8%25AE%25AF%25E4%25BA%2591.png “http://osajswi8b.bkt.clouddn.com/wp-content/uploads/2018/02/%E8%85%BE%E8%AE%AF%E4%BA%91.png”” style=“margin: auto” />

阿里云:

[<img src=“https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/2/26/161d0cee629c56b4~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image)](https://link.juejin.cn/?target=http%3A%2F%2Fosajswi8b.bkt.clouddn.com%2Fwp-content%2Fuploads%2F2018%2F02%2F%25E9%2598%25BF%25E9%2587%258C%25E4%25BA%2591.png “http://osajswi8b.bkt.clouddn.com/wp-content/uploads/2018/02/%E9%98%BF%E9%87%8C%E4%BA%91.png”” style=“margin: auto” />

当我们已确认注入点后,下一步的目标是完全Bypass WAF出任意数据,以下以安全狗、modsecurity、百度云加速、 阿里云盾、长亭雷池截止目前最新的版本为例,这里只提供绕过的思路,即如何利用已知技巧进行组合推理来绕过相关WAF防护,出数据具体过程这里就不详解,大家感兴趣的可以手动尝试。

0x03 安全狗Bypass

本地无WAF测试环境:[<img src=“https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/2/26/161d0cee6f1b2c78~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image)](https://link.juejin.cn/?target=http%3A%2F%2Fosajswi8b.bkt.clouddn.com%2Fwp-content%2Fuploads%2F2018%2F02%2F%25E6%259C%25AC%25E5%259C%25B0%25E6%2597%25A0WAF%25E6%25B5%258B%25E8%25AF%2595%25E7%258E%25AF%25E5%25A2%2583.png “http://osajswi8b.bkt.clouddn.com/wp-content/uploads/2018/02/%E6%9C%AC%E5%9C%B0%E6%97%A0WAF%E6%B5%8B%E8%AF%95%E7%8E%AF%E5%A2%83.png”” style=“margin: auto” />

在对安全狗的绕过测试中发现,只需利用一个*/闭合多个/*!即可绕过,简单粗暴。

http://192.168.20.123:81/user.php?id=-11/*!union/*!select/*!1,(select/*!password/*!from/*!test.user limit 0,1),3*/

[<img src=“https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/2/26/161d0cee6f7d026c~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image)](https://link.juejin.cn/?target=http%3A%2F%2Fosajswi8b.bkt.clouddn.com%2Fwp-content%2Fuploads%2F2018%2F02%2F0x03%25E5%25AE%2589%25E5%2585%25A8%25E7%258B%2597%25E7%25B2%2597%25E6%259A%25B4%25E7%25BB%2595%25E8%25BF%2587.png “http://osajswi8b.bkt.clouddn.com/wp-content/uploads/2018/02/0x03%E5%AE%89%E5%85%A8%E7%8B%97%E7%B2%97%E6%9A%B4%E7%BB%95%E8%BF%87.png”” style=“margin: auto” />

0x04 Modsecurity Bypass

本地环境搭建modsecurity模块进行安全防护,利用{“op}、/*!50000*/组合进行绕过。

http://192.168.20.123/user.php?id=1 and{`version`length((select/*!50000schema_name*/from/*!50000information_schema.schemata*/limit 0,1))>0}

[<img src=“https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/2/26/161d0cee6fa55d50~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image)](https://link.juejin.cn/?target=http%3A%2F%2Fosajswi8b.bkt.clouddn.com%2Fwp-content%2Fuploads%2F2018%2F02%2F0x04-mod-security-%25E7%25BB%2595%25E8%25BF%2587.png “http://osajswi8b.bkt.clouddn.com/wp-content/uploads/2018/02/0x04-mod-security-%E7%BB%95%E8%BF%87.png”” style=“margin: auto” />

0x05 百度云加速Bypass

利用–+%0a进行绕过。<img src="https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/2/26/161d0cee88a1da37~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image)[](https://link.juejin.cn/?target=http%3A%2F%2Fosajswi8b.bkt.clouddn.com%2Fwp-content%2Fuploads%2F2018%2F02%2F0x05-%25E7%2599%25BE%25E5%25BA%25A6%25E4%25BA%2591%25E5%258A%25A0%25E9%2580%259FBypass-2.png “http://osajswi8b.bkt.clouddn.com/wp-content/uploads/2018/02/0x05-%E7%99%BE%E5%BA%A6%E4%BA%91%E5%8A%A0%E9%80%9FBypass-2.png”" style=“margin: auto” />

0x06 阿里云盾Bypass

利用–+%0a、@自定义变量、{a key}组合进行绕过。

<img src="https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/2/26/161d0cee8878cac5~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image)[](https://link.juejin.cn/?target=http%3A%2F%2Fosajswi8b.bkt.clouddn.com%2Fwp-content%2Fuploads%2F2018%2F02%2F0x06-%25E9%2598%25BF%25E9%2587%258C%25E4%25BA%2591%25E7%259B%25BEBypass-2.png “http://osajswi8b.bkt.clouddn.com/wp-content/uploads/2018/02/0x06-%E9%98%BF%E9%87%8C%E4%BA%91%E7%9B%BEBypass-2.png”" style=“margin: auto” />

0x07 长亭雷池Bypass

经过大量测试后,发现雷池在处理MySQL注释符/*<img src=“https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/2/26/161d0cee9cff1a1d~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image)](https://link.juejin.cn/?target=http%3A%2F%2Fosajswi8b.bkt.clouddn.com%2Fwp-content%2Fuploads%2F2018%2F02%2F0x07-%25E9%2595%25BF%25E4%25BA%25AD%25E9%259B%25B7%25E6%25B1%25A0Bypass-1.png “http://osajswi8b.bkt.clouddn.com/wp-content/uploads/2018/02/0x07-%E9%95%BF%E4%BA%AD%E9%9B%B7%E6%B1%A0Bypass-1.png”)[](https://link.juejin.cn/?target=http%3A%2F%2Fosajswi8b.bkt.clouddn.com%2Fwp-content%2Fuploads%2F2018%2F02%2F0x07-%25E9%2595%25BF%25E4%25BA%25AD%25E9%259B%25B7%25E6%25B1%25A0Bypass-2.png “http://osajswi8b.bkt.clouddn.com/wp-content/uploads/2018/02/0x07-%E9%95%BF%E4%BA%AD%E9%9B%B7%E6%B1%A0Bypass-2.png”” style=“margin: auto” />

0x08 自动化bypass

当我们挖掘出绕过相关WAF进行SQL注入的技巧后,下一步就是编写脚本实现工具自动化注入。以sqlmap为例,我们编写tamper脚本实现注入自动化。<img src="https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2018/2/26/161d0ceeb9977f95~tplv-t2oaga2asx-zoom-in-crop-mark:4536:0:0:0.image)[](https://link.juejin.cn/?target=http%3A%2F%2Fosajswi8b.bkt.clouddn.com%2Fwp-content%2Fuploads%2F2018%2F02%2F0x08-%25E8%2587%25AA%25E5%258A%25A8%25E5%258C%2596bypass-2.png “http://osajswi8b.bkt.clouddn.com/wp-content/uploads/2018/02/0x08-%E8%87%AA%E5%8A%A8%E5%8C%96bypass-2.png”" style=“margin: auto” />

0x09 WAF防御

对已知或未知的安全问题进行防御是WAF功能的核心,漏报及误报是衡量一个WAF产品好坏的重要指标,具体落实到规则的及时更新、bypass新技巧的及时响应。另外,还应综合利用拦截日志数据进行相关算法分析,不断提高WAF的防护能力。总结来说,打造一款上乘的WAF,非一朝一日之功,需长期的技术储备、产品不断地更新迭代、算法地持续优化,才能把好防御这个重要的关口。同时,不断探索新的高效防护方法,才能在攻防战中立于不败之地。

0xa0 总结

从攻击者角度来看,绕过WAF的基本方法其实不多,如何把这些已知方法融合起来,并结合各自WAF本身的防护特性,不断进行推理,成为突破WAF防护的关键。当然,自动化Fuzz才是WAF Bypass新技术产生的正道。另外,从个人的注入Bypass测试过程看,绕过基于语义识别的WAF比绕过基于规则识别的WAF难得多,值得我们挑战。

从WAF产品角度来看,衡量一个WAF好坏的标准是漏报率和误报率的高低,但这些指标建立在以WAF不影响正常业务为前提。测试中我发现,基于规则的WAF对业务的耦合度往往较低,不管是腾讯云WAF还是阿里云盾,对用户的输入都较为敏感,如参数中输入注释符请求就会被拦截。而基于语义的WAF的和业务的耦合度较高,误报率下降明显。从测试结果来看,基于语义识别的WAF相较传统WAF来说有较大优势,值得我们学习和借鉴。

从安全管理者角度来讲,从以上测试过程可以看出,不管是基于规则的WAF还是基于语义识别的WAF,都存在被都完全绕过的可能。WAF的主要作用是提高攻击门槛,但不能消灭攻击入侵事件,解决安全问题的根本途径还得从代码层面着手进行修复。

WAF攻防之SQL注入篇相关推荐

  1. 渗透学习-SQL注入篇-基础知识的学习(持续更新中)

    提示:仅供进行学习使用,请勿做出非法的行为.如若由任何违法行为,将依据法律法规进行严惩!!! 文章目录 前言 一.SQL注入产生的原因 二.手工注入大致过程 1.判断注入点: 2.猜解列名 3.猜解能 ...

  2. oracle延时盲注如何防止,【原创】WEB安全第四章SQL注入篇21 oracle 延时注入

    WEB安全第四章SQL注入篇21 oracle 延时注入 1.简介 DBMS_LOCK.SLEEP()函数可以让一个过程休眠很多秒,但使用该函数存在许多限制.首先,不能直接将该函数注入子查询中,因为O ...

  3. DVWA通关-SQL注入篇

    DVWA通关-SQL注入篇 开篇之前   我知道网上也有很多通关攻略,但都是别人通关,复制粘贴也是别人的,所以就想写一下自己的.写下这篇文章主要是记录自己的学习,以及和各位朋友交流,有错误的地方,希望 ...

  4. web之SQL注入篇BUU

    web之SQL注入篇BUU [强网杯 2019]随便注 预处理语句 handler [SUCTF 2019]EasySQL 判断是字符型还是数字型注入 判断是否可以联合查询 判断是否可以使堆叠注入 | ...

  5. 测试具有44个漏洞点的简单小靶场-SQL注入篇

    文章目录 本地搭建 SQL注入篇 注入1(数字型注入) 注入2(闭合单引号) 注入3(闭合双引号) 注入4(闭合括号) 注入5(报错注入) 注入6(布尔盲注) 注入7(过滤了'--'和'#'以及'%2 ...

  6. 【WAF技巧拓展】————6、我的WafBypass之道(SQL注入篇)

    0x00 前言 去年到现在就一直有人希望我出一篇关于WAF的文章,我觉得这种老生常 谈的话题也没什么可写的.很多人一遇到waf就发懵,不知如何是好,能搜到的各 种姿势也是然并卵.但是积累姿势的过程也是 ...

  7. 【SQL注入技巧拓展】————13、我的WafBypass之道(SQL注入篇)

    0x00 前言 去年到现在就一直有人希望我出一篇关于WAF的文章,我觉得这种老生常 谈的话题也没什么可写的.很多人一遇到waf就发懵,不知如何是好,能搜到的各种姿势也是然并卵.但是积累姿势的过程也是迭 ...

  8. 我的WafBypass之道(SQL注入篇)

    原帖地址:https://xianzhi.aliyun.com/forum/read/349.html 0x00 前言 去年到现在就一直有人希望我出一篇关于waf绕过的文章,我觉得这种老生常 谈的话题 ...

  9. 【WAF剖析】——sql注入之奇淫巧技bypass(持续更新中)

    作者名:Demo不是emo  主页面链接:主页传送门 创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷 座右铭:不要让时代的悲哀 ...

最新文章

  1. 第七课.含隐变量的参数估计
  2. Hadoop学习之HDFS架构(二)
  3. 逻辑分析仪抓取CAN总线波特率
  4. Zabbix监控agent
  5. 登录,注册,登录,登录..?
  6. javascript构造函数类和原型prototype定义的属性和方法的区别
  7. HDU 5752 Sqrt Bo【枚举,大水题】
  8. matlab 解析 mnist 数据集
  9. 有关计算机的未来想象作文,电脑的想象作文
  10. MySQL安装包MySQL Installer下载地址
  11. 百度网盘有linux客户端吗,bcloud-百度网盘Linux客户端
  12. 使用机器学习算法打造一个简单的“微博指数”
  13. 科普下Tippy.js - 开源且高度可做空间php的气泡翻译器
  14. java就业感言_JAVA就业班感言
  15. 章文嵩:怎样做开源才有意义?
  16. python numpy中的矩阵、向量的加减乘除
  17. java中控制反转_Java如何利用IOC控制反转的三种设计模式详解
  18. JS实现上一个、下一个、置顶、置底操作
  19. OpenCV开发笔记(七十一):红胖子8分钟带你深入级联分类器训练
  20. 复杂网络实验报告2019210025曾培圣

热门文章

  1. TestBird果伦——10年主策讲述他的游戏人生
  2. MIUI解BL锁失败
  3. 代理加盟共享充电宝的理由
  4. Linux的NTP配置总结
  5. WAMPserver图标由橙色变成绿色
  6. 卷积和互相关操作的关系
  7. 我想我是不是该选择离开?
  8. golang 初始化并赋值_声明和初始化
  9. 报表设计应该注意什么?报表设计器推荐
  10. 2023高频前端面试题总结(附答案)