文章来源|MS08067 Web漏洞挖掘班 第3期
本文作者:Hi2x(Web漏洞挖掘班讲师)
0x00 前言
在了解Bypass Waf之前,我们应该首先了解一些前置知识:
1.Waf是什么
2.Waf的类型
3.Waf的工作原理
1. Waf是什么
Waf全称为Web Application FireWall(Web应用防火墙);顾名思义Waf原理与日常使用防火墙相似,但主要注重在Web页面中存在的对应安全问题。
2.Waf的类型
WAF分为非嵌入型WAF和嵌入型WAF。
非嵌入型是指硬WAF、云WAF、软WAF之类。
嵌入型是指web容器模块类型WAF、代码层WAF。
3.Waf的工作原理
不论是什么类型的Waf,工作的方式几乎差不多。首先,从用户体验上出发,用户的目的是部署Waf从而解决对应的WEB安全问题;所以对于Waf开发来说,需要了解的就是:哪些位置可能会引发安全漏洞、如何判断攻击者利用攻击触发了漏洞。
回顾一下TOP 10的安全漏洞,我们可以得到一个结论,Web漏洞产生的位置基本都为:
1.HTTP头部字段
2.GET、POST提交的内容
3.上传的文件
所以,我们也可以逆推得到Waf构建及工作的原理大致为:
1.构建各种漏洞利用的攻击特征库
2.对漏洞产生位置的内容进行搜集
3.将搜集的内容在特征库中进行匹配,查看是否存在攻击特征并作出相应
更详细的工作流程如下图所示:
建立特征库的流程:
判断恶意攻击流程:
0x01 绕Waf实战
了解完Waf是怎么拦截对应的流量之后,我们就明白了绕Waf的最终目标是绕过特征库检测(即绕过正则匹配)。
那如何绕过正则匹配呢?
主要的方式就两种:
1. 通过Fuzz脚本构造大量Payload进行尝试
2. 通过人为手工探测Waf编写规则。
第一种方式比较暴力,且针对初学者并不是很友好,因为需要很多之前师傅们绕Waf的Payload作为前置知识。
基本思路大致是:对绕过的方法进行搜集构造一些经常绕Waf的字符串,并且利用脚本在漏洞点构造语句+绕Waf字符串+垃圾字符等Payload,通过跑大量Payload的方式爆开可以绕Waf的Payload。
很好,所以我们介绍第二种方法。
前置知识:由于Waf需要尽量满足客户需求,Waf的匹配规则通常会匹配的很详细进而减少误报。
以某安全厂商的Waf产品的规则为例:
那我们就可以通过手工一步步探测Waf的过滤规则是什么,从而进行绕过。
如何进行手工探测Waf的过滤规则请看下一篇推文 浅谈Bypass Waf - 下(实战篇)
Hi2x老师主讲的 Web漏洞挖掘第3期
火爆报名中~
最新课程目录3.0版
*大纲仅作为参考,会根据当期进度有所变化(加客服获取高清课程导图)
课程费用
每期班定价2499,新年价:1999(前30名送399元Web安全知识星球名额)
每个报名学员都可享受一次后续任意一期课免费重听权益,一次没学懂就再来一遍,后续培训可任选一期来听。请有意参加培训的学员抓紧报名!
凡是MS08067旗下任意星球学员或其他培训课程学员,可享内部VIP价1799;
支持支付宝、信用卡、花呗分期,对公转账,可开发票!
你距离大佬,只差一个决定
报名咨询请联系小客服
扫描下方二维码加入星球学习
加入后邀请你进入内部微信群,内部微信群永久有效!