0

我正在尝试在 URL 中传递参数。我不知道缺少什么,我试图查看执行此脚本后 URL 的外观。

my $request3 = HTTP::Request->new(GET => $sql_activation);

my $useragent = LWP::UserAgent->new();
$useragent->timeout(10);

my $response2 = $useragent->request($request3);
if ($response2->is_success) {

    my $res2 = $response2->content;

    if ($res =~ m/[#](.*):(.*)[#]/g) {
        my ($key, $username) = ($1, $2);
        print "[+] $username:$key \n\n";
    }
    else {
      print "[-] Error \n\n";
    }
}

my $link =
      "http://localhost/wordpress/wp-login.php?action=rp&key=" 
    . $key
    . "&login="
    . $username;

sub post_url {

    my ($link, $formref) = @_;

    my $ua = new LWP::UserAgent(timeout => 300);
    $ua->agent('perlproc/1.0');
    my $get = $ua->post($link, $formref);

    if ($get->is_success) {
        print "worked \n";
    }
    else {
        print "Failed \n";
    }
}

执行脚本后URL是这样的

site/wordpress/wp-login.php?action=rp&key=&login=
4

1 回答 1

1

Perl 具有块级作用域。您在语句后面的块中定义$key和。他们的生活不止于此。$usernameif

您需要在该块之前my创建它们(使用) 。

# HERE
my ( $key, $username );
if ( $response2->is_success ) {
    my $res2 = $response2->content;
    if ( $res =~ m/[#](.*):(.*)[#]/g ) {
        # Don't say my again
        ( $key, $username ) = ( $1, $2 );
    }
    else { print "[-] Error \n\n"; }
}
于 2013-05-16T18:29:13.130 回答