¡¾Îó²îͨ¸æ¡¿Apache Log4j2¾Ü¾øÐ§ÀÍÎó²î£¨CVE-2021-45105£©

Ðû²¼Ê±¼ä 2021-12-19


0x00 Îó²î¸ÅÊö

CVE     ID

CVE-2021-45105

ʱ      ¼ä

2021-12-17

Àà      ÐÍ

Dos

µÈ      ¼¶

¸ßΣ

Ô¶³ÌʹÓÃ

ÊÇ

Ó°Ïì¹æÄ£


¹¥»÷ÖØÆ¯ºó

µÍ

¿ÉÓÃÐÔ

¸ß

Óû§½»»¥

ÎÞ

ËùÐèȨÏÞ

ÎÞ

PoC/EXP


ÔÚҰʹÓÃ


 

0x01 Îó²îÏêÇé

image.png

Apache Log4j2ÊÇÒ»¸ö¿ªÔ´µÄJavaÈÕÖ¾¿ò¼Ü£¬£¬£¬£¬£¬£¬£¬±»ÆÕ±éµØÓ¦ÓÃÔÚÖÐÐļþ¡¢¿ª·¢¿ò¼ÜÓëWebÓ¦ÓÃÖС£¡£¡£ ¡£¡£

12ÔÂ18ÈÕ£¬£¬£¬£¬£¬£¬£¬Apache Log4j¹Ù·½ÔÙ´ÎÐû²¼Ç徲ͨ¸æ£¬£¬£¬£¬£¬£¬£¬Apache Log4j2×é¼þÖб£´æÒ»¸ö¾Ü¾øÐ§ÀÍÎó²î£¨CVE-2021-45105£©£¬£¬£¬£¬£¬£¬£¬¸ÃÎó²îµÄCVSSÆÀ·ÖΪ7.5£¬£¬£¬£¬£¬£¬£¬Ó°ÏìÁËApache Log4j2 2.0-beta9 µ½2.16.0µÄËùÓа汾£¬£¬£¬£¬£¬£¬£¬ÏÖÔÚApache Log4j¹Ù·½ÒѾ­Ðû²¼ÁË2.17.0°æ±¾£¨ÊÊÓÃÓÚJava 8»ò¸ü¸ß°æ±¾£©¡£¡£¡£ ¡£¡£

ÓÉÓÚûÓбÜÃâÀ´×Ôself-referential ²éÕҵIJ»ÊÜ¿ØÖƵĵݹ飬£¬£¬£¬£¬£¬£¬µ±ÈÕÖ¾ÉèÖÃʹÓôøÓÐÉÏÏÂÎIJéÕҵķÇĬÈÏģʽ½á¹¹£¨ÀýÈ磬£¬£¬£¬£¬£¬£¬$${ctx:loginId}£©Ê±£¬£¬£¬£¬£¬£¬£¬¿ØÖÆÏß³ÌÉÏÏÂÎÄÓ³Éä (MDC) ÊäÈëÊý¾ÝµÄ¹¥»÷Õß¿ÉÒÔÖÆ×÷°üÀ¨µÝ¹é²éÕҵĶñÒâÊäÈëÊý¾Ý£¬£¬£¬£¬£¬£¬£¬µ¼Ö StackOverflowError £¬£¬£¬£¬£¬£¬£¬´Ó¶øÖÕÖ¹Àú³Ì£¬£¬£¬£¬£¬£¬£¬Ôì³É¾Ü¾øÐ§ÀÍ¡£¡£¡£ ¡£¡£

12ÔÂ17ÈÕ£¬£¬£¬£¬£¬£¬£¬Z6×ðÁú¿­Ê±Çå¾²Ó¦¼±ÏìÓ¦ÖÐÐļà²âµ½Apache Log4j¹Ù·½½«Apache Log4j2¾Ü¾øÐ§À͹¥»÷Îó²î£¨CVE-2021-45046£©µÄÎó²îÀàÐ͸ü¸ÄΪԶ³Ì´úÂëÖ´ÐÐÎó²î£¨RCE£©£¬£¬£¬£¬£¬£¬£¬²¢½«ÆäCVSSv3·ÖÊý´Ó3.7¸ü¸ÄΪ9.0¡£¡£¡£ ¡£¡£

ÓÉÓÚApache Log4j 2.15.0ÖÐÐÞ¸´CVE-2021-44228ÔÚijЩ·ÇĬÈÏÉèÖÃÖÐÊDz»ÍêÕûµÄ£¬£¬£¬£¬£¬£¬£¬µ±ÈÕÖ¾ÉèÖÃʹÓôøÓÐÉÏÏÂÎÄÅÌÎʵķÇĬÈÏģʽ½á¹¹£¨ÀýÈ磬£¬£¬£¬£¬£¬£¬$${ctx:loginId}£©Ê±£¬£¬£¬£¬£¬£¬£¬¿ÉÒÔʹÓÃJNDIÅÌÎÊģʽÊäÈë¶ñÒâÊý¾Ý£¬£¬£¬£¬£¬£¬£¬µ¼ÖÂÌØ¶¨ÇéÐÎϵÄÐÅϢй¶ºÍÔ¶³Ì´úÂëÖ´ÐС¢ÒÔ¼°ËùÓÐÇéÐÎÖеÄÍâµØ´úÂëÖ´ÐС£¡£¡£ ¡£¡£

 

Îó²îÓ°Ïì¹æÄ£

CVE-2021-4104£ºApache Log4j 1.2

CVE-2021-44228£ºApache Log4j 2.0-beta9 - 2.12.1 ¡¢Apache Log4j 2.13.0 - 2.15.0-rc1

CVE-2021-45046£ºApache Log4j 2.0-beta9 - 2.12.1¡¢Apache Log4j 2.13.0-2.15.0

CVE-2021-45105£ºApache Log4j 2.0-beta9 - 2.16.0

 

0x02 ´¦Öóͷ£½¨Òé

1.ͨÓÃÐÞ¸´¼Æ»®

ÒÑÉý¼¶µ½ Log4j 2.15.0 ºÍ2.16.0°æ±¾µÄÓû§½¨ÒéÉý¼¶µ½ Log4j 2.17.0 ÒÔ×èÖ¹Õë¶ÔCVE-2021-44228 ¡¢CVE-2021-45046ºÍCVE-2021-45105Îó²îµÄ¹¥»÷ ¡£¡£¡£ ¡£¡£

CVE-2021-4104£º

Apache Log4j 1.2Öб£´æRCEÎó²î£¨CVE-2021-4104£¬£¬£¬£¬£¬£¬£¬½öÉèÖÃΪʹÓÃJMSAppenderʱ±£´æ£¬£¬£¬£¬£¬£¬£¬·ÇĬÈÏ£©£¬£¬£¬£¬£¬£¬£¬½¨ÒéÏà¹ØÓû§Éý¼¶µ½Log4j 2µÄ×îа汾¡£¡£¡£ ¡£¡£

»º½â²½·¥£º

l  ×¢ÊÍ»òɾ³ý Log4j ÉèÖÃÖÐµÄ JMSAppender¡£¡£¡£ ¡£¡£

l  ʹÓôËÏÂÁî´Ólog4j jar°üÖÐɾ³ý JMSAppender ÀàÎļþ£º

l  zip -q -d log4j-*.jar org/apache/log4j/net/JMSAppender.class

²Î¿¼Á´½Ó£º

http://mail-archives.apache.org/mod_mbox/www-announce/202112.mbox/%3C1a5a0193-71c4-0613-ca92-f50f801543d9@apache.org%3E

 

CVE-2021-44228£º

Log4j 1.x£º²»ÊÜCVE-2021-44228Îó²îÓ°Ïì¡£¡£¡£ ¡£¡£

Log4j 2.x£º

l  ÊÜÓ°ÏìÓû§Ó¦Éý¼¶µ½Apache Log4j 2.15.0-rc2¼°ÒÔÉϰ汾£¬£¬£¬£¬£¬£¬£¬½¨ÒéÉý¼¶µ½ 2.16.0 °æ±¾£¨Java 8»ò¸ü¸ß°æ±¾£©¡£¡£¡£ ¡£¡£

l  ʹÓÃJava 7µÄÓû§Ó¦Éý¼¶µ½Apache Log4j 2.12.2°æ±¾¡£¡£¡£ ¡£¡£

l  ɾ³ý JndiLookup Àࣺzip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

²Î¿¼Á´½Ó£º

https://logging.apache.org/log4j/2.x/index.html

 

CVE-2021-45046£º

Log4j 1.x£º²»ÊÜCVE-2021-45046Îó²îÓ°Ïì¡£¡£¡£ ¡£¡£

l  Log4j 2.x£º

l  Java 8»ò¸ü¸ß°æ±¾Ó¦Éý¼¶µ½ Apache Log4j 2.16.0 °æ±¾¡£¡£¡£ ¡£¡£

l  ʹÓÃJava 7 µÄÓû§Ó¦Éý¼¶µ½Apache Log4j 2.12.2°æ±¾¡£¡£¡£ ¡£¡£

l  ɾ³ý JndiLookup Àࣺ zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

²Î¿¼Á´½Ó£º

http://mail-archives.apache.org/mod_mbox/www-announce/202112.mbox/%3C13e07d4e-ceb6-e510-be98-7d2ee8fa0a85@apache.org%3E

 

CVE-2021-45105£º

Log4j 1.x£º²»ÊÜCVE-2021-45105Îó²îÓ°Ïì¡£¡£¡£ ¡£¡£

Log4j 2.x£ºJava 8»ò¸ü¸ß°æ±¾Óû§½¨ÒéÉý¼¶µ½ 2.17.0 °æ¡£¡£¡£ ¡£¡£

»º½â²½·¥£º

l  ÔÚÈÕÖ¾ÉèÖõÄPatternLayoutÖУ¬£¬£¬£¬£¬£¬£¬ÓÃÏß³ÌÉÏÏÂÎÄÓ³Éäģʽ£¨%X£¬£¬£¬£¬£¬£¬£¬%mdc»ò%mdc£©Ìæ»»ÉÏÏÂÎIJéÕÒ£¬£¬£¬£¬£¬£¬£¬Èç${ctx:loginId}»ò$${ctx:loginId}¡£¡£¡£ ¡£¡£

l  ²»È»£¬£¬£¬£¬£¬£¬£¬ÔÚÉèÖÃÖУ¬£¬£¬£¬£¬£¬£¬É¾³ý¶ÔÉÏÏÂÎIJéÕÒµÄÒýÓ㬣¬£¬£¬£¬£¬£¬Èç ${ctx£ºloginId} »ò $${ctx£ºloginId}£¬£¬£¬£¬£¬£¬£¬ËüÃÇÔ´×ÔÓ¦ÓóÌÐòÍⲿµÄÔ´£¬£¬£¬£¬£¬£¬£¬Èç HTTP Í·»òÓû§ÊäÈë¡£¡£¡£ ¡£¡£

ÏÂÔØÁ´½Ó£º

https://logging.apache.org/log4j/2.x/download.html

×¢£ºÖ»ÓÐlog4j-core JARÎļþÊÜCVE-2021-44228¡¢CVE-2021-45046ºÍCVE-2021-45105Îó²îµÄÓ°Ïì¡£¡£¡£ ¡£¡£Ö»Ê¹ÓÃlog4j-api JARÎļþ¶ø²»Ê¹ÓÃlog4j-core JARÎļþµÄÓ¦ÓóÌÐò²»»áÊܵ½Ó°Ïì¡£¡£¡£ ¡£¡£

 

0x03 ²Î¿¼Á´½Ó

https://github.com/apache/logging-log4j2

https://logging.apache.org/log4j/2.x/security.html#CVE-2021-44228

https://logging.apache.org/log4j/2.x/security.html

 

0x04 ¸üа汾

°æ±¾

ÈÕÆÚ

ÐÞ¸ÄÄÚÈÝ

V1.0

2021-12-19

Ê×´ÎÐû²¼

 

0x05 ¹ØÓÚZ6×ðÁú¿­Ê±


Z6×ðÁú¿­Ê±¼ò½é

Z6×ðÁú¿­Ê±¹«Ë¾½¨ÉèÓÚ1996Ä꣬£¬£¬£¬£¬£¬£¬²¢ÓÚ2010Äê6ÔÂ23ÈÕÔÚÉî½»ËùÖÐС°åÕýʽ¹ÒÅÆÉÏÊУ¬£¬£¬£¬£¬£¬£¬ÊǺ£ÄÚ¼«¾ßʵÁ¦µÄ¡¢ÓµÓÐÍêÈ«×ÔÖ÷֪ʶ²úȨµÄÍøÂçÇå¾²²úÆ·¡¢¿ÉÐÅÇå¾²ÖÎÀíÆ½Ì¨¡¢Ç徲ЧÀÍÓë½â¾ö¼Æ»®µÄ×ÛºÏÌṩÉÌ¡£¡£¡£ ¡£¡£

¹«Ë¾×ܲ¿Î»ÓÚ±±¾©ÊÐÖйشåÈí¼þÔ°£¬£¬£¬£¬£¬£¬£¬ÔÚÌìϸ÷Ê¡¡¢ÊС¢×ÔÖÎÇøÉèÓзÖÖ§»ú¹¹£¬£¬£¬£¬£¬£¬£¬ÓµÓÐÁýÕÖÌìϵÄÇþµÀϵͳºÍÊÖÒÕÖ§³ÖÖÐÐÄ£¬£¬£¬£¬£¬£¬£¬²¢ÔÚ±±¾©¡¢ÉϺ£¡¢³É¶¼¡¢¹ãÖÝ¡¢³¤É³¡¢º¼ÖÝµÈ¶àµØÉèÓÐÑз¢ÖÐÐÄ¡£¡£¡£ ¡£¡£

¶àÄêÀ´£¬£¬£¬£¬£¬£¬£¬Z6×ðÁú¿­Ê±ÖÂÁ¦ÓÚÌṩ¾ßÓйú¼Ê¾ºÕùÁ¦µÄ×ÔÖ÷Á¢ÒìµÄÇå¾²²úÆ·ºÍ×î¼Ñʵ¼ùЧÀÍ£¬£¬£¬£¬£¬£¬£¬×ÊÖú¿Í»§ÖÜÈ«ÌáÉýÆäIT»ù´¡ÉèÊ©µÄÇå¾²ÐÔºÍÉú²úЧÄÜ£¬£¬£¬£¬£¬£¬£¬Îª´òÔìºÍÌáÉý¹ú¼Ê»¯µÄÃñ×åÐÅÏ¢Çå¾²¹¤ÒµÁì¾üÆ·ÅÆ¶ø²»Ð¸Æð¾¢¡£¡£¡£ ¡£¡£

 

¹ØÓÚZ6×ðÁú¿­Ê±

Z6×ðÁú¿­Ê±Çå¾²Ó¦¼±ÏìÓ¦ÖÐÐÄÖ÷ÒªÕë¶ÔÖ÷ÒªÇå¾²Îó²îµÄÔ¤¾¯¡¢¸ú×ٺͷÖÏíÈ«Çò×îеÄÍþвÇ鱨ºÍÇå¾²±¨¸æ¡£¡£¡£ ¡£¡£

¹Ø×¢ÒÔϹ«Öںţ¬£¬£¬£¬£¬£¬£¬»ñȡȫÇò×îÐÂÇå¾²×ÊѶ£º

image.png