白帽故事 · 2023年8月12日 0

通过链式攻击劫持会话获得$2500奖励

背景介绍:

本文为国外白帽子通过利用XSS以及WAF绕过,配合SSTI从而实现任意用户会话劫持。废话不多说,进入正题!

发现过程:

挖掘过程像往常一样,开启Burp Suite并浏览所有网站链接,没一会儿就发现了一处URL:

https://example.com?redirect=${redirectURL}

这个重定向显然是某种未正确执行的模版语言表达式,注意到这一点,迅速切换到用户配置页面,并开始尝试更改用户名。

首先是数学表达式${2*2}来确定是否存在模版注入漏洞,成功在响应包中收到“4”,看来确实存在模版注入漏洞。那么这个漏洞能用来做什么呢?

经过一段时间的尝试和分析后,发现使用 ${header.cookie} 可以获得当前用户的所有Cookie列表。

那么现在有了带有Cookie信息和SSTI漏洞后,怎样能够实现劫持其它用户呢?答案只能是“XSS”了。

我们需要拥有一个XSS漏洞,利用XSS漏洞可以将受害者的名称更改为 ${header.cookie},然后将 Cookie 转发到攻击者的服务器上就可以了。

说起来简单,做起来可一点不轻松。经过漫长的寻找和挖掘,终于在一处参数为 videoId=w6exeqbemte 的URL上看到了“希望”。

首先尝试在URL末尾添加Payloads:

https://example.com/videos/?videoId=w6exeqbemteqwe‘"<X</

视频没有加载,检查源码发现videoId参数直接注入到了src属性中的