Oracle Coherence&WebLogic·´ÐòÁл¯Ô¶³Ì´úÂëÖ´Ðзì϶·çÏÕ¹«¸æ

°ä²¼¹¦·ò 2020-03-06

·ì϶±àºÅºÍ¼¶±ð


CVE±àºÅ£ºCVE-2020-2555£¬£¬£¬Î£ÏÕ¼¶±ð£ºÑÏÖØ£¬£¬£¬CVSS·ÖÖµ£º9.8


Ó°Ïì°æ±¾


Oracle Coherence 3.7.1.17

Oracle Coherence 12.1.3.0.0

Oracle Coherence 12.2.1.3.0

Oracle Coherence 12.2.1.4.0


·ì϶¸ÅÊö


½üÈÕ£¬£¬£¬Ô̺¬ÔÚ1Ô·ÝOracle¹Ø¼ü²¹¶¡·¨Ê½¸üÐÂCPU£¨Critical Patch Update£©µÄ·ì϶£¬£¬£¬Oracle Coherence·´ÐòÁл¯Ô¶³Ì´úÂëÖ´Ðзì϶£¨CVE-2020-2555£©µÄϸ½ÚÒѱ»¹«¿ª¡£


Oracle CoherenceΪOracleÈÚºÏÖÐÑë¼þÖеIJúÆ·£¬£¬£¬ÊÇÒµ½çµ±ÏȵÄÄÚ´æÊý¾ÝÍø¸ñ½â¾ö¹æ»®£¬£¬£¬ËüÄÜΪ¹«Ë¾ºÍ×éÖ¯Ìṩ¶Ô³£ÓÃÊý¾ÝµÄ¼±¾ç½Ó¼û¡£ÔÚWebLogic 12c¼°ÒÔÉϰ汾ÖÐĬÈϼ¯³Éµ½WebLogic×°ÖðüÖС£Oracle CoherenceÖеķ´ÐòÁл¯Ô¶³Ì´úÂëÖ´Ðзì϶ÔÊÐíδ¾­Éí·ÝÑéÖ¤µÄ¹¥»÷Õßͨ¹ý¾«ÐÄ»ú¹ØµÄT3ÍøÂçºÍ̸ҪÇó½øÐй¥»÷¡£³É¹¦ÀûÓø÷ì϶µÄ¹¥»÷ÕßÄܹ»ÔÚÖ¸±êÖ÷»úÉÏÖ´ÐÐËÁÒâ´úÂë¡£


·ì϶ÑéÖ¤


·ì϶ϸ½ÚÏê¼û£ºhttps://www.zerodayinitiative.com/blog/2020/3/5/cve-2020-2555-rce-through-a-deserialization-bug-in-oracles-weblogic-server¡£


ͨ¹ý²¹¶¡ÕÒµ½·ì϶ÀûÓõã


CVE-2020-2555·ì϶ÊÇÓÉÓÚ¹¥»÷ÕßÄܹ»´«Èë¿É¿Ø²ÎÊý²¢Å²ÓÃjava²½Öè¡£ÔÚJavaÖУ¬£¬£¬ÀàÖеÄreadObject()»òreadExternal()²½ÖèÄܹ»±»×Ô¶¯Å²Óá£ÕâÁ½ÖÖ²½ÖèÒÔ¼°´ÓËüÃÇÄÚ²¿¿É»ñµÃµÄÈÎºÎÆäËû²½Öè¶¼Äܹ»ÊÓΪ·´ÐòÁл¯gadgetµÄÆðÔ´¡£


CVE-2020-2555µÄ²¹¶¡Öиü¸ÄÁËLimitFilterÀàÖеÄtoString()²½Ö裬£¬£¬Èçͼ£º


OG¶«·½Ìü¡¤(Öйú´ó½)


²¹¶¡ÔÚtoString()ÖÐɾ³ýÁ˶Ôextract()²½ÖèµÄËùÓÐŲÓÃÓï¾ä£¬£¬£¬ÏÂÎĽ«½éÉÜextract()²½ÖèµÄÖØÒªÐÔ¡£´Ë´¦Åú¸Ä³ö¸ñÓÐȤ£¬£¬£¬ÓÉÓÚÎÒÃÇÄܹ»Í¨¹ý¸÷Àà³ß¶ÈJREÀà(ÀýÈçBadAttributeValueExpException)µÄreadObject()²½Öè½Ó¼ûtoString()ÈçÉÏÃæµÄ´úÂëËùʾ£¬£¬£¬BadAttributeValueExpExceptionÀàµÄÐòÁл¯ÊµÀýÄܹ»ÓÃÓÚŲÓÃËÁÒâÀàµÄtoString()²½Öè¡£´Ë²½Öè¿ÉÓÃÓÚ½Ó¼ûÊܴ˲¹¶¡Ó°ÏìµÄLimitFilterÀàµÄtoString()²½Öè¡£


OG¶«·½Ìü¡¤(Öйú´ó½)


ÓйØÊ¹ÓÃtoString()×÷ΪÈë¿ÚµãµÄgadgetµÄʾÀý£¬£¬£¬Çë°Ý¼ûysererialÏîÖ÷ÕÅCommonsCollections5 gadget ¡£


SinkµãµÄѰÕÒ


SinkµãÖ¸µÄÊÇÓµÓи÷Àั×÷ÓõÄJava²½ÖèŲÓ㬣¬£¬ÕâÀั×÷ÓÃÔ̺¬£º      


-ͨ¹ýŲÓÃFileOutputStream.write()ËÁÒâ´´½¨Îļþ¡£      

-ͨ¹ýŲÓÃRuntime.exec()ËÁÒâÖ´ÐкÅÁî¡£      

-ͨ¹ýŲÓÃMethod.invoke()µÄËÁÒâ²½ÖèŲÓá£


¶ÔÓÚ´Ë·ì϶£¬£¬£¬OG¶«·½ÌüÖØµãÊǶÔMethod.invoke()µÄŲÓ㬣¬£¬´Ë²½ÖèµÄŲÓÃÄܹ»Í¨¹ý·´ÉäÀ´Å²ÓÃËÁÒâJava²½Öè¡£Ïàʶ¸ÃÐÅÏ¢ºó£¬£¬£¬ÎÒÃÇÄܹ»²éÕÒËùÓдæÔÚextract()²½ÖèµÄʵÀý£¬£¬£¬²¢ÇÒ×îÖÕ»áŲÓÃMethod.invoke()¡£ÔÚCoherence¿âÖУ¬£¬£¬ËƺõÖ»ÓÐÕâÑùÒ»¸ö¿ÉÐòÁл¯ÀàµÄʵÀý£¨ÊµÏÖSerializable»òExternalizable½Ó¿Ú£©¡£


OG¶«·½Ìü¡¤(Öйú´ó½)


²é¿´ReflectionExtractorÀàºó£¬£¬£¬ÎÒÃÇÄܹ»È·ÈÏÇ°ÃæµÄ²Â²â£º


OG¶«·½Ìü¡¤(Öйú´ó½)


ReflectionExtractorÌṩΣÏÕµÄÔ­Ó£¬£¬ÔÊÐí¹¥»÷ÕßŲÓÃËÁÒâ²½Ö裬£¬£¬²¢ÇÒ¹¥»÷ÕßÄܹ»½ÚÖÆÆäÖеIJ½ÖèºÍ²ÎÊý¡£


ʵÏÖRCE


ͨ³££¬£¬£¬ÀûÓÃÔ¶³Ì´úÂëÖ´Ðзì϶±ØÒª¶à¸ö²½ÖèŲÓá£ÀýÈ磬£¬£¬ÔÚÊ¢ÐеÄApache Commons CollectionsµÄgadget£¬£¬£¬¹¥»÷Õß±ØÒªÊ¹ÓÃChainedTransformer½«ËÁÒâ²½ÖèŲÓô®½ÓÆðÀ´£¬£¬£¬´Ó¶øÊµÏÖRCE¡£Óë´ËÀàËÆ£¬£¬£¬Coherence¿âÖÐÒ²ÌṩÁËÕâÑùÒ»¸öÀà(ChainedExtractor)£¬£¬£¬Äܹ»ÈÃÎÒÃÇ´®½Óextract()ŲÓãº


OG¶«·½Ìü¡¤(Öйú´ó½)


½«ÒÔÉÏÐÅÏ¢½áºÏÆðÀ´£¬£¬£¬ÎÒÃÇÄܹ»Ê¹ÓÃÈçÏÂŲÓÃÁ´£¬£¬£¬×îÖÕʵÏÖÔ¶³Ì´úÂëÖ´ÐУ¬£¬£¬ÈôÊÇÖ¸±ê»·¾³Ê¹ÓÃÁËCoherence¿â£¬£¬£¬²¢ÇÒ¹¥»÷ÕßÄܹ»Í¶µÝ¶ñÒâÐòÁл¯¶ÔÏ󣬣¬£¬ÄÇô¹¥»÷Õß¾ÍÄÜʵÏÖÔ¶³Ì´úÂëÖ´ÐС£


OG¶«·½Ìü¡¤(Öйú´ó½)



ÐÞ¸´½¨Òé


¹Ù·½ÒѾ­Õë¶Ô´Ë·ì϶°ä²¼²¹¶¡£¬£¬£¬ÇëÊÜÓ°ÏìµÄÓû§²Î¿¼ÒÔÏÂÁ´½Ó×°Öò¹¶¡¸üУºhttps://www.oracle.com/security-alerts/cpujan2020.html¡£


һʱÐÞ¸´½¨Òé


ÈôÓйØÓû§ÁÙʱÎÞ·¨×°ÖÃÐÞ¸´²¹¶¡£¬£¬£¬¿Éͨ¹ý½ÚÖÆT3ºÍ̸µÄ½Ó¼ûÀ´Ò»Ê±×è¶ÏÕë¶ÔÀûÓÃT3ºÍ̸·ì϶µÄ¹¥»÷¡£


1. ½øÈëweblogic½ÚÖÆÌ¨£¬£¬£¬ÔÚbase_domainµÄÅäÖÃÒ³ÃæÖУ¬£¬£¬½øÈë¡°°²È«¡±Ñ¡Ïî¿¨Ò³Ãæ£¬£¬£¬µã»÷¡°É¸Ñ¡Æ÷¡±£¬£¬£¬½øÈëÏνÓɸѡÆ÷ÅäÖá£

2. ÔÚÏνÓɸѡÆ÷ÖÐÊäÈ룺weblogic.security.net.ConnectionFilterImpl£¬£¬£¬ÔÚÏνÓɸѡÆ÷¹æ¶¨ÖÐÊäÈë127.0.0.1 * * allow t3 t3s£¬£¬£¬0.0.0.0/0 * * deny t3 t3s(t3 ºÍt3s ºÍ̸µÄËùÓж˿ÚÖ»ÔÊÐí±¾µØ½Ó¼û)¡£

3. ±£Áô²¢ÖØÆô·þÎñÆ÷¼´¿ÉÉúЧ¡£


²Î¿¼Á´½Ó


https://www.zerodayinitiative.com/blog/2020/3/5/cve-2020-2555-rce-through-a-deserialization-bug-in-oracles-weblogic-server