Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
NGINX + PHP -> można zdalnie przejąć serwer (bug w PHP). Jest exploit, nie ma oficjalnego update…
Szczegóły podatności można zobaczyć w tym miejscu. Czytamy tutaj:
Such conditions can be achieved in a pretty standard Nginx configuration. If one has Nginx config like this: ``` location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass php:9000; ... } } ```
I dalej:
This issue leads to code execution.
(…)
In certain nginx + php-fpm configurations, the bug is possible to trigger from the outside
W cytowanym przez nas wątku pojawia się informacja, że bug ten był do rozwiązania w jednym z CTF, więc informacja o podatności była już dostępna „w środowisku”, stąd też dość mocne naciski autora na jak najszybsze przygotowanie łatki. Łatka została przygotowana, choć oficjalna, nowa wersja PHP ma wyjść „za chwilę”. Autor badania opublikował exploita, więc bądźcie lepiej czujni.
Update: jako wokaround można użyć następującego ustawienia w NGINX: try_files $uri =404 a w części dystrybucji Linuksa (np. Debian) taka konfiguracja jest domyślna.
–ms
Sprawdziłem czy mam w location try_file i dodałem jak by co regułkę:
if ( $request_uri ~* „%0A|%0D” ) {
return 403;
}
Podatność *nie* była wcześniej znana, została tylko znaleziona podczas wykonywania zadania CTF a autor sądzi, że inne zespoły też mogły zauważyć problem.
Tak więc, spokojnie i bez paniki ;]
A czy to nie ten 0-day ;) Znany od dawna, na podstawie którego zrobiony był CTF
https://nealpoole.com/blog/2011/04/setting-up-php-fastcgi-and-nginx-dont-trust-the-tutorials-check-your-configuration/