#!/usr/bin/perl use IO::Socket; $phost = 'localhost'; #хост прокси $pport = 8118; #порт прокси $link = 'http://forum.ru'; #ссылка на форум без / в конце $host = 'forum.ru'; #хост форума $user = 'Юзир'; #юзер $pass = 'pxVoQV'; #пасс $topic = 'Превед'; #название топика $message = 'Превед'; #текст $forum = 2; #id форума $sleep = 34; #задержка $count = 35; #сколько топегов создать ###логинемся### $post = "$link/index.php?act=Login&CODE=01&CookieDate=1"; $data = "UserName=$user&PassWord=$pass"; ###получаем сессию### $answ = request($post,$data); ($session,$session) = $answ =~ m/session_id=([a-z0-9]{32})/sg; $topic = urlen($topic); $message = urlen($message); for (0..$count){ ###топег### грузим страницу поста и парсим хидден кеи $post = "$link/index.php?act=Post&CODE=00&f=$forum"; $top = "TopicTitle=$topic&Post=$message&s=$session"; $answa = request($post,$top); @key = $answa =~ m/value=\'([a-zA-Z0-9]{32})\'/gsx; $authkey = $key[1]; $postkey = $key[2]; ###постем### $post = "$link/index.php?act=Post&CODE=01&f=$forum"; $top = "TopicTitle=$topic&Post=$message&s=$session&auth_key=$authkey&postkey=$post_key&iconid=1"; $answ2 = request ($post,$top); $session = $answ2 =~ m/session_id=([a-z0-9]{32})/g; print "[+] Message ".$i++." posted\n"; sleep ($sleep); } sub request { ($post,$data) = @_; $sock = IO::Socket::INET->new(PeerAddr=>$phost,PeerPort=>$pport,Proto=>'tcp') || die '[-] Cant connect'; print $sock "POST $post HTTP/1.1\r\n". "Host: $host\r\n". "Accept: */*\r\n". "Content-Type: application/x-www-form-urlencoded\r\n". "Content-Length: ".length($data)."\r\n". "User-Agent: Perl\r\n". "Connection: close\r\n\r\n$data"; while ($answ = <$sock>){ $answer .= $answ; } close $sock; return $answer; } sub urlen { ($str)=@_; $str=~s/([^0-9A-Za-z\?&=:;])/sprintf("%%%x", ord($1))/eg; return $str }