论升级的重要性,低版本squirrel mail的XSS利用实例

作者:Secer 发布时间:July 23, 2013 分类:渗透测试

低版本的sqmail有几个xss洞...但是没有exploit...这次通过实例补充一下
求不要跨省...我还要读几年书呢
详细说明:
香港科技大学喜欢使用squirrel mail作为webmail后端
屡次标榜先进性却不思升级...这不就跪了么
这次实战的洞有CVE-2008-2379
和一个老洞...但是sqmail的最新版好像也没完全修好
先看看科大用的sqmail版本
logout以后任意访问一个需要login的页面就可以了
clip_image002
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去掉了
clip_image004
但是在处理完以后,忘记加上quote了..
clip_image006
但是啊....仔细研究这段源码...发现了一些棘手的事情
clip_image008
开发者提前探测了一些危险字符,然后是一旦出现直接打入冷宫= =
这里我想再要吐槽一下....尼玛过滤其他的字符我还能理解,过滤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=http://www.wooyun.org/127/48/127onerror=/127console.log(/xss/)/127/>
然后这个洞的完整exploit就是
<a href=http://www.wooyun.org/bugs/'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是致命的
clip_image010
然后赶紧实战一下
send封email给自己
clip_image012
查看邮件页面里赫然已有痕迹
clip_image014
clip_image016
然后那个onerror的已然执行
clip_image018
那个骗点击的工作正常
所以啊...不升级伤不起啊
漏洞证明:
clip_image019
clip_image020
clip_image021
修复方案:
升级啊升级
然后那个xlink:href的小洞squirrel mail修一下?
之前不是说好升级换代成Google Apps吗....怎么没动静了 要我说啊...科大赶紧换Google Apps嘛.

转自乌云

标签: xss, squirrel mail

添加新评论 »