漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-084085
漏洞标题:人人网某重要功能储存型XSS漏洞可劫持其他用户身份(二)
相关厂商:人人网
漏洞作者: px1624
提交时间:2014-11-21 12:06
修复时间:2015-01-05 12:08
公开时间:2015-01-05 12:08
漏洞类型:xss跨站脚本攻击
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-11-21: 细节已通知厂商并且等待厂商处理中
2014-11-21: 厂商已经确认,细节仅向厂商公开
2014-12-01: 细节向核心白帽子及相关领域专家公开
2014-12-11: 细节向普通白帽子公开
2014-12-21: 细节向实习白帽子公开
2015-01-05: 细节向公众公开
简要描述:
the more rank,the better high bugs!
详细说明:
#1 对于http://wooyun.org/bugs/wooyun-2014-083670漏洞的修补不完善导致的。
之前这个漏洞是用单引号构造绕过的。然后给出的修补措施就是过滤掉单引号。然后今天去看了下,发现修补了,的确是把单引号过滤干净了。
但是开发人员明显属于指哪修哪啊,为了避免漏洞公开后被恶意利用,然后我又不得不过来再提交一次。
#2 人人网这个留言板的位置,修补后的过滤机制是这样的。
过滤了><"
这次修补后还过滤了'
还过滤了&#
#3 这里先科普个小知识,在浏览器解析代码的时候,html代码是优先于js代码解析的。
也就是说在htm标签的属性中,下面的代码可以这么写。
<img src="xxx" onclick="alert(1);alert(2)">
<img src="xxx" onclick="alert(1);alert(2)">
2个代码是等效的。
#4 这时候你可能还会说那也没事啊,我们已经把&#给过滤了。
但是经过测试后,发现这里虽然过滤了&# 但是竟然没有过了&
目测是因为url中为了怕把正常功能给干掉了吧
那么问题就来了,htm编码除了&#的形式还有&的形式的啊!
#5 好了,现在开始正题,说说这里怎么利用,直接请求的时候改包,把单引号写为' 然后构造语法正确的js代码即可。
看弹窗了吧。
#6 下面证明下可以调用任意外部js文件,这里的利用代码和上次基本一致,利用String.fromCharCode和eval就可以了。这里保留一个完整的图片地址,这样用户点击图片就是直接查看大图,完全没任何异样,但是其实已经中了我们XSS了。
#7 可以盗取用户cookie,人人网是一站式cookie,没httponly,有了cookie啥都可以干了!
漏洞证明:
看上面。
修复方案:
1 不能指哪修哪啊,要从本质上思考这个点的漏洞的产生原因。
2 建议修补措施:把&过滤为& 这种修补措施,就是专门防御htm编码绕过的这种XSS的。
3 再来个年费vip把,为了更好的挖掘人人网的漏洞,有几个个功能是需要vip7才能测试,我现在vip6了,不过vip快到期了。
版权声明:转载请注明来源 px1624@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:12
确认时间:2014-11-21 13:10
厂商回复:
谢了,当时确实只过滤实体编码',谢谢
最新状态:
暂无