Перейти к контенту

Уязвимости форумов Invision Power Board


Рекомендуемые сообщения

Вот такой вот :[||||||]:

 

Лечится удалением plain/text файлов из разрешенных. txt, htm, html...

 

В общем головой думайте, прежде чем...

Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 1,2k
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Загружено фотографий

GiV, делаем пустой файл с расширением JPEG, запихиваем в него код с securefocus и загружаем на форум. Попытка открыть — alert().
Ссылка на комментарий
Поделиться на других сайтах

Ну замените:

 	 @header( "Content-Type: ".$ibforums->cache['attachtypes'][ $attach['attach_ext'] ]['atype_mimetype'].
     "\nContent-Disposition: inline; filename=\"".$attach['attach_file']
     ."\"\nContent-Length: ".(string)(filesize( $file ) ) );

на

 	 @header( "Content-Type: application/force-download\nContent-Disposition: inline; filename=\"".$attach['attach_file']
     ."\"\nContent-Length: ".(string)(filesize( $file ) ) );

 

проблем то...

Ссылка на комментарий
Поделиться на других сайтах

Где, где... ну пошевелите мозгами, какой файл может отвечать за вывод аттачей? :D

 

Конечно же sources\misc\attach.php ;)

Ссылка на комментарий
Поделиться на других сайтах

Мне XSpider нашел такую, по его словам, уязвимость, которая есть и на этом форуме:

 

http://ibresource.ru/forums/?=PHPB8B5F2A0-...A9-4C7B08C10000

 

это какая-то инфа phpinfo по разработчикам языка. В принципе это конечно не опасно, но нет ли вероятности передать какие-то другие числа и получить уже настройки языка и серверные пути?

Ссылка на комментарий
Поделиться на других сайтах

XSpider нашел такую, по его словам, уязвимость, которая есть и на этом форуме:
:D Эта "уязвимость" давно всем известна.

Хотя на самом деле, никакая это не уязвимость, а так называемые Easter Eggs. Они присутствует во всех скриптах ПХП (в принципе почти во всем софте такое можно встретить)

 

Именно эта ( http://ibresource.ru/forums/?=PHPB8B5F2A0-...A9-4C7B08C10000 ) является "Списком разработчиков"

 

Есть еще несколько, а именно:

 

PHP Authors Image ))

http://ibresource.ru/forums/?=PHPE9568F36-...69-00AA001ACF42

 

PHP Logo

http://ibresource.ru/forums/?=PHPE9568F34-...69-00AA001ACF42

 

Zend Logo

http://ibresource.ru/forums/?=PHPE9568F35-...69-00AA001ACF42

Ссылка на комментарий
Поделиться на других сайтах

хм... неприятным открытием для меня стало то что модератор не имея админ панели, а имея все лишь warn панель может разбанить пользователя, один забанил другой разбанил не дело....

 

кому надо можете профиксить

./sources/misc/warn.php

находим

 

        if ( ! $this->warn_member['id'] )
       {
      	 $std->Error( array( LEVEL => 1, MSG => 'no_such_user') );
       }

 

 

добавляем после

 

  if ( strlen($this->warn_member['temp_ban']) > 1  )
      {
 $std->Error( array( LEVEL => '1', MSG => 'banned_mem') );
      }

 

 

и в языки добавляем текст ошибки

/lang/*/lang_error.php

 

добавляем

 

$lang['banned_mem']  = "Этому пользователю сейчас невозможно изменить рейтинг. Участник на данный момент забанен.";

Гхм, поставил фикс и такая штука:

Вобщем рут-админ(не прописанный, как модер раздела), при попытке изменить warn, получает "Этому пользователю сейчас невозможно изменить рейтинг. Участник на данный момент забанен., причём при первом изменении warn-a! -Т.е. варн, до этого, вообще не изменялся.

"Модерами" не тестил - может с этой группой всё ок. :D

Ссылка на комментарий
Поделиться на других сайтах

>> -Т.е. варн, до этого, вообще не изменялся.

"Модерами" не тестил - может с этой группой всё ок.

 

Вообще странно конечно. $this->warn_member['temp_ban']) не может быть при этом единицей.

А так чтобы супре модератор мог разбанить в любом случае, сделай так:

 

if ( $this->warn_member['temp_ban'] and !$ibforums->member['g_is_supmod']  )
     {
$std->Error( array( LEVEL => '1', MSG => 'banned_mem') );
     }

Ссылка на комментарий
Поделиться на других сайтах

Song,

 

Вроде, теперь воркает, спасибо. :D

Т.е. уже могу под рут-админом, не входящего в модераторы раздела, изменять "чистый" варн. Чего раньше - не было

Ссылка на комментарий
Поделиться на других сайтах

Din

 

вот так думаю лучше:

 

   $ban_error = $std->hdl_ban_line( $this->warn_member['temp_ban'] );
  if (  time() <= $ban_error['date_end'] )
  {
 $std->Error( array( LEVEL => '1', MSG => 'banned_mem') );
  }

 

хотя странно очень почему поле temp_ban по умолчанию не ноль....

ладно вот это точно должно роботать до оканчания бана с этим никто не изменит рейтинг

Ссылка на комментарий
Поделиться на других сайтах

Ребят, есть ли возможность проверить дырки на форуме как-то конкретно? Тут был спор с одним человеком, что в течении 2-х часов мой форум ломанут :D Спор - 40$. Хотелось бы протестировать как-то на уязвимость, ну, что б не проспорить ;)
Ссылка на комментарий
Поделиться на других сайтах

Din

 

вот так думаю лучше:

 

   $ban_error = $std->hdl_ban_line( $this->warn_member['temp_ban'] );
  if (  time() <= $ban_error['date_end'] )
  {
 $std->Error( array( LEVEL => '1', MSG => 'banned_mem') );
  }

 

хотя странно очень почему поле temp_ban по умолчанию не ноль....

ладно вот это точно должно роботать до оканчания бана с этим никто не изменит рейтинг

-Гут, это тоже работает.

Почему не ноль?- затрудняюсь ответить. Может это "у меня" не ноль, а у остальных всё в порядке? :D

Ссылка на комментарий
Поделиться на других сайтах

А собственно на 0 там и не проверяется...

 

strlen($this->warn_member['temp_ban']) > 1

 

два пробела тоже проходят по этому условию. Вот, если бы так:

 

strlen(intval($this->warn_member['temp_ban'])) > 1

 

тогда да.

 

Но всё-равно я не понимаю зачем тормозить код вызовом ненужных и лишних функций, когда php может всё сделать сам при преобразовании типов? Это же относится к варианту

 

 $ban_error = $std->hdl_ban_line( $this->warn_member['temp_ban'] );
 if (  time() <= $ban_error['date_end'] )
 {
$std->Error( array( LEVEL => '1', MSG => 'banned_mem') );
 }

Ссылка на комментарий
Поделиться на других сайтах

как пофиксить это? на официальном форуме овтета не нашел :D

http://forums.invisionpower.com/index.php?...dpost&p=1172697 -- все делаю, но все же sql-inj остается ;)

[1124048654:1124049125]Прикрыть уязвимость как?

помогло :)

Ссылка на комментарий
Поделиться на других сайтах

Ребят, есть ли возможность проверить дырки на форуме как-то конкретно? Тут был спор с одним человеком, что в течении 2-х часов мой форум ломанут :D Спор - 40$. Хотелось бы протестировать как-то на уязвимость, ну, что б не проспорить ;)

Кстати, кинь в личку контакты - готов с ним поспорить.

Вообще, хочу сотрудничество с каким-нибудь абмициозным хакером, чтобы движок всё время тестил на дырки :)

Ссылка на комментарий
Поделиться на других сайтах

А собственно на 0 там и не проверяется...

 

strlen($this->warn_member['temp_ban']) > 1

 

два пробела тоже проходят по этому условию. Вот, если бы так:

 

strlen(intval($this->warn_member['temp_ban'])) > 1

 

тогда да.

 

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

 

время забана|время разбана|часы

 

или

 

0 - по дефолту(надо глянуть что в русской версии)

 

или

 

"" - пустота после разбана

 

но ведь два пробела не вставляется, да и два пробела тож вроде не пройдут один пройдет, длинна строки из двух пробелов ведь будет 2

 

Но всё-равно я не понимаю зачем тормозить код вызовом ненужных и лишних функций, когда php может всё сделать сам при преобразовании типов? Это же относится к варианту

 

 $ban_error = $std->hdl_ban_line( $this->warn_member['temp_ban'] );
 if (  time() <= $ban_error['date_end'] )
 {
$std->Error( array( LEVEL => '1', MSG => 'banned_mem') );
 }

 

угу ты прав, можно в принципе проверять в том фиксе который ты выложил на доступ к АЦП. Буду юзать что ты написал :D

Ссылка на комментарий
Поделиться на других сайтах

Люди, кто понимает что это и чем это грозит и как это пофиксить? Кусок отчёта по проверке безопасности сервера.

Запрос для выполнения SQL инъекции:


[url="http://remote"]http://remote[/url] server forum/index.php?&act=Members&photoonly=&name=&name_box=all&max_results=10&filter=ALL&sort_order=desc&sort_key=posts&st=1'Cookie: session_id=2aaed8b4b6f62646eed7f84da31083d4; forum_read=a:1:%7Bi:6%3Bi:1104561113%3B%7D;


Результат работы

<...>
<> 1
ORDER BY m.posts desc
LIMIT 1',10

mySQL error: You have an error in your SQL syntax near '',10' at line 8
mySQL error code: 
Date: Saturday 01st of January 2005 10:31:05 AM</textarea></form><br>We apologise for any inconvenience</blockquote></body></html>
<...>

Решение

Запретить использование этого скрипта или программно исправить ошибку.

 

И как же исправить эту ошибку?

Ссылка на комментарий
Поделиться на других сайтах


×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.