perl – 如何使用LWP发送POST数据?

前端之家收集整理的这篇文章主要介绍了perl – 如何使用LWP发送POST数据?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想制作一个与 http://www.md5crack.com/crackmd5.php通信的程序。我的目标是发送一个哈希(md5)的网站,希望该网站能够破解。之后,我想显示哈希的明文。我的问题是将数据发送到网站。我查找了关于使用LWP的文章,但我仍然迷失了。现在哈希没有发送,还有一些垃圾数据。我将如何发送一个特定的数据字符串到网站?
  1. use HTTP::Request::Common qw(POST);
  2. use LWP::UserAgent;
  3.  
  4.  
  5. $ua = LWP::UserAgent->new();
  6. my $req = POST 'http://www.md5crack.com/crackmd5.PHP',[
  7. maxlength=> '2048',name=> 'term',size=>'55',title=>'md5 hash to crack',value=> '098f6bcd4621d373cade4e832627b4f6',name=>'crackbtn',type=>'submit',value=>'Crack that hash baby!',];
  8. $content = $ua->request($req)->as_string;
  9.  
  10. print "Content-type: text/html\n\n";
  11. print $content;

解决方法

您正在发布错误的数据,因为您正在使用HTML来指定窗口小部件,并将其与实际发送的数据进行混合。更正的数据将是发送窗口小部件名称及其值:
  1. term: 098f6bcd4621d373cade4e832627b4f6

相反,目前正在POST的数据是:

  1. maxlength: 2048
  2. name: term
  3. size: 55
  4. title: md5 hash to crack
  5. value: 098f6bcd4621d373cade4e832627b4f6
  6. name: crackbtn
  7. type: submit
  8. value: Crack that hash baby!

更正程序:

  1. use strict;
  2. use warnings;
  3.  
  4. use LWP::UserAgent;
  5. use HTTP::Request::Common qw{ POST };
  6. use CGI;
  7.  
  8. my $md5 = '098f6bcd4621d373cade4e832627b4f6';
  9. my $url = 'http://www.md5crack.com/crackmd5.PHP';
  10.  
  11. my $ua = LWP::UserAgent->new();
  12. my $request = POST( $url,[ 'term' => $md5 ] );
  13. my $content = $ua->request($request)->as_string();
  14.  
  15. my $cgi = CGI->new();
  16. print $cgi->header(),$content;

您还可以使用LWP::UserAgent的post()方法

  1. use strict;
  2. use warnings;
  3.  
  4. use LWP::UserAgent;
  5. use CGI;
  6.  
  7. my $md5 = '098f6bcd4621d373cade4e832627b4f6';
  8. my $url = 'http://www.md5crack.com/crackmd5.PHP';
  9.  
  10. my $ua = LWP::UserAgent->new();
  11. my $response = $ua->post( $url,{ 'term' => $md5 } );
  12. my $content = $response->decoded_content();
  13.  
  14. my $cgi = CGI->new();
  15. print $cgi->header(),$content;

始终记得use strictuse warnings.这被认为是良好的做法,将节省您的时间。

猜你在找的Perl相关文章