[Cascavel-pm] Res: Catalogos xml

Ricardo Filipo ricardo_filipo em yahoo.com.br
Quinta Abril 3 09:39:50 PDT 2008


----- Mensagem original ----
De: Ricardo Filipo <ricardo_filipo em yahoo.com.br>
Para: Cascavel Perl Mongers <cascavel-pm em pm.org>
Enviadas: Quinta-feira, 3 de Abril de 2008 13:16:57
Assunto: [Cascavel-pm] Catalogos xml
>Não é possível acesso via shell (apenas pragma "use Shell;") e somenteposso instalar novos módulos no diretório cg-bin do meu "home"

Bom, se alguem se interessar, vai o bom e velho webshell, que escrevi em 1996, devidamente atualizado para usar o CGI.pm

Abraço!

<code>
#!/usr/bin/perl

use Shell;
use CGI;

CGI::ReadParse();
$cmd=$in{"comando"};
$arg=$in{"argumento"};
$cd=$in{"cd"};

print "Content-Type: text/html\n\n";
print "<html>\n<body>\n<p>";

print "<p>$comando</p>\n\n";
&DoCmd;

print "<hr>\n<form action=/cgi-bin/webshell.pl>\n";
print "<p>Comando: \n";
print "<p><select name=comando size=1>\n";
print "<option>ls</option>\n";
print "<option>ls -l</option>\n";
print "<option>cat</option>\n";
print "<option>cd</option>\n";
print "<option>du</option>\n";
print "<option>df</option>\n";
print "<option>mkdir</option>\n";
print "<option>rm</option>\n";
print "<option>locate</option>\n";
print "</select>\n";
print "<input type=text size=50 name=argumento value=$cd>\n";
print "<input type=hidden name=cd value=$cd>";
print "<input type=submit value=Ok>";
print "</form>\n</body>\n</html>";

sub DoCmd{
    print "<p>Processando comando $cmd</p>\n";
    if ($cmd eq "ls"){
    $comando=ls("-F",$arg);
    @comando=split ("\n",$comando);
    
    print "<p>Listando  $arg\n<table border>\n";
    $i=1;
    foreach $word (@comando){
        if ($i==1){
        $tagi="<tr><td>\n";
        $tagf="</td>\n";
        $i++;
        }
        elsif ($i<4){
        $tagi="<td>\n";
        $tagf="</td>\n";
        $i++;
        }elsif($i==4){
        $tagi="<td>\n";
        $tagf="</td></tr>\n";
        $i=1;
        }
        print "$tagi$word<br>$tagf";
    }    
    print "</table>";
    }    elsif ($cmd eq "ls -l"){
    $comando=ls("-l",$arg);
    @comando=split ("\n",$comando);
    
    print "<p>Listando  $arg\n<table border>\n";
    $i=1;
    foreach $word (@comando){
        if ($i==1){
        $tagi="<tr><td>\n";
        $tagf="</td>\n";
        $i++;
        }
        elsif ($i<4){
        $tagi="<td>\n";
        $tagf="</td>\n";
        $i++;
        }elsif($i==4){
        $tagi="<td>\n";
        $tagf="</td></tr>\n";
        $i=1;
        }
        print "$tagi$word<br>$tagf";
    }    
    print "</table>";
    }
    
     elsif ($cmd eq "du"){
    $comando=du("",$arg);
    @comando=split ("\n",$comando);
    
    print "<p>Uso do dir  $arg\n<table border>\n";
    $i=1;
    foreach $word (@comando){
        if ($i==1){
        $tagi="<tr><td>\n";
        $tagf="</td>\n";
        $i++;
        }
        elsif ($i<4){
        $tagi="<td>\n";
        $tagf="</td>\n";
        $i++;
        }elsif($i==4){
        $tagi="<td>\n";
        $tagf="</td></tr>\n";
        $i=1;
        }
        print "$tagi$word<br>$tagf";
    }    
    print "</table>";
    }

   elsif ($cmd eq "df"){
    $comando=df("",$arg);
    @comando=split ("\n",$comando);
    
    print "<p>Uso do dir  $arg\n<table border>\n";
    $i=1;
    foreach $word (@comando){
        if ($i==1){
        $tagi="<tr><td>\n";
        $tagf="</td>\n";
        $i++;
        }
        elsif ($i<4){
        $tagi="<td>\n";
        $tagf="</td>\n";
        $i++;
        }elsif($i==4){
        $tagi="<td>\n";
        $tagf="</td></tr>\n";
        $i=1;
        }
        print "$tagi$word<br>$tagf";
    }    
    print "</table>";
    }
    
    elsif($cmd eq "cat"){
    $comando=cat("$arg");
    print "<p>$arg\n<pre>\n$comando\n</pre>\n";
    }
    
    elsif($cmd eq "cd"){
    $comando=cd("$arg");
    $cmd="ls";
    $cd=$arg;
    &DoCmd;

    }elsif($cmd eq "locate"){
        $comando=locate("$arg");
        print "<p>Localizando $arg\n<pre>\n$comando\n</pre>\n";

    }else{
    $comando=echo("<p>Comando n&atilde;o implementado");
    print "$comando";
    }
}
</code>

_______
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm





      Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento!
http://br.mail.yahoo.com/


Mais detalhes sobre a lista de discussão Cascavel-pm