18

http://www.md5crack.com/crackmd5.phpと通信するプログラムを作りたいです。私の目標は、サイトにハッシュ (md5) を送信することであり、サイトがそれをクラックできることを願っています。あとは、ハッシュの平文を表示したいと思います。私の問題は、データをサイトに送信することです。LWP の使用に関する記事を調べましたが、まだ迷っています。現在、ハッシュは送信されておらず、他のジャンク データが送信されています。特定のデータ文字列をサイトに送信するにはどうすればよいですか?

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;
4

2 に答える 2

34

HTML を使用してウィジェットを指定し、それを実際に送信するデータと混同しているため、間違ったデータを POST しています。修正されたデータは、ウィジェット名とその値を送信するだけです。

term: 098f6bcd4621d373cade4e832627b4f6

代わりに、現在 POST されているデータは次のとおりです。

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

修正プログラム:

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;

LWP::UserAgentの post() メソッドも使用できます。

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;

とを必ず覚えておいてuse strictくださいuse warnings。これは良い習慣と考えられており、時間を節約できます。

于 2010-10-01T04:52:02.717 に答える
6

以前は、クラッカーはこの種のものを読むことで理解していました。HTTP::Request::Common に例があり、LWP::UserAgent は POST データを送信するためにチェックアウトするように指示します。フォーム データのみを送信する必要があり、それに付随するメタ データは送信しません。

WWW::Mechanizeはより人間中心のインターフェースを備えているため、より簡単に使用できるかもしれません。

于 2010-10-01T17:43:45.843 に答える