PHP CGI²ÎÊý×¢Èë·ì϶£¨CVE-2024-4577£© ·ÖÎö

°ä²¼¹¦·ò 2024-06-08

Ò»¡¢·ìϼûèÊö


2024Äê6ÔÂ6ÈÕ£¬£¬ £¬£¬£¬PHP¹Ù·½°ä²¼Á˶à¸öа汾£¬£¬ £¬£¬£¬ÆäÖж¼Ô̺¬¶Ô±àºÅΪCVE-2024-4577µÄ°²È«·ì϶µÄ½¨¸´¸üС£¡£¡£¡£¡£¸Ã·ì϶ÊÇPHP CGIµÄ²ÎÊý×¢Èë·ì϶£¬£¬ £¬£¬£¬ÊǶÔCVE-2012-1823·ì϶µÄ½¨¸´Èƹý¡£¡£¡£¡£¡£


¸Ã·ì϶²úÉúµÄÔ­ÒòÊÇ£ºÔÚPHP CGIģʽÏ£¬£¬ £¬£¬£¬Î´ÕýÈ·´¦ÖÃWindowsϵͳÖеġ°Best-Fit Mapping¡±¸öÐÔ£¬£¬ £¬£¬£¬µ¼Ö¼òÌåÖÐÎÄ¡¢·±ÌåÖÐÎÄ¡¢ÈÕÎÄ»òÆäËûÊÜÓ°Ïì˵»°»·¾³½«Ä³Ð©×Ö·ûÃýÎóµÄ¼ø±ð³ÉÁË'-'¡£¡£¡£¡£¡£¹¥»÷Õß¿Éͨ¹ýÒýÈë¶ñÒâ²ÎÊýʵÏÖËÁÒâ´úÂëÖ´ÐС£¡£¡£¡£¡£


¶þ¡¢·ì϶¸´ÏÖ


ÈçÏÂͼËùʾ£º


ͼƬ1.png


Èý¡¢·ì϶·ÖÎö


CVE-2012-1823²¹¶¡µÄ½¨¸´´ëÊ©ÊÇ£¬£¬ £¬£¬£¬PHP´¦Öô«µÝ½øÀ´µÄ×Ö·û´®Ê±£¬£¬ £¬£¬£¬ÔÚÌø¹ýÇ°Ãæ¿Õȱ·ûºó£¬£¬ £¬£¬£¬ÅжϵÚһλÊÇ·ñÊÇ'-' £»£»£»£»£»£» £»£»ÈôÊÇÊÇ'-'£¬£¬ £¬£¬£¬¾Í²»ºÏºóÃæµÄ×Ö·û½øÐвÎÊý½âÎö£¬£¬ £¬£¬£¬ºÃ±È-d,-s,-cµÈ²ÎÊý¡£¡£¡£¡£¡£


PHP¹Ù·½µÄcommitÈçÏÂͼËùʾ£º


ͼƬ2.png


Äܹ»¿´µ½£¬£¬ £¬£¬£¬µ±ÔËÐÐϵͳ»·¾³ÎªWindowsʱ£¬£¬ £¬£¬£¬PHPŲÓÃWideCharToMultiByteº¯ÊýÀ´¼ÓÇ¿¶Ô¿í×Ö·ûµÄÅжÏ¡£¡£¡£¡£¡£ÈôÊÇת»»ºóµÄ×Ö·ûΪ'-'£¬£¬ £¬£¬£¬Ôò½«skip_getoptÖÃΪ1£¬£¬ £¬£¬£¬Ê¹µÃºóÐø¾Í²»»á¶Ô´«ÈëµÄ×Ö·û´®½øÐвÎÊý½âÎö¡£¡£¡£¡£¡£

ÄÇô£¬£¬ £¬£¬£¬Ê²Ã´ÑùµÄ¿í×Ö·û¿ÉÄÜת»»ºóÔì³É'-'£¬£¬ £¬£¬£¬´Ó¶øÈƹý֮ǰµÄ½¨¸´ÄØ£¿£¿£¿£¿£¿£¿ £¿


ÒÔÊÜÓ°ÏìµÄ¼òÌåÖÐÎÄ¡¢·±ÌåÖÐÎÄ¡¢ÈÕÎľÙÀý£¬£¬ £¬£¬£¬ËûÃǶÔÓ¦µÄWindows ´úÂëÒ³±ðÀëÊÇ936¡¢950¡¢932¡£¡£¡£¡£¡£ÆäÖж¼Óн«0x00adÓ³ÉäΪ0x002dµÄ²Ù×÷£¬£¬ £¬£¬£¬ÈçÏÂͼËùʾ£º


ͼƬ3.png


ͼƬ4.png


ͼƬ5.png


Òò¶øÍ¨¹ýÒýÈë0x00ad¼´¿É´úÌæ0x002d£¬£¬ £¬£¬£¬ÊµÏÖ²ÎÊý×¢ÈëÀ´Ö´ÐÐËÁÒâ´úÂë¡£¡£¡£¡£¡£


ËÄ¡¢×ܽá


CVE-2024-4577·ì϶ÀûÓõ¥Ò»£¬£¬ £¬£¬£¬·çÏÕÑϳÁ¡£¡£¡£¡£¡£³ö¸ñÔÚijЩ¶ÔApache¡¢PHP½øÐм¯³É²¿ÊðºÍÖÎÀíµÄÊ¢ÐÐÈí¼þÖУ¬£¬ £¬£¬£¬ÈôÊÇδÕýÈ·ÅäÖÃphp cgi£¬£¬ £¬£¬£¬¼´¿ÉÔì³ÉÑϳÁ·çÏÕ¡£¡£¡£¡£¡£



²Î¿¼Á´½Ó£º


PHP¹Ù·½commit

https://github.com/php/php-src/commit/4dd9a36c165974c84c4217aa41849b70a9fc19c9

DEVCOREµÄ·ì϶´«µÝ

https://devco.re/blog/2024/06/06/security-alert-cve-2024-4577-php-cgi-argument-injection-vulnerability/