Старые мемберы ачата, наверное, помнят мое творение Domain scaner на php. Для тех, кто не знает о чем идет речь, я расскажу. Вы задаете скрипту два параметра. Искомый скрипт и урл сайта. Далее с помощью системы Reverse-ip скрипт получает список сайтов хостящихся на этом же сервере что и требуемый сайт. После, получив сайты начинается опрос google с параметрами allintext:скрипт site:сайт И выдает ссылки. То-есть, например мы можем задать так phpbb.com Powered by phpbb и получим ссылку на скрипт. Код. Code: #!/usr/bin/perl use strict; use threads; use LWP::UserAgent; my(@urls,@res,@thr); my $st=join(' ',@ARGV); my ($domain,$script)=split("::",$st); $script=~s/ /+/g; $script=~s/%20/+/g; if(@ARGV<2){print "\nUsage: $0 phpbb.com::Powered by phpbb\n";exit();} my $browser = LWP::UserAgent->new; my $url = 'http://www.seologs.com/ip-domains.html'; my $response = $browser->post($url,['domainname' => $domain]); my $data=$response->content; while($data=~/(?<=\)\s)([-\w\.]*)(?=<br>)/ig){ push(@urls,$1); } sub parsegoogle { my($script,$url)=@_; my(@urlprs); my $ua = LWP::UserAgent->new; my $tmp=rand(800); $ua->agent("Mozilla 5.0/Firefox/Build $tmp" . $ua->agent); my $req = HTTP::Request->new(GET => "http://www.google.ru/search?hl=ru&q=allintext:$script+site:$url"); $req->header('Accept' => 'text/html'); my $res = $ua->request($req); my $data=$res->content; while($data=~/(?<=<h2 class=r><a href=\")(.*?)(?=\")/ig){ push(@urlprs,$1."\n"); } return @urlprs; } #MAIN my $size=@urls; for(my $i=0;$i<$size;$i++){ @thr[$_]=threads->create(\&parsegoogle,$script,$urls[$i]); print @thr[$_]->join; }
Просьба все недочеты сообщать тут или в пм.Так как с перлам я перепихиваюсь совсем недано может быть много недочетов))) Ссылка на файл на всякий.. http://elitsecurity.ru/toolz/dnsscan.pl А вот ссылка на старую тему.. https://forum.antichat.ru/showthread.php?p=91609#post91609
Честно говоря... Я не заметил отличий от самого первого "крякера инета" от NSD... Разве что там, проверка на phpBB была тупо в лоб, а тут через гугл поискать. А код между прочим хороший, есть всего пара моментов, это даже не замечания, а просто советы: Code: my $req = HTTP::Request(GET => ...) $req->header(...) можно заменить на Code: $ua->get($url, Header => Value) Code: for(my $i=0;$i<$size;$i++){ можно как Code: for(0..scalar @urls) { Code: @thr[$_] надо писать как Code: $thr[$_] ну и не забываем делать use warnings;