漏洞概要
关注数(24)
关注此漏洞
>
漏洞详情
披露状态:
2014-05-20: 细节已通知厂商并且等待厂商处理中
2014-05-25: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-07-19: 细节向核心白帽子及相关领域专家公开
2014-07-29: 细节向普通白帽子公开
2014-08-08: 细节向实习白帽子公开
2014-08-15: 细节向公众公开
简要描述:
虽说是存储型XSS,但比较鸡肋。。看客官怎么理解了。
详细说明:
文件/api/add_favorate.php是用户增加收藏的api文件。增加收藏是通过GET方式传值,接收url、title两个参数。url代表待收藏的地址,title代表标题。
一般包含了url的地方我们都应该注意一些,因为url可以通过伪协议javascript:这种方式来触发xss。
其中url参数经过了这两行的过滤:
safe_replace函数如下:
可见虽然过滤了很多字符,但url在html属性href中,可以用html实体绕过。所以只要不过滤&、#就行了。
trim_script函数如下:
可见,过滤了一些危险的html标签。特别注意的是,最后一个replace过滤了javascript:,将之转换成javascript:(中文冒号)。不过这个也一样可以通过html字符实体绕过。这里就不多说了。
但是但是,鸡肋的是……这个XSS更像一个SELF XSS,因为你的收藏只有你自己看得到。不过还好增加收藏的方法是GET方式,我们可以伪造一个增加收藏的链接作为图片地址让目标用户访问,就能为其增加一个包含xss的收藏。
下次他点击查看自己的这个收藏后,就会触发xss。
详见漏洞证明。
漏洞证明:
构造一个XSS链接,作为图片src或其他方式,让目标用户不知不觉访问。为其增加一个收藏。如下:
诱导目标用户访问以上链接,增加成功:

目标来到会员中心 - 收藏,发现多了一个收藏,因为好奇所以点开看看。点击就执行了:

给个加载远程js的exp:
可收到cookie:

修复方案:
检查url,如果开头不是http://或https://就强制增加http://。
>
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2014-08-15 14:54
厂商回复:
最新状态:
暂无