大家好!
大约几天前,我在一个漏洞悬赏项目中利用Web缓存欺骗攻击成功获得他人敏感信息。这篇文章我将详细说明这次攻击流程。
在说明我的PoC之前,我想详细解释一下缓存欺骗攻击和其影响。
Web缓存欺骗攻击是由于Web应用未正确使用缓存功能而引起的,攻击者往往能获得缓存中的敏感数据。
在这种攻击场景下,后台的Web应用程序通常会利用代理、cdn和其他服务来实现缓存功能。一般来说,缓存功能可以有效减少伺服器的工作负荷,缩短通信延迟,但很容易配置不当,形成漏洞。
假设有一个网址为www.example.com/home.php
的网站,如果你在该URL的末尾附加一个额外的文件扩展,比如www.example.com/home.php/a.jpg
,并且该网站具有缓存功能,那么它就会把这个请求的相关信息缓存到指定伺服器的缓存目录下。当然,这个文件扩展名也可以是其他,例如.css,.jpg,.js等。
因此,一旦有用户访问了有漏洞的网站,并缓存了信息,那么攻击者就有机会通过访问同样的端点来获得受害者的信息。
main
上个星期,我参加了一个保密的渗透测试项目,遇到了三个不同的目标:
app.example.com
example.com
manage.example.com
测试者可以在example.com
网站中注册并登录。
app.example.com
网站主要涉及开发app;manage.example.com
主要涉及其他服务的身份验证。
假设,example.com
网站如下所示: