3.3 HackerOne分享按钮
难度:低
URL:https://hackerone.com/blog/introducing-signal-and-impact/
报告位置:https://hackerone.com/reports/105953/
报告日期:2015年12月18日
支付奖金:500美元
查找HPP漏洞的一种方法是寻找有可能与其他服务相关联的链接。HackerOne博客文章通过社交媒体网站(例如Twitter、Facebook等)的共享链接来实现这个操作。单击时,这些HackerOne链接自动生成内容供用户在社交媒体上发布。发布的内容里包括一个可以关联到原始博客文章的URL。
一位黑客发现了一个漏洞:该漏洞使你可以在HackerOne博客文章的URL上添加参数。添加的URL参数将反映在共享的社交媒体链接中,使得生成的社交媒体内容将链接引到HackerOne原始博客URL之外的其他位置。
漏洞报告中使用的示例包括访问URL https://hackerone.com/blog/introducing-signal,然后在其末尾添加&u=https://vk.com/durov。在博客页面上,当HackerOne产生了要在Facebook上共享的链接时,该链接将变为以下形式:
如果HackerOne访问者在尝试共享内容时单击了此恶意更新的链接,则最后一个u参数将优先于第一个u参数。随后,Facebook帖子将使用第二个u参数。之后,Facebook用户在单击链接的时候将被定向到https://vk.com/durov,而不是HackerOne。
此外,在发布到Twitter时,HackerOne会包含用于推广该帖子的默认推文。攻击者还可以通过在URL中加入&text=来操纵此文本,如下所示:
当用户单击此链接时,会看到一条包含文本“another_site:https://vk.com/durov”的推文弹出窗口,而不是宣传HackerOne博客的文本。
要点
当网站接受内容,并且似乎正在与另一个Web服务(例如社交媒体网站)交互并依靠当前URL生成要发布的内容时,请留意可能会有漏洞发生。
在这种情况下,提交的内容很可能未经严格的安全检查就进行了传播,这可能导致参数污染漏洞。