⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 finder.pl

📁 LinuxTools一书随书源代码
💻 PL
字号:
#!/bin/perl#### This script test for most of the methods used by WebDAV## If the server does not complain about the method its an indication## that WebDAV is in use..#### Please see http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS03-007.asp## for info why this is interesting..#### SensePost Research## research@sensepost.com## 2003/3/17## RT$|=1;use Socket;@methods = ("PROPFIND","PROPPATCH","MCOL","PUT","DELETE","LOCK","UNLOCK");if ($#ARGV<1){die "parameters: IP/dns_name port\n";}$target=@ARGV[0];$port=@ARGV[1];print "Testing WebDAV methods [$target $port]\n-------------------------------------\n";@results=sendraw2("HEAD / HTTP/1.0\r\n\r\n",$target,$port,15);if ($#results < 1){die "15s timeout to $target on port $port\n";}foreach $line (@results){	if ($line =~ /Server:/){		($left,$right)=split(/\:/,$line);		$right =~ s/ //g; 		print "$target : Server type is $right";		if ($right !~ /Microsoft-IIS\/5.0/i){			print "$target : Not a Microsoft IIS 5 box\n";			exit(0);		}	}}foreach $method (@methods){		@results=sendraw2("$method /test/nothere HTTP/1.0\r\n\r\n",$target,$port,15);	if ($#results < 1){print "15s timeout to $target on port $port\n";}	 $okflag=0;	 foreach $line (@results){			if ($line =~ /Method Not Supported/i){			print "Method $method is not allowed\n";			$okflag=1;		}		if (($line =~ /method/i) && ($line =~ /not allowed/i)){			print "Method $method is not allowed\n";			$okflag=1;		}	}	if ($okflag==0){		print "Method $method seems to be allowed - WebDAV possibly in use\n";	}}########## Sendraw-2sub sendraw2 {        my ($pstr,$realip,$realport,$timeout)=@_;        my $target2 = inet_aton($realip);        my $flagexit=0;
		my $alarm;        $SIG{ALRM}=\&ermm;        socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp')||0) || die("Socket problems");        alarm($timeout);        if (connect(S,pack "SnA4x8",2,$realport,$target2)){                alarm(0);                my @in;                select(S); $|=1;                print $pstr;                alarm($timeout);                while(<S>){                        if ($flagexit == 1){                                close (S);                                print STDOUT "Timeout\n";                                return "Timeout";                        }                        push @in, $_;                }                alarm(0);                select(STDOUT);                close(S);                return @in;        } else {return "0";}}sub ermm{        $flagexit=1;        close (S);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -