Chinaunix首页 | 论坛 | 博客
  • 博客访问: 392430
  • 博文数量: 117
  • 博客积分: 4416
  • 博客等级: 上校
  • 技术积分: 1135
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-08 14:16
个人简介

一生醉生忘死,就让他继续下去吧!

文章分类

全部博文(117)

分类: LINUX

2011-05-31 08:56:41

#!/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) |
给主人留下些什么吧!~~