perl post lwp

perl - ¿Cómo envío datos POST con LWP?



(2)

Solía ​​ser que los crackers resolverían este tipo de cosas leyendo. Hay ejemplos en HTTP :: Request :: Common, que LWP :: UserAgent le indica que debe verificar para enviar datos POST. Solo necesita enviar los datos del formulario, no los metadatos que lo acompañan.

Es posible que le resulte más fácil usar WWW :: Mechanize ya que tiene una interfaz mucho más centrada en el ser humano.

Quiero hacer un programa que se comunique con http://www.md5crack.com/crackmd5.php . Mi objetivo es enviar un hash (md5) al sitio y con suerte el sitio podrá descifrarlo. Después, me gustaría mostrar el texto claro del hash. Mi problema es enviar los datos al sitio. Busqué artículos sobre el uso de LWP, sin embargo, aún estoy perdido. En este momento, el hash no está enviando, algunos otros datos no deseados son. ¿Cómo voy a enviar una cadena de datos en particular al sitio?

use HTTP::Request::Common qw(POST); use LWP::UserAgent; $ua = LWP::UserAgent->new(); my $req = POST ''http://www.md5crack.com/crackmd5.php'', [ maxlength=> ''2048'', name=> ''term'', size=>''55'', title=>''md5 hash to crack'', value=> ''098f6bcd4621d373cade4e832627b4f6'', name=>''crackbtn'', type=>''submit'', value=>''Crack that hash baby!'', ]; $content = $ua->request($req)->as_string; print "Content-type: text/html/n/n"; print $content;


Está PUBLIENDO los datos incorrectos porque está tomando el HTML para especificar el widget y combinarlo con los datos que realmente envía. Los datos corregidos serían simplemente enviar el nombre del widget y su valor:

term: 098f6bcd4621d373cade4e832627b4f6

En cambio, los datos que se obtienen POSTed actualmente son:

maxlength: 2048 name: term size: 55 title: md5 hash to crack value: 098f6bcd4621d373cade4e832627b4f6 name: crackbtn type: submit value: Crack that hash baby!

Programa corregido:

use strict; use warnings; use LWP::UserAgent; use HTTP::Request::Common qw{ POST }; use CGI; my $md5 = ''098f6bcd4621d373cade4e832627b4f6''; my $url = ''http://www.md5crack.com/crackmd5.php''; my $ua = LWP::UserAgent->new(); my $request = POST( $url, [ ''term'' => $md5 ] ); my $content = $ua->request($request)->as_string(); my $cgi = CGI->new(); print $cgi->header(), $content;

También puede usar el método post () de LWP::UserAgent :

use strict; use warnings; use LWP::UserAgent; use CGI; my $md5 = ''098f6bcd4621d373cade4e832627b4f6''; my $url = ''http://www.md5crack.com/crackmd5.php''; my $ua = LWP::UserAgent->new(); my $response = $ua->post( $url, { ''term'' => $md5 } ); my $content = $response->decoded_content(); my $cgi = CGI->new(); print $cgi->header(), $content;

Recuerde siempre use warnings use strict y de use warnings . Se considera una buena práctica y le ahorrará tiempo.