读取型CSRF漏洞的示例分析


这篇文章将为大家详细讲解有关读取型CSRF漏洞的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。这里来看一条请求:这条请求返回的结果中有手机号(这里我测试的账号没绑定手机),如果我们想要以CSRF交互式攻击的方式获取这个手机号该怎么办?来看看这条请求有callback,而返回结果是不是类似Javascript中的函数?Javascript原函数定义如下:这里是缺少了函数定义的关键词function和花括号的函数主体部分,只有函数名和函数传参,聪明人已经想到了,这不就相当于是自定义函数被引用了么,而中间那段传参就相当于是一个数组,所以我们可以先用JS自定义好这个函数,然后再引用这个请求,自然就可以获取到数据了。这时候我们可以来构建一下PoC:使用正常的账号(绑定过手机号)来测试下:其实通过这个例子,我们可以知道HTML标签在一定的情况下是可以跨域读取的。对此漏洞的修复有很多:1.打乱响应主体内容2.Referer等进行限制…..等等Flash跨域比较经典了,在做web目录资产整理的时候有时候会发现这样的文件crossdomain.xml,文件内容如果是如下的,那么就存在Flash跨域问题,如下内容的意思是支持所有域:为什么会如此?具体流程是这样的:gh0st.cn 有一个SWF文件,这个文件是想要获取 vulkey.cn 的 userinfo 的返回响应主体,SWF首先会看在 vu免费云主机域名lkey.cn 的服务器目录下有没有crossdomain.xml文件,如果没有就会访问不成功,如果有crossdomain.xml,则会看crossdomain.xml文件的内容里面是否设置了允许 gh0st.cn 域访问,如果设置允许了,那么 gh0st.cn 的SWF文件就可以成功获取到内容。所以要使Flash可以跨域传输数据,其关键就是crossdomain.xml文件。当你发现crossdomain.xml文件的内容为我如上所示的内容,那么就是存在Flash跨域劫持的。在对一个厂商进行测试的时候正好发现了这样的文件:在这里我需要做两件事:1.找到一个能获取敏感信息的接口2.构建PoC在这里敏感的信息接口以个人中心为例子,PoC使用的是https://github.com/nccgroup/CrossSiteContentHijacking/raw/master/ContentHijacking/objects/ContentHijacking.swf很简单的一个东西,但是用处却很大,其利用方法跟CSRF也是一样的,只需要修改下PoC就行。修复方案同样也很简单,针对的domain进行调整即可。如上图中我在请求的时候加上了请求头Origin: http://gh0st.cn,而对应的响应包中出现了Access-Control-Allow-Origin: http://gh0st.cn这个响应头其实就是访问控制允许,在这里是允许http://gh0st.cn的请求的,所以http://gh0st.cn是可以跨域读取此网址的内容的~在这里我介绍下OriginOriginReferrer很相似,就是将当前的请求参数删除,仅剩下三元组(协议 主机 端口),标准的浏览器,会在每次请求中都带上Origin,至少在跨域操作时肯定携带(例如ajax的操作)。其实要测试是否可以跨域读取可以参考我如上的方法,当然不仅如此,你可以直接使用通配符()替换我的域名,因为这代表着任意域,如果对应的响应包中出现了`Access-Control-Allow-Origin:`等响应头,那么恭喜你,这里存在着任意域跨域资源读取的问题。怎么利用呢?在这里我使用了github上的开源项目:https://github.com/nccgroup/CrossSiteContentHijacking,readme.md中有具体的说明,这里我就不一一讲解了,那么已经确认问题了,那就需要进一步的验证。在这里我找到了一处接口,其响应主体内容是获取用户的真实姓名、身份证、手机号等内容:/daren/author/query (要注意的是这个请求在抓取的时候是POST请求方式,但并没有请求正文,经过测试请求正文为任意内容即可)响应报文正文内容:这里CrossSiteContentHijacking项目我搭建在了本地(127.0.0.1)http://127.0.0.1/CrossSiteContentHijacking/ContentHijackingLoader.html根据项目所说的操作去进行参数的配置,然后点击 Retrieve Contents 按钮:测试如下,测试结果是可以跨域读取的:这个问题其实就是对Origin的验证没有控制好,对其进行加强即可。关于“读取型CSRF漏洞的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

相关推荐: asp学习(-)和简单的脱库方式

以前选修学习asp的时候,没怎么看过书,每次上课就只有简单敲几行代码就完了,没学到什么东西。后来进入snert的时候,队长说我们要学习一门脚本语言,也去看过,但是最终都没能坚持下来好好学习。近来兴趣来了,就有开始学习一下。还发现了以前学习的方式不对,主要是:1…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 02/05 16:47
下一篇 02/05 16:47