阿里云WAF3.0命令执行Bypass,也是WAF的通病

如果你喜欢我的文章,欢迎关注公众号:安全女巫
转载请注明出处:
https://mp.weixin.qq.com/s/AuONhIYbnTZzIBpxpcXtIw

引用

针对外面的流言,我引用柏拉图的《爱情海》的一句话:
如果尖锐的批评完全消失,温和的批评将会变得刺耳。
如果温和的批评也不被允许,沉默将被认为居心叵测。
如果沉默也不再允许,赞扬不够卖力将是一种罪行。
如果只允许一种声音存在,那么,唯一存在的那个声音就是谎言。
别到头变成睚眦必报。

前言

绕过WAF,首先需要知道WAF的工作原理,才能发现安全问题。

每个阶段都有每个阶段存在的问题,笔者也踩过很多坑,不管从建设还是绕过。WAF最重要的指标还是火焰图,性能是WAF的喉咙。

新手需要知道WAF设计阶段的几个问题

明白工作方式处理方式,就能明白为什么这样方法绕过,从黑盒变成白盒。

为什么len长度过长能绕过,

为什么mu的类型不一样可以绕过,

为什么设计WAF时要考虑AC,

为什么规则要加载进内存

安全是为了更好的服务业务,在业务与安全冲突时,要保证业务的最低运行条件。自然而然有些问题是很难去解决的。

发散几个WAF问题:

  1. WAF性能为王,大范围通用性的WAF必须丢弃核心指标

  2. WAF语义分析,国内就长亭,国际就是imperva,polo,可能有人会为语义分析很厉害啦,其实有兴趣的朋友研究下,就知道国内所谓的语义,都是基于08年公开的基础上进行优化版本,大概就是特征码6位变8位

  3. 有人会问了,什么是最好的WAF,笔者认为安全不是一个产品,是一个系统。

  4. WAF被绕过不能评判一个WAF的好坏,如json请求,get/post获取数据,就很容易绕过;再就是上传,在功能点上,二者是互相排斥的。

  5. 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

Tags:
评论  (0)
快来写下你的想法吧!

公众号:安全女巫

文章数:15 积分: 0

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号