[Next Terminal] 当飞牛遇到 0 day, WAF 算个屁
v2ex.com·2h
Preview
Report Post

依稀记得上次我说 WAF 根本防不住 0day ,被人喷烂了,今天看到大佬复现飞牛 OS 的漏洞利用链,才证明我的看法是对的。

飞牛这次栽在哪了?

这次飞牛 OS 被人搞出来的漏洞链堪称教科书级别,整个攻击过程环环相扣:

第一步,利用路径穿越漏洞下载了系统里的一个 RSA 私钥文件。这一步 WAF 理论上能防,但实际上各种编码绕过手段多的是。

第二步,这个私钥文件里居然硬编码了 AES 密钥,这就离谱了。拿到这个密钥就相当于拿到了"万能钥匙"。

第三步才是最骚的,攻击者用这个密钥自己伪造了一个合法的 token 。问题出在系统的认证逻辑上——它在验证 WebSocket 请求时,只要你提供了 token 字段,就直接拿这个 token 去解密得到 secret ,然后用这个 secret 来验签。等于说攻击者自己生成 token 自己验证自己,系统还信了。

第四步,拿到认证之后,直接往 Docker 镜像添加接口的 url 参数里注入命令,执行任意代码,拿下 root 权限。

整个过程,除了第一步 WAF 可能还能拦一下,后面三步全是通过 WebSocket 协议走的,而且是加密的业务逻辑。WAF 在这里就是个摆设。

WAF 的尴尬之处

花了大价钱上 WAF ,结果遇到 0day 一点用都没有。

WAF 的本质是规则匹配,它只能防已知的攻击。0day 这种没见过的玩法,规则库里根本就没有,怎么拦?

更尴尬的是,现在很多应用都用 WebSocket 通信,WAF 对这种协议的深度检测能力非常有限。飞牛 OS 这次的认证绕过和命令注入都是走的 WebSocket ,WAF 连请求内容都看不清楚,更别说拦截了。

所以说,别把安全的宝全压在 WAF 上。

换个思路:让攻击者碰不到你的服务

既然边界防御不可能做到 100% 完…

Similar Posts

Loading similar posts...

Keyboard Shortcuts

Navigation
Next / previous item
j/k
Open post
oorEnter
Preview post
v
Post Actions
Love post
a
Like post
l
Dislike post
d
Undo reaction
u
Recommendations
Add interest / feed
Enter
Not interested
x
Go to
Home
gh
Interests
gi
Feeds
gf
Likes
gl
History
gy
Changelog
gc
Settings
gs
Browse
gb
Search
/
General
Show this help
?
Submit feedback
!
Close modal / unfocus
Esc

Press ? anytime to show this help