Атака через пробіл в імені файла на nginx

20:02 23.11.2013

Раніше я писав про три обхідних методи виконання коду через аплоадери. Які дозволяють обходити захисні механізми веб додатків і проводити Code Execution атаки.

Коли файл містить дозволене розширення (не скриптове), але при доступі до нього виконується код скрипта. Це атака “через ;” в імені файла та атака “через .asp” в імені папки на IIS та атака через подвійні розширення в Apache. А зараз розповім про новий метод атаки, що працює на nginx.

Нещодавно була оприлюднена уразливість в nginx (CVE-2013-4547), яка вже виправлена у версіях nginx 1.4.4 і 1.5.7. Уразливість призводить до розкриття інформації та до виконання довільного коду (якщо завантажити файл з пробілом в імені через аплоадер). До цієї атаки вразливі версії nginx 0.8.41 - 1.5.6.

Code Execution атака на nginx:

1. Завантажити через аплоадер файл з пробілом в кінці "file ". Наприклад, php-скрипт.

2. Зробити запит до цього файла на сайті наступним чином: "http://site/file \0.php". Це призведе до виконання php-скрипта.

Атака спрацює лише при відповідних налаштуваннях веб сервера. Зокрема для зв’язки nginx + php5-fpm значення fastcgi_param PATH_TRANSLATED повинно бути виду $document_root/$fastcgi_script_name та в конфігурації fpm pool значення security.limit_extensions повинно пропускати будь-які файли (що відмінно від значення по замовчуванню).


Одна відповідь на “Атака через пробіл в імені файла на nginx”

  1. MustLive каже:

    You can read this article on English in The Web Security Mailing List: Attack via space in filename on nginx.

Leave a Reply

You must be logged in to post a comment.