L-attakk huwa possibbli f'konfigurazzjonijiet nginx li fihom it-twassil lejn PHP-FPM jitwettaq billi jiġu separati partijiet tal-URL bl-użu ta '"fastcgi_split_path_info" u tiddefinixxi l-varjabbli ambjentali PATH_INFO, iżda mingħajr ma l-ewwel tiċċekkja l-eżistenza tal-fajl billi tuża l-"try_files $fastcgi_script_name" direttiva jew il-"jekk (!-f $) document_root$fastcgi_script_name)". Il-problema hija wkoll
post ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^ (. +? \. php) (/.*) $;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
}
Tista 'ssegwi r-riżoluzzjoni tal-problema f'kits ta' distribuzzjoni f'dawn il-paġni:
try_files $fastcgi_script_name =404;
Il-problema hija kkawżata minn żball meta timmanipula pointers f'fajl
Jekk id-direttiva fastcgi_split_path_info tispeċifika l-qsim tal-mogħdija tal-iskript billi tuża espressjoni regolari sensittiva għal linja ġdida (pereżempju, ħafna eżempji jissuġġerixxu li tuża "^(.+?\.php)(/.*)$"), allura attakkant jista' jiżgura li valur vojt jinkiteb fil-varjabbli ambjentali PATH_INFO. F'dan il-każ, aktar tul l-eżekuzzjoni
Billi jitlob URL ifformattjat b'ċertu mod, attakkant jista 'jikseb bidla tal-pointer path_info għall-ewwel byte tal-istruttura "_fcgi_data_seg", u l-kitba ta' żero għal dan il-byte se twassal għall-moviment tal-"char * pos" pointer għal żona tal-memorja li kienet tinsab qabel. Li jmiss imsejjaħ FCGI_PUTENV se jissostitwixxi d-data f'din il-memorja b'valur li l-attakkant jista 'jikkontrolla. Il-memorja speċifikata taħżen ukoll il-valuri ta 'varjabbli FastCGI oħra, u billi jikteb id-dejta tagħhom, attakkant jista' joħloq varjabbli fittizju PHP_VALUE u jikseb l-eżekuzzjoni tal-kodiċi tiegħu.
Sors: opennet.ru