ugrás a tartalomhoz

phpshell

szabo.b.gabor · 2013. Május. 9. (Cs), 21.50
Történt, hogy láma voltam. nagyon. szar rájönni, hogy a szervered ssh hozzáférését buktad.. ftp maradt és php futtatás. aztán sikerült kiizzadnunk a dolgot, de közben csináltam egy olyan helyes kis dolgot, amit csak meg kell osszak.
  1. <?php  
  2. header('Content-Type: text/html; charset=utf-8');  
  3.   
  4. if (!isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER']!='user' || $_SERVER['PHP_AUTH_PW']!='password') {  
  5.     header('WWW-Authenticate: Basic realm="Hello admin"');  
  6.     header('HTTP/1.0 401 Unauthorized');  
  7.     echo 'Nincs jogosultsaga az oldal megtekintesehez.';  
  8.     exit;  
  9. }  
  10.   
  11. if(isset($_POST['command'])){  
  12.     echo '<pre>',(htmlspecialchars(shell_exec($_POST['command']))),'</pre>';  
  13.     die();  
  14. }  
  15. ?>  
  16.   
  17. <html>  
  18. <body>  
  19.     <form id="hack" method="get">  
  20.         <input name="command" type="text" style="width:500px;" class="command" />  
  21.         <input type="submit" value="go" />  
  22.     </form>  
  23.     <div class="log"></div>  
  24. <script type="text/javascript" src="/js/jquery-1.9.1.min.js">  
  25. </script>  
  26. <script type="text/javascript">  
  27. $(function(){  
  28.     var commands=[],i=null;  
  29.     $('#hack').on('submit',function(e){  
  30.         e.preventDefault();  
  31.         var $form=$(this),$input=$form.find('.command'),command=$input.val(),$log=$('.log');  
  32.         $log.prepend(command+'<br />---<br />');  
  33.         $input.val('');  
  34.         i=null;commands.unshift(command);  
  35.         $.ajax({  
  36.             method:'POST',  
  37.             dataType:'html',  
  38.             data:{command:command},  
  39.             success:function(res){  
  40.                 $log.prepend(res+'<br />');  
  41.             }  
  42.         });  
  43.     });  
  44.     $('#hack .command').on('keydown',function(e){  
  45.         //console.log(e);  
  46.         if(commands.length){  
  47.             if(e.keyCode==38){  
  48.                 e.preventDefault();  
  49.                 var $input=$(this);  
  50.   
  51.                 i = i === null || i >= commands.length-1 ? 0 : i+1;  
  52.                 $input.val(commands[i]);  
  53.             }else if(e.keyCode==40){  
  54.                 e.preventDefault();  
  55.                 var $input=$(this);  
  56.   
  57.                 i = i === null || i <= 0 ? commands.length-1 : i-1;  
  58.                 $input.val(commands[i]);  
  59.             }  
  60.         }  
  61.     });  
  62. });  
  63. </script>  
  64. </body>  
  65. </html>  
Lehetne még belerakni working dir váltást, de azt már nem én fogom megcsinálni. Szóval a lényeg annyi, hogy mókás dolgokat lehet csinálni..
 
1

Vannak erre mindenféle kész

tgr · 2013. Május. 10. (P), 09.18
Vannak erre mindenféle kész opensource könyvtárak, pl. phpshell.sourceforge.net
Mondjuk szerintem vészhelyzeteket kivéve extrém rossz ötlet ilyet használni, keress olyan szolgáltatót, aki normális SSH hozzáférést biztosít.