PHP Ô¶³Ì´úÂëÖ´Ðзì϶°²È«¹«¸æ
°ä²¼¹¦·ò 2019-10-24·ì϶±àºÅºÍ¼¶±ð
CVE±àºÅ£ºCVE-2019-11043£¬£¬£¬£¬£¬£¬£¬£¬Î£ÏÕ¼¶±ð£º¸ßΣ£¬£¬£¬£¬£¬£¬£¬£¬CVSS·ÖÖµ£º¹Ù·½Î´ÆÀ¶¨
Ó°Ïì°æ±¾
µ±Nginx + php-fpm µÄ·þÎñÆ÷ÓÐÈçÏÂÅäÖõÄʱ³½£¬£¬£¬£¬£¬£¬£¬£¬³ÇÊгöÏÖRCE·ì϶
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
...
}
}
µ±ÆôÓÃÁËÉÏÊö Nginx ÅäÖú󣬣¬£¬£¬£¬£¬£¬£¬ÒÔÏ PHP °æ±¾Êܱ¾´Î·ì϶ӰÏ죬£¬£¬£¬£¬£¬£¬£¬Áí±í£¬£¬£¬£¬£¬£¬£¬£¬PHP 5.6°æ±¾Ò²ÊÜ´Ë·ì϶ӰÏ죬£¬£¬£¬£¬£¬£¬£¬µ«Ä¿Ç°Ö»ÄÜCrash£¬£¬£¬£¬£¬£¬£¬£¬²»³ÉÒÔÔ¶³Ì´úÂëÖ´ÐУº
PHP 7.0 °æ±¾
PHP 7.1 °æ±¾
PHP 7.2 °æ±¾
PHP 7.3 °æ±¾
·ì϶¸ÅÊö
PHP-FPM£¨FastCGIÁ÷³ÌÖÎÀíÆ÷£©ÊÇÁíÒ»ÖÖPHP FastCGIʵÏÖ£¬£¬£¬£¬£¬£¬£¬£¬ÓµÓÐһЩÆäËûÖ°ÄÜ£¬£¬£¬£¬£¬£¬£¬£¬¿ÉÓÃÓÚ¸÷Àà¹æÄ£µÄÕ¾µã£¬£¬£¬£¬£¬£¬£¬£¬ÓÈÆäÊÇæÂÒµÄÕ¾µã¡£¡£¡£¡£¡£¡£
¶ÔÓÚPHP 5.3.3֮ǰµÄphpÀ´Ëµ£¬£¬£¬£¬£¬£¬£¬£¬PHP-FPMÊÇÒ»¸ö²¹¶¡°ü£¬£¬£¬£¬£¬£¬£¬£¬Ö¼ÔÚ½«FastCGI¹ý³ÌÖÎÀíÕûºÏ½øPHP°üÖС£¡£¡£¡£¡£¡£ÈôÊÇÄãʹÓõÄÊÇPHP 5.3.3֮ǰµÄPHPµÄ»°£¬£¬£¬£¬£¬£¬£¬£¬¾Í±ØÐ뽫Ëüpatchµ½ÄãµÄPHPÔ´´úÂëÖУ¬£¬£¬£¬£¬£¬£¬£¬ÔÚ±àÒë×°ÖÃPHPºóÄÜÁ¦¹»Ê¹Óᣡ£¡£¡£¡£¡£¶øPHP 5.3.3ÒѾ¼¯³Éphp-fpmÁË£¬£¬£¬£¬£¬£¬£¬£¬²»ÔÙÊǵÚÈý·½µÄ°üÁË¡£¡£¡£¡£¡£¡£PHP-FPMÌṩÁ˸üºÃµÄPHP¹ý³ÌÖÎÀí·½Ê½£¬£¬£¬£¬£¬£¬£¬£¬Äܹ»ÓÐЧ½ÚÔìÄÚ´æºÍ¹ý³Ì¡¢Äܹ»»¬Èó³ÁÔØPHPÅäÖᣡ£¡£¡£¡£¡£
ÔÚ9 Ô 14 ÈÕÖÁ 18 ½øÐÐµÄ Real World CTF ÖУ¬£¬£¬£¬£¬£¬£¬£¬¹ú±í°²È«×êÑÐÔ± Andrew Danau ÔÚ½â¾öһ· CTF ±êÌâʱ·¢ÏÖ£¬£¬£¬£¬£¬£¬£¬£¬ÏòÖ¸±ê·þÎñÆ÷ URL ·¢ËÍ %0a ·ûºÅʱ£¬£¬£¬£¬£¬£¬£¬£¬·þÎñ·µ»ØÒì³££¬£¬£¬£¬£¬£¬£¬£¬ÒÉËÆ´æÔÚ·ì϶¡£¡£¡£¡£¡£¡£
9 Ô 26 ÈÕ£¬£¬£¬£¬£¬£¬£¬£¬PHP ¹Ù·½°ä²¼·ì϶¹«¸æ£¬£¬£¬£¬£¬£¬£¬£¬ÆäÖÐÖ¸³ö£ºÊ¹Óà Nginx + php-fpm µÄ·þÎñÆ÷£¬£¬£¬£¬£¬£¬£¬£¬ÔÚ²¿ÃÅÅäÖÃÏ£¬£¬£¬£¬£¬£¬£¬£¬´æÔÚÔ¶³Ì´úÂëÖ´Ðзì϶¡£¡£¡£¡£¡£¡£²¢ÇÒ¸ÃÅäÖÃÒѱ»¿í·ºÊ¹Ó㬣¬£¬£¬£¬£¬£¬£¬·çÏսϴ󡣡£¡£¡£¡£¡£
Nginx ÉÏ fastcgi_split_path_info ÔÚ´¦ÖôøÓÐ %0a µÄÒªÇóʱ£¬£¬£¬£¬£¬£¬£¬£¬»áÓÉÓÚÓöµ½»»Ðзû \n µ¼Ö PATH_INFO Ϊ¿Õ¡£¡£¡£¡£¡£¡£¶ø php-fpm ÔÚ´¦Öà PATH_INFO Ϊ¿ÕµÄÇé¿öÏ£¬£¬£¬£¬£¬£¬£¬£¬´æÔÚÂ߼ȱµã¡£¡£¡£¡£¡£¡£¹¥»÷Õßͨ¹ý¾«ÐĵĻú¹ØºÍÀûÓ㬣¬£¬£¬£¬£¬£¬£¬Äܹ»µ¼ÖÂÔ¶³Ì´úÂëÖ´ÐС£¡£¡£¡£¡£¡£
·ì϶ÑéÖ¤
POC£ºhttps://github.com/neex/phuip-fpizdam¡£¡£¡£¡£¡£¡£
½¨¸´½¨Òé
PHPÒÑÓÚ10ÔÂ12ºÅ°ä²¼¸Ã·ì϶²¹¶¡£¬£¬£¬£¬£¬£¬£¬£¬Çë²Î¿¼ÒÔÏÂÁ´½Ó×°Öò¹¶¡£¡£¡£¡£¡£¡£º
https://bugs.php.net/patch-display.php?bug_id=78599&patch=0001-Fix-bug-78599-env_path_info-underflow-can-lead-to-RC.patch&revision=latest
ÓÉÓÚ·ì϶ÀûÓñØÒªNginx+php-fpm»·¾³£¬£¬£¬£¬£¬£¬£¬£¬Óû§Ä¬ÈÏ×°ÖõÄÅäÖò»ÊÜÓ°Ï죬£¬£¬£¬£¬£¬£¬£¬ÎªÈ·±£°²È«£¬£¬£¬£¬£¬£¬£¬£¬½¨ÒéÄú²é³±¾µØ Nginx ÅäÖÃÎļþ
CentOSĬÈÏĿ¼Ϊ/etc/nginx/nginx.conf
È·ÈÏÊÇ·ñ´æÔÚÉÏÊö·çÏÕÅäÖ㬣¬£¬£¬£¬£¬£¬£¬ÈôÊÇ´æÔÚ£¬£¬£¬£¬£¬£¬£¬£¬½¨ÒéÄúÕÒµ½²¢É¾³ýÈçÏÂÅäÖÃÏ
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
²Î¿¼Á´½Ó
https://github.com/neex/phuip-fpizdam


¾©¹«Íø°²±¸11010802024551ºÅ