簡體   English   中英

如何使用LWP發送POST數據?

[英]How do I send POST data with LWP?

我想制作一個與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;

您正在發布錯誤的數據,因為您正在使用HTML指定窗口小部件並將其與實際發送的數據混淆。 更正后的數據只是發送小部件名稱及其值:

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 strictuse warnings 它被認為是一種良好的做法,可以節省您的時間。

過去,通過閱讀,破解者會想出這種東西。 HTTP :: Request :: Common中有一些例子,LWP :: UserAgent告訴你簽出發送POST數據。 您只需要發送表單數據,而不是隨附的元數據。

您可能更容易使用WWW :: Mechanize,因為它具有更加以人為中心的界面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM