记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

RoundCube Webmail邮件正文存储型XSS分析

2015-02-05 21:45

    这是前段时间发现的一个漏洞,可能又让一些人深恶痛绝了,见谅。自从当年自己那个gnuboard getshell被晾了半年捂烂了以后,感觉国外的洞还是提交了吧,捂在手里也没用,还能维护世界和平。

    中间有个搞笑的事,之前想去申请个CVE证书,结果用我国内的企业邮箱给他们企业邮箱发邮件,虽然显示发成功了,但一直没得到回应。后来想想,gmail被封了大概就是这个状况,估计邮件这辈子也到不了那里了,嘿。

    roundcube webmail官网:http://roundcube.net/,下载最新版本。

    /program/lib/Roundcube/rcube_washtml.php ,这文件实际上是一个富文本过滤类class rcube_washtml。roundcube就是利用这个类对富文本进行过滤。

    先大概看一下,我知道了这个类的特点:
1.用DOM对换入的HTML做解析,取出所有标签、相应属性的键和值。
2.利用白名单,只保留允许存在的标签和属性。
3.根据保留下来的标签、属性键和值,拼接成过滤后的HTML,输出。
    实际上,从这个过程中我就看到了安全隐患。我曾经自己写过一个富文本类,类的前两点过程和这个类相同,但第三点,我是将结果同样保存为DOM对象,再转换成HTML进行输出。
    二者有什么差别?很大一点不同就是,roundcube对HTML进行拼接,拼接的过程中如果处理不好引号,很容易导致属性“值”越出引号范围,变成一个新的“属性”,比如onerror。

好,我们看到246行,
else if ($key == 'style' && ($style = $this->wash_style($value))) {

                $quot = strpos($style, '"') !== false ? "'" : '"';

                $t .= ' style=' . $quot . $style . $quot;

            }

    当属性名是style的话,就将值传入wash_style函数。这个函数顾名思义是过滤css用的,然后将返回值$style拼接到最终HTML里:$t .= ' style=' . $quot . $style . $quot;

    $quote就是一个引号,将$style 放入引号。这个$quote是前一句话定义的,当$style中有单引号的时候,$quote就是双引号,当$style中有双引号的时候,$quote就是单引号。

    但如果$style中两种引号都有呢?肯定是会导致引号被闭合的情况,那么后面就能够写其他属性了。

    后面还有一些麻烦的分析我就不写了,最后我的payload是:

<img src="http://img403.hackdig.com/imgpxy.php?url=1xxx%3Aatad" style=aaa:'"/onerror=alert(1)//' >
    我们看到,style中间有单引号和双引号,因为都存在,所以选择单引号作为外部的闭合引号。而因为我内部也有单引号,所以将前面的单引号闭合了,导致后面的内容溢出,onerror成为一个新的属性,最后导致存储型XSS。


    经过该类处理过的HTML变成这样,chrome最新版下直接触发无需交互

<!-- html ignored --><!-- body ignored --><img src="http://img403.hackdig.com/imgpxy.php?url=1xxx%3Aatad" style='aaa: '\"/onerror=alert(1)//'' />

    测试,直接发送正文含有以上POC的邮件,roundcube打开邮件即可触发:

    1415329497_art-devushka-krasivye-kartinki-art-1651134.jpg

    我已经在官方开了个单子,官方已经确认漏洞,并在最新版修复。

    http://trac.roundcube.net/ticket/1490227

    http://trac.roundcube.net/changeset/786aa0725/github


知识来源: www.leavesongs.com/PENETRATION/roundcube-webmail-email-body-store-xss.html

阅读:105126 | 评论:0 | 标签:xss

想收藏或者和大家分享这篇好文章→复制链接地址

“RoundCube Webmail邮件正文存储型XSS分析”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

学习黑客技术,传播黑客文化

推广

工具

标签云

本页关键词