#!/use/bin/perl
use strict;
use warnings;
use LWP::Simple;
use LWP::UserAgent;
my $login_url = '';
my $form_hash;
my $user = "撒哈拉里的鱼";
my $pass = 'fake_password';
&GetFormHash( );
&LoginCU( );
sub GetFormHash( )
{
my $url = '';
my $content = get $url || die "Get form hash error: $!\n";
if( $content =~ /name=\"formhash\" value=\"(.*?)\">/ )
{
$form_hash = $1;
print "get form hash ok: $1\n";
}
}
sub LoginCU( )
{
my $ie = LWP::UserAgent->new( );
$ie->cookie_jar( {} );
my $response = $ie->post( $login_url, [ 'formhash' => $form_hash,
'referer' => $login_url,
'username' => $user,
'password' => $pass,
'questionid' => 0,
'answer' => '',
'cookietime' => 315360000,
'loginmode' => '',
'styleid' => 1,
'loginsubmit' => "提 交" ] );
if ( not $response->is_success )
{
die "login error: ", $response->status_line. "\n";
}
if( $response->content =~ /$user/ )
{
print "login successful!\n";
}
else
{
die "login error!";
}
}
今天刚好有空来BBS,发现你还没搞定,就写了个简单的脚本。为了方便你阅读代码,我使用了提交表单的方式,没有采用抓包直接post数据。
你需要注意的是,formhash字段是动态生成的,你需要在登陆前动态获取一下。登陆失败时,请尽量多填充字段,也许你认为不重要的,但是服务端却检查了。
阅读(1850) | 评论(0) | 转发(0) |