当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(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标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-06-07: 积极联系厂商并且等待厂商认领中,细节不对外公开
2013-07-22: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

低版本的sqmail有几个xss洞...但是没有exploit...这次通过实例补充一下
求不要跨省...我还要读几年书呢

详细说明:

香港科技大学喜欢使用squirrel mail作为webmail后端
屡次标榜先进性却不思升级...这不就跪了么
这次实战的洞有CVE-2008-2379
和一个老洞...但是sqmail的最新版好像也没完全修好
先看看科大用的sqmail版本
logout以后任意访问一个需要login的页面就可以了

p1.JPG


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去掉了

p2.JPG


但是在处理完以后,忘记加上quote了..

p3.JPG


但是啊....仔细研究这段源码...发现了一些棘手的事情

p4.JPG


开发者提前探测了一些危险字符,然后是一旦出现直接打入冷宫= =
这里我想再要吐槽一下....尼玛过滤其他的字符我还能理解,过滤20空格,21感叹号,23井号,24美元符号,25百分号是要逆天么?
你这样让一个正常的url也要悲剧啊...
好了...那么也即...要在大多数已经用惯的分隔符不能使用之际,来构造XSS
第一个任务...
如何将tag name同tag attribute分隔开
因为过滤空格等分隔符的原因

<img onload=xxx>


这样是不行的...
但是啊...我表示曾经试出过一个奇葩的用法

<img/onload=xxx>


也即...用反斜杠是可以分隔tag name和tag attribute的
而且经测试是通杀各大浏览器的
其实呢...按照sqmail直接返回内容的尿性...到这里已经够了...
因为直接script标签就搞定了...
但是呢...我还想来试试用img标签怎么搞
这就涉及到第二个问题...分隔tag attribute的方法
这时候是不能用反斜杠分隔的,因为反斜杠会被认为在attribute里面
这时候我另一个奇葩的发现又派出了用场...那就是,各大浏览器会把\127当成单引号来parse....
于是可以有如下的代码

<img/src=\127\48\127onerror=\127console.log(/xss/)\127/>


然后这个洞的完整exploit就是

<a href='http://test/?p=></a><img/src=\127\48\127onerror=\127console.log(/xss/)\127/>' >test</a>


效果最后再给
然后接下来是一个老洞
就是svg里面xlink:href插入javascript的问题
不多说...直接上exploit

<svg xmlns="http://www.w3.org/2000/svg" style="width:700px;height:400px;z-index:101;display:block;margin-top:-400px;"> <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:actuate="onClick" xlink:href="javascript:console.log(/xss/)"><rect width="1000" height="1000" fill="transparent"/></a> </svg>


为什么说新版的sqmail修了一半呢...
这段exploit原意是用一个很大的可点击的透明rect覆盖几乎整个页面,让用户只要点击就会触发脚本
新版的sqmail修正了用style覆盖页面的漏洞,但是没有修正xlink:href含有javasctipt的漏洞
最后是这个版本的sqmail所有cookie包括session都不是http only的...所以xss是致命的

p5.JPG


然后赶紧实战一下
send封email给自己

p6.JPG


查看邮件页面里赫然已有痕迹

p7.JPG


p8.JPG


然后那个onerror的已然执行

p9.JPG


那个骗点击的工作正常

p10.JPG


所以啊...不升级伤不起啊

漏洞证明:

p7.JPG


p8.JPG


p9.JPG


p10.JPG

修复方案:

升级啊升级
然后那个xlink:href的小洞squirrel mail修一下?
之前不是说好升级换代成Google Apps吗....怎么没动静了
要我说啊...科大赶紧换Google Apps嘛...

版权声明:转载请注明来源 nyannyannyan@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝