Хакер #305. Многошаговые SQL-инъекции
Сценарий sdbsearch.cgi - часть поставки в SuSE. Уязвимость в этом сценарии позволяет
нападающим, которые способны записывать локальные файлы (даже непривилегированные локальные файлы), выполнить их с привилегиями, с которыми выполняется sdbsearch.cgi.
Sdbsearch.cgi доверяет содержанию переменной
HTTP_REFERER, переменной, которая установлена клиентом в течение HTTP запроса. Части этих данных (HTTP_REFERER) используются позже в механизме поиска (как ключевые слова или файлы). Уязвимость в сценарии происходит, если есть возможность записи локальных файлов на требуемом компьютере (например, передающийся через FTPD или любой другой метод). Уязвимость в программе позволяет
нападающим, которые обращаются к этому файлу, заставить sdbsearch выполнять произвольные команды. Это работает
потому, что sdbsearch будет использовать функцию open(), чтобы открыть "keylist.txt" файл, который, как известно, является уязвимым к стандартному нападению используя open() (только на сей раз без -T опции).
Пример очень простой:
только создайте вредный keylist.txt в /tmp каталоге и пошлите http запрос, типа такого:
GET /cgi-bin/sdbsearch.cgi?stichwort=keyword HTTP/1.0
Referer: http://example.org/../../../../../tmp
/tmp/keylist.txt может включать кое-что типа:
$ echo -e "keyword\0touch exploitable|" > /tmp/keylist.txt
Для исправления Фильтруйте базар (переменную
HTTP_REFERER).