"fastcgi_split_path_info" ಅನ್ನು ಬಳಸಿಕೊಂಡು URL ನ ಭಾಗಗಳನ್ನು ಬೇರ್ಪಡಿಸುವ ಮೂಲಕ ಮತ್ತು PATH_INFO ಪರಿಸರ ವೇರಿಯೇಬಲ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಮೂಲಕ PHP-FPM ಗೆ ಫಾರ್ವರ್ಡ್ ಮಾಡುವ ಮೂಲಕ nginx ಕಾನ್ಫಿಗರೇಶನ್ಗಳಲ್ಲಿ ದಾಳಿ ಸಾಧ್ಯ, ಆದರೆ ಮೊದಲು "try_files $fastcgi_script" ಅನ್ನು ಬಳಸಿಕೊಂಡು ಫೈಲ್ ಅಸ್ತಿತ್ವವನ್ನು ಪರಿಶೀಲಿಸದೆ. ನಿರ್ದೇಶನ ಅಥವಾ "if (!-f $) document_root$fastcgi_script_name)". ಸಮಸ್ಯೆಯೂ ಆಗಿದೆ
ಸ್ಥಳ ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^ (. +? \. php) (/.*) $;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
}
ಈ ಪುಟಗಳಲ್ಲಿ ವಿತರಣಾ ಕಿಟ್ಗಳಲ್ಲಿ ಸಮಸ್ಯೆಯ ಪರಿಹಾರವನ್ನು ನೀವು ಟ್ರ್ಯಾಕ್ ಮಾಡಬಹುದು:
try_files $fastcgi_script_name =404;
ಫೈಲ್ನಲ್ಲಿ ಪಾಯಿಂಟರ್ಗಳನ್ನು ಮ್ಯಾನಿಪುಲೇಟ್ ಮಾಡುವಾಗ ದೋಷದಿಂದ ಸಮಸ್ಯೆ ಉಂಟಾಗುತ್ತದೆ
fastcgi_split_path_info ನಿರ್ದೇಶನವು ಹೊಸ ಲೈನ್-ಸೆನ್ಸಿಟಿವ್ ರೆಗ್ಯುಲರ್ ಎಕ್ಸ್ಪ್ರೆಶನ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸ್ಕ್ರಿಪ್ಟ್ ಮಾರ್ಗವನ್ನು ವಿಭಜಿಸುವುದನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ (ಉದಾಹರಣೆಗೆ, ಅನೇಕ ಉದಾಹರಣೆಗಳು "^(.+?\.php)(/.*)$" ಅನ್ನು ಬಳಸುವುದನ್ನು ಸೂಚಿಸುತ್ತವೆ), ಆಗ ಆಕ್ರಮಣಕಾರರು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬಹುದು ಖಾಲಿ ಮೌಲ್ಯವನ್ನು PATH_INFO ಪರಿಸರ ವೇರಿಯಬಲ್ಗೆ ಬರೆಯಲಾಗಿದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಮರಣದಂಡನೆಯ ಉದ್ದಕ್ಕೂ ಮತ್ತಷ್ಟು
ನಿರ್ದಿಷ್ಟ ರೀತಿಯಲ್ಲಿ ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲಾದ URL ಅನ್ನು ವಿನಂತಿಸುವ ಮೂಲಕ, ಆಕ್ರಮಣಕಾರರು “_fcgi_data_seg” ರಚನೆಯ ಮೊದಲ ಬೈಟ್ಗೆ path_info ಪಾಯಿಂಟರ್ನ ಶಿಫ್ಟ್ ಅನ್ನು ಸಾಧಿಸಬಹುದು ಮತ್ತು ಈ ಬೈಟ್ಗೆ ಶೂನ್ಯವನ್ನು ಬರೆಯುವುದು “char* pos” ನ ಚಲನೆಗೆ ಕಾರಣವಾಗುತ್ತದೆ. ಹಿಂದೆ ಇರುವ ಮೆಮೊರಿ ಪ್ರದೇಶಕ್ಕೆ ಪಾಯಿಂಟರ್. FCGI_PUTENV ಎಂಬ ಮುಂದಿನದು ಈ ಮೆಮೊರಿಯಲ್ಲಿನ ಡೇಟಾವನ್ನು ಆಕ್ರಮಣಕಾರರು ನಿಯಂತ್ರಿಸಬಹುದಾದ ಮೌಲ್ಯದೊಂದಿಗೆ ಓವರ್ರೈಟ್ ಮಾಡುತ್ತದೆ. ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಮೆಮೊರಿಯು ಇತರ FastCGI ವೇರಿಯೇಬಲ್ಗಳ ಮೌಲ್ಯಗಳನ್ನು ಸಹ ಸಂಗ್ರಹಿಸುತ್ತದೆ ಮತ್ತು ಅವುಗಳ ಡೇಟಾವನ್ನು ಬರೆಯುವ ಮೂಲಕ ಆಕ್ರಮಣಕಾರರು ಕಾಲ್ಪನಿಕ PHP_VALUE ವೇರಿಯೇಬಲ್ ಅನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು ಅವರ ಕೋಡ್ನ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಸಾಧಿಸಬಹುದು.
ಮೂಲ: opennet.ru