Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Скрипт Perl: Узнавалка версии phpBB |

25.01.2006, 03:08
|
|
Участник форума
Регистрация: 17.12.2005
Сообщений: 121
Провел на форуме: 551495
Репутация:
227
|
|
Скрипт Perl: Узнавалка версии phpBB
Скрипт - который пытается узнать версии phpBB форума.
Он ищет файл CHANGELOG.html откуда теоретически можно прочитать версию установленного форума.
Для упрощения, скрипт ищет в гугле по заданной ему строке и тестит полученные линки, поэтому было бы логично давать ему такие запросы, которые привели бы на форум (напр. "phpbb powered 2001" или "phpBB forum" и т.д. ).
Как параметры скрипту надо строку, которую он искать будет (я когда тестировал, то искал по "phpbb powered 2001", результат интерестен :-) ) и количество страниц google которые он будет обрабатывать (на каждой странице ~10 линков), можно также задать прокси.
Приятного вершн хантинга :-)
PHP код:
#!/usr/bin/perl -w
# phpBB Version Finder
# This script looks for phpBB changelog.html file
# and if such file was found, prints version of
# installed forum.
# It searches on google with given string and
# checks all found links
# 01.2006 by DetMyl, DetMyl@bk.ru
if (@ARGV < 2)
{
print q(
+++++++++++++++++++++++++++++++++++++++++++++++++++
Usage: perl Vercheck.pl [search str] [how much google pages to CHECK] [proxy (optional)]
i.e. perl Vercheck.pl "Powered by phpBB" 2 127.0.0.1:3128
will test 20 links from sites containing "Powered by phpBB"
++++++++++++++++++++++++++++++++++++++++++++++++++++
);
exit;
}
use strict;
use LWP::UserAgent;
use Time::Local;
my $timme=scalar(localtime());
my $search = $ARGV[0];
my $links = $ARGV[1];
my $proxy = $ARGV[2];
my $request;
my $response;
my $sstring;
my $t_url;
my $t_path;
my $count = 0;
my $browser = LWP::UserAgent->new ();
$browser->agent('User-Agent: Opera/8.0 (Windows NT 5.1; U; en)');
if ( defined $proxy)
{
$proxy =~ s/(http:\/\/)//eg;
$browser->proxy("http" , "http://$proxy");
}
print ("\nSession started at $timme\n") ;
if ($proxy) {print "Using proxy $proxy\n";}
print "--------------------------------\n\n";
print "++ Searching for: $search\n";
for (my $i = 0; $i < $links; $i++) # po 10 zaprosov za raz...
{
my $foo = $i*10;
print "\n~~Links $foo till ".($foo + 10)." ~~\n\n";
$request = "http://www.google.com";
$request .= "/search?q=$search&num=10&safe=off&start=$foo";
$response = $browser->get($request);
die "Error: ", $response->status_line
unless $response->is_success;
#nahodim linky
my $temp = $response->content;
M1:
while ($temp =~ /class=g><a class=l href="http:\/\/(.*)\/[\w\d\_\-\?\=\.\/\&\+\%]*"/gi)
{
$t_url=$1;
$t_path="/";
print "--\n";
$request = "http://";
$request .= $t_url;
$request .= $t_path;
print "Testing $request: ";
if (&test($request."docs/CHANGELOG.html")) {print "----\n\n"; next M1;}
if (&test($request."CHANGELOG.html")) {print "----\n\n"; next M1;}
print "Not found\n----\n\n";
}
}
sub test
{
my @browser_like_headers = (
'User-Agent' => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en)',
'Accept-Language' => 'en',
'Accept' => "text/html, image/jpeg",
);
$response = $browser->get(@_, @browser_like_headers);
unless ($response->is_success)
{
return 0;
}
if ($response->content =~ m/<span class=\"maintitle\">phpBB 2.0.x CHANGELOG<\/span/i)
{
if ($response->content =~ m/<li><a href=\"[\#\d]*\">Changes since ([\d\.]*)<\/a><\/li>/i)
{
print (" version: $1 \n");
return 1;
}
return 0
}
if ($response->content =~ m/<span class=\"maintitle\">phpBB ([\d\.]*) CHANGELOG<\/span/i)
{
print (" version: $1 \n");
return 1;
}
return 0;
}
П.С. Я не очень бы доверял файлу CHANGELOG.html ;-)
Но надеюсь скрипт окажется полезен.
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|