Удаленное выполнение кода на EBay

в 20:12, , рубрики: ebay, безопасность веб-приложений, информационная безопасность, метки:

В мире информационной безопасности пока еще не всё так гладко, как хотелось бы. Примеров этому много, стоит посмотреть последние новости на тематических сайтах, как в голову приходит мысль о том, что, порой даже крупнейшие компании уделяют ИБ недостаточно внимания. В этот раз под прицел попал EBay.
image

Для тех, кто не знаком с 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()}}

Отлично, результат получен.
image
Учитывая, что данная уязвимость является критичной, можно предположить, что будь на месте Дэвида «чёрный» хакер, веб сервер был бы у него в кармане, не исключен и доступ к базе данных основного домена.
Поскольку Дэвид не преследовал корыстных целей, он сообщил об уязвимости тех. поддержке ебэя, которая в течении короткого времени ликвидировала данную дырку. Так как автор не смотрел исходный код скрипта, появилось предположение, что уязвимый участок кода выглядит примерно так:

foreach($_GET['q'] as $data)
{
    if ($data проходит по некоторым фильтрам) {
        eval("происходит выполнение $data");
    }
}

Кроме текста есть еще и видео с демонстрацией:

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

Автор: akamajoris

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js