点评网主站漏洞打包详解+手把手教你写xss蠕虫

漏洞概要

缺陷编号:WooYun-2013-017701

漏洞标题:点评网主站漏洞打包详解+手把手教你写xss蠕虫

相关厂商:大众点评

漏洞作者:小胖胖要减肥

提交时间:2013-01-23 09:22

公开时间:2013-03-09 09:22

漏洞类型:XSS 跨站脚本攻击

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

Tags标签:

漏洞详情

披露状态:

2013-01-23: 细节已通知厂商并且等待厂商处理中
2013-01-23: 厂商已经确认,细节仅向厂商公开
2013-02-02: 细节向核心白帽子及相关领域专家公开
2013-02-12: 细节向普通白帽子公开
2013-02-22: 细节向实习白帽子公开
2013-03-09: 细节向公众公开

简要描述:

如题,对点评主站的一些漏洞加以分析,给出各种漏洞的利用场景,最后再教大家如何写简单xss蠕虫

详细说明:

点评网站主要还是存在跨站问题,包括:存储,反射型xss,httponly没有设置,csrf无防御1 首先先来几个反射型xss,相对于一般的网站此类危害较小但由于点评对于跨站基本无防护,加上私信可以批量发送,反射型xss用谷歌短链转换下,危害还是很大的,包括盗取cookies,修改用户信息留后门,任意发表点评等,具体用法可参考之后的蠕虫脚本反射型,火狐直接使用

就可以了ie8需要使用二哥的0day

chrome则使用

反射型还是很多的,工具都能扫到一堆,更不用说dom的了,随便举几个例子

2 至于怎么批量发送私信可以查看post接口

这里只要使用burp或自己写个脚本将targetName参数化,该值为用户名,可以批量获取后永久使用,然后通过该接口可以批量发送小广告,恶意链接等,比如“该美食店不错哦,请看连接”。3 说到私信了就不说说私信存在的一个csrf获取cookies的用法,表面上私信内容都是过滤的,但是对于输入的名字未过滤,但无法形成存储性xss,不过可以通过csrf构造post的反射型,弹框如图

具体csrf的脚本如下,自己放自己的shell网站上是不错的选择,比如美食的网站firefox和chrome的

ie8的

4 既然说到了私信那么更要说说本身存在的csrf问题,包括私信,关注,鲜花,好评,更改用户资料等,url长度各浏览器有点区别,ie的最短为2000字节由于程序员在解析请求时没有区分post和get,导致所有请求包括发表点评都可以通过引用站外图片的方式来执行请求,或者直接一个连接,连接为

由于社区编辑器控件的关系对于站内地址是无过滤的,可以用来给商家刷点评,危害也不小啊,特别提一下还有办法让用户删不掉点评,待会蠕虫再说

再看下有没有自动发点评

相对于这个功能对于以点评为中心的应该算比较高危的了,刷其他的都是小事5 说好了反射的那就说说一些自己x自己的存储型的,举个例子,蠕虫也会提到这个地方过滤了<script>,但没有过滤<frame>,不知道开发是不是js比较差,应该和其他地方一样对于' " <>进行过滤

6 最后再说说盲打这个问题,直接看图吧

漏洞证明:

下面就要讲重点了蠕虫,蠕虫点为点评时的停车信息。首先大家要知道,就算防止了csrf,包括referer,token,由于是调用到站内的js,referer无效了,token一般都是可以通过js读取的,具体可参考新浪蠕虫的例子,由于点评没有token我也就没写这段代码了。先看看效果吧,由于不敢测试我把xss蠕虫先写成了csrf,代码如下,调用了sogili写的那个xss.js

1 看看效果先,之后讲讲怎么更好利用

随机一个商户发表点评,可以从图中看到没有删除按钮,

的关系,里面的地址就是蠕虫的js,那么随机评价好不好呢,当然不是最佳的,最好的其实是写个100个最火商家的集合再加几组数字来进行随机,那么效果肯定非常好。那么点评内容呢,当然也要多些几组来随机,如果恶意的话评分都是1好了,还有那个蠕虫点停车信息,可以弄个一次为空,一次不为空随机,不要蠕的太厉害了。2 第二个请求是什么呢,看图吧

原来我的名字被改了,规则为'tes'+xss.rdm(),唉果然被盗号了啊,看看在自我介绍还留了后门,编辑资料就触发,其实常居地也是。可以看看被改的一个账号的

我登上去的时候名字已经改回来了3 最后看看是不是给某某发了私信

既然效果都达到了现在知道蠕虫点位停车信息,这个蠕虫点很好,发表点评即可显示在每个商户的点评页,高分的人还能直接显示在默认点评那么首先蠕虫是怎么写的呢,首先我们要知道请求一般都是通过form表单或者ajax格式发送的,我们写js的时候只要模拟用户提交就可以了。因为xss可以调用站外脚本,我们只要把请求写在我们自己的js里,如果有token,只要想办法调用下token就可以了。1 那么我们可以先打开http://xsser.me,创建一个项目,勾选默认和xss.js,默认因为我们要获取cookies。2 在自定义代码中加入刚才的三个请求,直接复制粘贴就可以了,如图

由于我刚才使用csrf测试的,所以用了x.najax这个伪ajax方法,csrf直接用ajax试过不行,估计限制了跨域请求,这个每个网站设置不同。x.najax的好处是站内站外都能用,可以好好看看http://mmme.me/xss.js就明白了3 之后点击下一步可以看到详细代码,我就不贴了,调用js地址就是http://xsser.me/zJ5sSA?1358******,由于上面我没有直接使用蠕虫地址在脚本的那个停车信息,我们也可以测试下,是否成功写好蠕虫代码了。4 js调用成功

5 看看是否执行请求

可以看到效果多点了几下,发现可以蠕虫了,个人信息页被改了,蠕虫的用法就介绍到这里吧,例子很简单。对于厂商有个自动屏蔽点评功能不错,但如果一些点评没有带蠕虫的恶意点评不会自动屏蔽,有时候也不是所有带恶意点评的蠕虫都会屏蔽。

修复方案:

觉得严重的一一修复吧

漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2013-01-23 15:20

厂商回复:

非常感谢小胖胖要减肥,部分漏洞是已知正在修复中。根据提供的信息,除了一个个Fix,还在考虑系统级别的防护工具。

最新状态:

暂无

评价

  1. 2010-01-01 00:00 小胖胖要减肥 白帽子 | Rank:492 漏洞数:66)

    @xsser 重新联系下厂商把,肯定上个人离职了,这漏洞有点危害的把

  2. 2010-01-01 00:00 xsser 白帽子 | Rank:152 漏洞数:17)

    @小胖胖要减肥 持保留意见

  3. 2010-01-01 00:00 Clar 白帽子 | Rank:5 漏洞数:2)

    Mark@

  4. 2010-01-01 00:00 se55i0n 白帽子 | Rank:1483 漏洞数:156)

    @小胖胖要减肥 洞主标题威武呀,,,

  5. 2010-01-01 00:00 px1624 白帽子 | Rank:963 漏洞数:126)

    。。大众点评满网都是xss,上次准备提交xss礼包,但是看了下厂商之前的漏洞,都是直接无视忽略的,想了下,还是算了,不增加自己的漏洞忽略概率了、、、

  6. 2010-01-01 00:00 se55i0n 白帽子 | Rank:1483 漏洞数:156)

    @px1624 漏洞被忽略是很苦逼的事情,,,

  7. 2010-01-01 00:00 小胖胖要减肥 白帽子 | Rank:492 漏洞数:66)

    @xsser 重置下该厂商帐号把 ,[email protected]

  8. 2010-01-01 00:00 围剿 白帽子 | Rank:5 漏洞数:2)

    标题反正是碉堡了

  9. 2010-01-01 00:00 se55i0n 白帽子 | Rank:1483 漏洞数:156)

    @小胖胖要减肥 擦,这都找到了,你来wooyun干客服吧,每月发你点WB,,

  10. 2010-01-01 00:00 小胖胖要减肥 白帽子 | Rank:492 漏洞数:66)

    @围剿 哪里碉堡了 很正常的标题啊

  11. 2010-01-01 00:00 px1624 白帽子 | Rank:963 漏洞数:126)

    @se55i0n 之前提交了几个腾讯图标点亮的漏洞,直接忽略。、

  12. 2010-01-01 00:00 小胖胖要减肥 白帽子 | Rank:492 漏洞数:66)

    @px1624 图标点亮的很多都已经是公开的了,还有xss不把危害扩大基本过不了了现在

  13. 2010-01-01 00:00 se55i0n 白帽子 | Rank:1483 漏洞数:156)

    @px1624 哈哈,咋个点亮呀,给我说说,我去搞个全亮...

  14. 2010-01-01 00:00 苏南同学 白帽子 | Rank:41 漏洞数:5)

    好多问题啊