Árásin er möguleg í nginx stillingum þar sem framsending til PHP-FPM fer fram með því að aðskilja hluta vefslóðarinnar með því að nota „fastcgi_split_path_info“ og skilgreina PATH_INFO umhverfisbreytuna, en án þess að athuga fyrst tilvist skráarinnar með því að nota „try_files $fastcgi_script_name“ tilskipuninni eða „ef (!-f $) document_root$fastcgi_script_name)“. Vandamálið er líka
staðsetning ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^ (. +? \. php) (/.*) $;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
}
Þú getur fylgst með lausn vandans í dreifingarsettum á þessum síðum:
try_files $fastcgi_script_name =404;
Vandamálið stafar af villu þegar verið er að vinna með ábendingar í skrá
Ef fastcgi_split_path_info tilskipunin tilgreinir að skipta skriftarslóðinni með nýlínuviðkvæmri reglulegri tjáningu (til dæmis, mörg dæmi benda til þess að nota "^(.+?\.php)(/.*)$"), þá gæti árásarmaður tryggt að tómt gildi er skrifað í PATH_INFO umhverfisbreytuna. Í þessu tilviki, lengra með framkvæmdina
Með því að biðja um vefslóð sem er sniðin á ákveðinn hátt getur árásarmaður náð að færa path_info bendilinn yfir á fyrsta bæti „_fcgi_data_seg“ skipulagsins og að skrifa núll í þetta bæti mun leiða til hreyfingar „char* possins“ bendil á áður staðsett minnissvæði. Næsti sem heitir FCGI_PUTENV mun skrifa yfir gögnin í þessu minni með gildi sem árásarmaðurinn getur stjórnað. Tilgreint minni geymir einnig gildi annarra FastCGI breyta og með því að skrifa gögn þeirra getur árásarmaður búið til uppdiktaða PHP_VALUE breytu og náð fram keyrslu á kóðanum sínum.
Heimild: opennet.ru