漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2013-025361
漏洞标题:论升级的重要性,低版本squirrel mail的XSS利用实例
相关厂商:香港科技大学
漏洞作者: nyannyannyan
提交时间:2013-06-07 23:24
修复时间:2013-07-22 23:25
公开时间:2013-07-22 23:25
漏洞类型:xss跨站脚本攻击
危害等级:高
自评Rank:15
漏洞状态:未联系到厂商或者厂商积极忽略
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2013-06-07: 积极联系厂商并且等待厂商认领中,细节不对外公开
2013-07-22: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
低版本的sqmail有几个xss洞...但是没有exploit...这次通过实例补充一下
求不要跨省...我还要读几年书呢
详细说明:
香港科技大学喜欢使用squirrel mail作为webmail后端
屡次标榜先进性却不思升级...这不就跪了么
这次实战的洞有CVE-2008-2379
和一个老洞...但是sqmail的最新版好像也没完全修好
先看看科大用的sqmail版本
logout以后任意访问一个需要login的页面就可以了
1.4.10a恩...
http://squirrelmail.org/security/
来看看对应版本有什么洞...
我注意到的是
2008-12-04 Cross site scripting in HTML filter 1.4.0 - 1.4.16 0 CVE-2008-2379
这个洞...先搜一下网上有没有现成的exploit好了....
...
...
没有...那就自己研究
先看一下patch
http://squirrelmail.svn.sourceforge.net/viewvc/squirrelmail/branches/SM-1_4-STABLE/squirrelmail/functions/mime.php?r1=13276&r2=13338&view=patch
然后抓源码下来研究一番
原来啊...洞在于在函数的一开始,把链接两边的quote去掉了
但是在处理完以后,忘记加上quote了..
但是啊....仔细研究这段源码...发现了一些棘手的事情
开发者提前探测了一些危险字符,然后是一旦出现直接打入冷宫= =
这里我想再要吐槽一下....尼玛过滤其他的字符我还能理解,过滤20空格,21感叹号,23井号,24美元符号,25百分号是要逆天么?
你这样让一个正常的url也要悲剧啊...
好了...那么也即...要在大多数已经用惯的分隔符不能使用之际,来构造XSS
第一个任务...
如何将tag name同tag attribute分隔开
因为过滤空格等分隔符的原因
这样是不行的...
但是啊...我表示曾经试出过一个奇葩的用法
也即...用反斜杠是可以分隔tag name和tag attribute的
而且经测试是通杀各大浏览器的
其实呢...按照sqmail直接返回内容的尿性...到这里已经够了...
因为直接script标签就搞定了...
但是呢...我还想来试试用img标签怎么搞
这就涉及到第二个问题...分隔tag attribute的方法
这时候是不能用反斜杠分隔的,因为反斜杠会被认为在attribute里面
这时候我另一个奇葩的发现又派出了用场...那就是,各大浏览器会把\127当成单引号来parse....
于是可以有如下的代码
然后这个洞的完整exploit就是
效果最后再给
然后接下来是一个老洞
就是svg里面xlink:href插入javascript的问题
不多说...直接上exploit
为什么说新版的sqmail修了一半呢...
这段exploit原意是用一个很大的可点击的透明rect覆盖几乎整个页面,让用户只要点击就会触发脚本
新版的sqmail修正了用style覆盖页面的漏洞,但是没有修正xlink:href含有javasctipt的漏洞
最后是这个版本的sqmail所有cookie包括session都不是http only的...所以xss是致命的
然后赶紧实战一下
send封email给自己
查看邮件页面里赫然已有痕迹
然后那个onerror的已然执行
那个骗点击的工作正常
所以啊...不升级伤不起啊
漏洞证明:
修复方案:
升级啊升级
然后那个xlink:href的小洞squirrel mail修一下?
之前不是说好升级换代成Google Apps吗....怎么没动静了
要我说啊...科大赶紧换Google Apps嘛...
版权声明:转载请注明来源 nyannyannyan@乌云
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝