
Для тех, кто не знаком с EBay, советую перейти по ссылке, а мы продолжаем.
13 декабря этого года David Vieira-Kurz, обнаружил на одном из поддоменов ебэя, удалённое выполнение кода, или попросту — RCE.
Уязвимый участок кода находился на домене sea.ebay.com, в функционале поиска. Типичная ссылка для поиска выглядит примерно так:
https://sea.ebay.com/search/?q=david&catidd=1. Но тут не все так просто, поскольку php использует динамическую типизацию, значит, возможно появление подводных камней. Первым делом Дэвид отправил вместо строки массив q[]. Но в ответ пришел ответ нормальный ответ, характерный для запроса типа строки. После чего ресерчер решил передать сразу несколько элементов массива q[], а в качестве, одного из элементов передать php код для вызова функции phpinfo. В результате строка запроса приобрела вид: https://sea.ebay.com/search/?q=1&catidd=1&q[0]=2&q[1]={${phpinfo()}}Отлично, результат получен.
Учитывая, что данная уязвимость является критичной, можно предположить, что будь на месте Дэвида «чёрный» хакер, веб сервер был бы у него в кармане, не исключен и доступ к базе данных основного домена.
Поскольку Дэвид не преследовал корыстных целей, он сообщил об уязвимости тех. поддержке ебэя, которая в течении короткого времени ликвидировала данную дырку. Так как автор не смотрел исходный код скрипта, появилось предположение, что уязвимый участок кода выглядит примерно так:
foreach($_GET['q'] as $data)
{
if ($data проходит по некоторым фильтрам) {
eval("происходит выполнение $data");
}
}
Кроме текста есть еще и видео с демонстрацией:
Проверяйте свой код на наличие подобных участков, это может обезопасить вас в будущем.
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.
Комментариев нет:
Отправить комментарий