Web缓存投毒对多个HTTP头结合攻击实践
某些网站容易受到简单的Web缓存中毒攻击。但是,有一些其他网站需要攻击者使用更复杂的攻击,并且仅在攻击者能够操纵多个 unkeyed
输入的请求时才变得脆弱。
例如,假设一个网站要求使用HTTPS进行安全通信。为了强制执行此操作,如果收到使用其他协议的请求,则网站会动态生成一个使用HTTPS的自身重定向:
GET /random HTTP/1.1
Host: innocent-site.com
X-Forwarded-Proto: http
HTTP/1.1 301 moved permanently
Location: https://innocent-site.com/random
就其本身而言,这种行为并不一定很容易受到攻击。但是,通过将此与我们先前了解的有关动态生成的URL中的漏洞的知识相结合,攻击者可能利用此行为来生成可缓存的响应,该响应将用户重定向到恶意URL。
攻击步骤
第一步还是老样子,打开bp,设置好浏览器代理,访问首页,然后看bp的 http history
:
今天需要关注下面两个请求:
我们把这两个请求发送到bp的repeater模块进行观察。
直接把第二个对js的请求重发一次观察到返回结果如下,响应正常: