ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Скрипт Perl: Узнавалка версии phpBB
  #1  
Старый 25.01.2006, 03:08
Аватар для DetMyl
DetMyl
Участник форума
Регистрация: 17.12.2005
Сообщений: 121
Провел на форуме:
551495

Репутация: 227
Post Скрипт 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(
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 
Usageperl Vercheck.pl [search str] [how much google pages to CHECK] [proxy (optional)] 
 
i.eperl 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><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: $\n");
              return 1;
          }
         return 0
      }
     if (
$response->content =~ m/<span class=\"maintitle\">phpBB ([\d\.]*) CHANGELOG<\/span/i)
      {
              print (" 
version: $\n");
              return 1;
      }
     return 0;

П.С. Я не очень бы доверял файлу CHANGELOG.html ;-)
Но надеюсь скрипт окажется полезен.
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уязвимости в форумах phpbb до версии 2.0.13 *Van* Форумы 3 27.11.2005 00:43
Books Perl FRAGNATIC PHP, PERL, MySQL, JavaScript 0 11.08.2005 16:58
Нужен простенький скрипт на Perl SladerNon PHP, PERL, MySQL, JavaScript 6 16.06.2005 18:17
Безопасность приложений на Perl k00p3r Чужие Статьи 0 12.06.2005 09:39
XSS usercp_register.php phpBB 2.0.13 и более ранние версии XJIOP Форумы 14 16.04.2005 17:46



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ