如果你喜欢我的文章,欢迎关注公众号:安全女巫
转载请注明出处:https://mp.weixin.qq.com/s/AuONhIYbnTZzIBpxpcXtIw
引用
针对外面的流言,我引用柏拉图的《爱情海》的一句话: 如果尖锐的批评完全消失,温和的批评将会变得刺耳。 如果温和的批评也不被允许,沉默将被认为居心叵测。 如果沉默也不再允许,赞扬不够卖力将是一种罪行。 如果只允许一种声音存在,那么,唯一存在的那个声音就是谎言。 别到头变成睚眦必报。
前言
绕过WAF,首先需要知道WAF的工作原理,才能发现安全问题。
每个阶段都有每个阶段存在的问题,笔者也踩过很多坑,不管从建设还是绕过。WAF最重要的指标还是火焰图,性能是WAF的喉咙。
新手需要知道WAF设计阶段的几个问题
明白工作方式处理方式,就能明白为什么这样方法绕过,从黑盒变成白盒。
为什么len长度过长能绕过,
为什么mu的类型不一样可以绕过,
为什么设计WAF时要考虑AC,
为什么规则要加载进内存
安全是为了更好的服务业务,在业务与安全冲突时,要保证业务的最低运行条件。自然而然有些问题是很难去解决的。
发散几个WAF问题:
WAF性能为王,大范围通用性的WAF必须丢弃核心指标
WAF语义分析,国内就长亭,国际就是imperva,polo,可能有人会为语义分析很厉害啦,其实有兴趣的朋友研究下,就知道国内所谓的语义,都是基于08年公开的基础上进行优化版本,大概就是特征码6位变8位
有人会问了,什么是最好的WAF,笔者认为安全不是一个产品,是一个系统。
WAF被绕过不能评判一个WAF的好坏,如json请求,get/post获取数据,就很容易绕过;再就是上传,在功能点上,二者是互相排斥的。
worker性能问题
知识点
本文使用linux 通配符“?”,绕过阿里云WAF3.0的规则检测。
该方法因为独有的特性,基本所有的WAF都可以bypass
WAF针对通配符的处置并不会有很好的办法,WAF接受
复现步骤
使用阿里云WAF3.0接入点
hquspd4evkuq8r3snfplbiwhfccw3cam.aliyunwaf5.com
接入WAF
WAF配置信息:
绕过步骤
读取/etc/passwd 触发拦截
使用通配符?,绕过拦截
cat /etc/passw?
可能不太直观?我们试试在Linux 执行。
通配符还有几种形式
星号符号(*):表示任何字符(包括空字符),可以出现0次、1次或多次。例如:ls *.txt(显示当前目录下所有以 .txt 结尾的文件)
问号符号(?):表示任意单个字符。例如:ls ?.txt(显示当前目录下所有以一个字符开头,以 .txt 结尾的文件)
中括号符号([]):表示中括号内任意一个字符。例如:ls [abc]*(显示当前目录下以 a、b、c 任意一个字母开头的所有文件)
脱字符号(^):表示取反,即除了中括号内的字符以外的任意一个字符。例如:ls [^abc]*(显示当前目录下除了以 a、b、c 任意一个字母开头的所有文件)
另外还有几个设计上的问题:
Crtl注入
几个crtl fuzz 的工具,有兴趣的小伙伴可以自己本地fuzz,大部分waf都存在 https://github.com/dwisiswant0/crlfuzzh ttps://github.com/Proviesec/crlf-payloads
host绑定绕过WAF
通过fofa也好,指纹也好,溯源的真是IP,host绑定进行绕过WAF操作。
在search.censys.io搜索中输入域名,它就会显示与该特定域关联的所有结果 IP。
请在下面的截图中找到目标域名和 censys 正在泄露网站的真实 IP。
结论
这种问题不是WAF阶段能解决的问题,WAF也不是要阻断99%的攻击,WAF讲究与业务有很好的共存,其次WAF是房子外的高墙,让对抗增加成本,高墙挡不住铁了心的贼。
本文作者:公众号:安全女巫
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/199318.html