Информационная безопасность

индекс
289,97

Уязвимость сайта qip.ru

Ну, думаю прошло достаточное количество времени, и можно об этом написать.
И дабы избежать случившегося после опубликования статьи о Рамблере, и не уйти в бан, я выждал, отписал администрации, уязвимость закрыли. Так что, пишу я с совершенно чистой душой.

Новая дырявая плюшка



Значит, сделали ребята из qip.ru у себя на сайте выбор города, в котором ты живешь. Дату и время опытов, я оставлю при себе, иначе будет не хорошо, но скажу что не так давно.
новый сервис
После выбора города, ты получаешь сведения о погоде в своем городе, то есть, достаточно удобная плюшечка. Ну и как все, я решил воспользоваться, и воспользовался. И выяснилось, что сервис очень даже интересный, для некоторых.

Осмотр


Потыкав эту менюшку мышкой, был выбран город, и отслежены заголовки отправляемые на сервер. POST данные, выглядят примерно так:

code=RU_14_41145_24959

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

code=RU_14_41145_24959abrabr!1

и видим красоту:
image
Опа, lfi, локальный файловый инклуд. Просто прелестно! Ну вот и все, опытным путем злоумышленник подбирает кол-во подъемов относительно корневой директории, и получает возможность просматривать различные системные файлы, в том числе, файлы конфигурации сервера. А если заинклдуить логи апача, предварительно снабдив их «ядовитым кодом» в поле User-Agent, то это вообще будет полноценный шелл. Ну мы то с вам добрые ребята, так что мы этим заниматься не стали.

Good-boys


Отписали администрации, переговорили с ихним ведущим программистом по аське, и нашли взаимопонимание. Благо программист у них парень хороший, и поговорили мы хорошо. Я объяснил что где, он закрыл. Правда закрыл не с первого раза, сначала они сделали замену "/" в переменной, то есть, была возможность юзать "\", и вот только через недельку после первого фэила, они залатали ее совсем. Вот и все, а мораль сего поста такова: фильтруй post, не используй Explode, ибо затеряешься среди массивов, и не отфильтруешь нужный, как это случилось с qip.ru.
+157
24 мая 2010, 12:31
12

комментарии (44)

+21
lavi #
Часто за всем не уследишь :) А вы — молодец! Так и нужно реагировать на подобные вещи!
+2
romy4 #
за POSTом надо следить в первую очередь независимо от того какой сложности скрипт ты пишешь.
НЛО прилетело и опубликовало эту надпись здесь
+4
mr_gorbunov #
Уже не первый раз, однако.

Эх, QIP, эх, РБК.
+7
3ybHa9_Fe9 #
Им нравится
+3
kurokikaze #
No one's perfect.
+31
panc #
настоящий Хакер, взлом ради спортивного интереса + помощь админам!
НЛО прилетело и опубликовало эту надпись здесь
0
xeningem #
Вот тут есть произношение.
www.google.ru/dictionary?source=translation&hl=ru&q=hacker&langpair=en|ru
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
–1
nekufa #
Да, потому что hash звучит как хэш, а hacker как хакер.
При чём там буква э?
Вы hewlett packard тоже читаете как пэкард? :)
НЛО прилетело и опубликовало эту надпись здесь
+2
ReaM #
Надеюсь что действительно только Вы один до этого додумались, другие то могли и сплоиты повесить на квип.ру, а еще другие заразить скачиваемые аськи своими троянами, да или просто угнать пароли, мы то знаем что сервис webim.qip.ru сохраняет все переписки наши, пароли и так далее и жестко навязывают конечному пользователю свой jabber аккаунт у них, без которого не запуститься qip если не иметь сноровку.
НЛО прилетело и опубликовало эту надпись здесь
+2
ReaM #
В этот раз да, видимо обошлось.
0
lasthero #
Не первый раз qip.ru нагибают, опыт уже есть.
+13
Devix #
жестко навязывают конечному пользователю свой jabber аккаунт

Молодцы же!
+7
mr_gorbunov #
*холивар начинается здесь*
+13
Devix #
</thread>
+1
TWINc #
> Вы один до этого додумались, другие то могли и сплоиты повесить на квип.ру, а еще другие заразить скачиваемые аськи своими троянами

Уже не модно :) Старые сборки qip 2005 были заражены Induc'ом.
+1
Terion #
жестко навязывают конечному пользователю свой jabber аккаунт у них, без которого не запуститься qip

qip 2010 вам в помощь
+2
mlurker #
infium.exe" /isolated
+11
Isis #
говори «их», не «ихний»
+3
akira #
Любой программист должен заучить мантру: «Не доверяй данным»
+2
Quiz #
Есть ещё одна, реже используемая: «Они ни в коем случае не должны напрямую участвовать в инклудах.»
Можно использовать if, case, etc…
Например:
$city = trim($_POST['data']);
if (!empty($city)) {
  switch($city) {
   case '1':
   case '2':
   case '3':
     $this->showBlock($city);
     break;
   default:
     $this->showError(404);
     break;
  }
}


Или так (упрощённый вариант):
$city = trim($_POST['data']);
if (!empty($city) and is_numeric($city)) {
  $this->showBlock($city);
}else{
  $this->showError(404);
}


… и ещё полторы тысячи способов фильтрации данных, применяемых по обстоятельствам.

Но никогда не должно быть чего-то подобного: include($_POST['data']);
НЛО прилетело и опубликовало эту надпись здесь
+1
heel #
за шестизнак)
+2
m0Hze #
Всем спасибо за комментарии, было приятно.
+1
bogus92 #
«Проверяйте всё, что вводит пользователь. По умолчанию он злоумышленник» (с) habrahabr.ru/blogs/php/12067/
0
etc #
Им не привыкать
+1
m0Hze #
Какой вы злой =)
+3
Isis #
Сколько здесь античатовцев…
+1
Lordwind #
QIP нынче настолько жалок что даже хакеры понимают — убогих ломать грешно.
+2
mephisto #
Мораль проще, не include'ь и не require'ь файлы с именами из параметров запроса оО
+1
Antispammer #
после того, как эти умники стали хранить пароли пользователей у себя — отказался от квипа в пользу Миранды.
меньше глюков, больше толку.
0
glazs #
Я считаю, они должны вам денег. Могли пострадать, если бы вы не сообщили о дыре.
НЛО прилетело и опубликовало эту надпись здесь
–1
NaFigator #
Ну, раз столько пафоса про простую дырку, значит денег вам не дали :)
–1
Prescott #
>>> Правда закрыл не с первого раза, сначала они сделали замену "/" в переменной, то есть, была возможность юзать "\"…

Ужас, он хотя бы информатику в школе учил интересно?
0
Ctacok #
«А если заинклдуить логи апача, предварительно снабдив их «ядовитым кодом» в поле User-Agent»

Уже давно есть много различных методов.
/proc/self/environ
Вообще, Xakep.ru
0
Ctacok #
/proc/self/environ к примеру был, реально много различных методов:)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.