那么我做了一个简单的脚本来发送一个数据包,我需要读取响应,如果响应是我在寻找然后打印出来是好的,如果不打印出来是坏的,现在如果ip is vuln,那么脚本就可以工作并打印出它的阴影。现在,如果它不是恶作剧,那么脚本就会挂起,并且发送HEX数据的有效载荷。在Perl中没有关闭的套接字
use IO::Socket;
use strict;
print "Connecting..\n";
my $socket = IO::Socket::INET->new(
PeerAddr => '23.113.161.164', # 38.124.108.67 <-- NON vuln ip for testing
PeerPort => 123, # 23.113.161.164 <-- This IS a vuln ip!
Proto => 'udp',
Timeout => 1);
die "Error With Sockets!: $!\n" unless $socket;
print "Connected!\n";
my $payload = "\x97\x00\x00\x00\xAA\x00\x00\x00";
my $good = "\x97\x00\x00\x00";
$socket->send($payload) or die "Nothing got sent.";
my $data;
$socket->recv($data,4);
my $response = substr($data,0,8);
$response = reverse($response);
print $response;
if ($response == "\x97\x00\x00\x00") {
print "IP IS VULN\n";
} else {
print "IP IS NOT VULN\n";
exit;
}
例错误:
使用非vuln IP:
[email protected]:~# perl 2.pl
Connecting..
Connected!
(这就是在那里它被卡住)
使用vuln IP:
[email protected]:~# perl 2.pl
Connecting..
Connected!
▒IP IS VULN
(如你可以看到它确实很好)
这是脚本被卡住:
$socket->send($payload) or die "Nothing got sent.";
任何帮助将不胜感激。
总是使用'使用警告;'。你的代码有一个主要的错误,这将发现。 – ikegami