Atak la posib nan konfigirasyon nginx kote transmisyon nan PHP-FPM fèt nan divize pati URL la lè l sèvi avèk "fastcgi_split_path_info" epi defini varyab anviwònman PATH_INFO, men san yo pa premye tcheke egzistans fichye a ak "try_files $fastcgi_script_name" direktiv oswa "si (!-f $ document_root$fastcgi_script_name)". pwoblèm ki gen ladan
kote ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^ (. +? \. php) (/.*) $;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
}
Ou ka swiv depanaj la nan distribisyon nan paj sa yo:
try_files $fastcgi_script_name =404;
Pwoblèm nan koze pa yon erè pandan y ap manipile endikasyon nan dosye a
Si direktiv fastcgi_split_path_info espesifye divize chemen an nan script la lè l sèvi avèk yon ekspresyon regilye ki sansib a transmisyon karaktè newline la (pa egzanp, nan anpil egzanp li sijere yo sèvi ak "^(.+?\.php)(/. *)$"), Lè sa a, atakè a ka ekri yon valè vid nan varyab anviwònman PATH_INFO. Nan ka sa a, pi lwen nan ekzekisyon an
Lè w mande yon URL fòma nan yon sèten fason, yon atakè ka deplase konsèy la path_info nan premye byte nan estrikti "_fcgi_data_seg" la, epi ekri zewo nan byte sa a pral deplase konsèy la "char * pos" nan zòn nan memwa ki te deja ale. FCGI_PUTENV ki rele pwochen an pral kouvri done yo nan memwa sa a ak yon valè ke atakè a ka kontwole. Memwa espesifye a tou estoke valè lòt varyab FastCGI, epi lè w ekri done yo, atakè a ka kreye yon varyab PHP_VALUE egare epi reyalize egzekisyon kòd li a.
Sous: opennet.ru