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()ÒªÁ죬£¬£¬£¬£¬£¬£¬£¬Èçͼ£º
²¹¶¡ÔÚtoString()ÖÐɾ³ýÁ˶Ôextract()ÒªÁìµÄËùÓÐŲÓÃÓï¾ä£¬£¬£¬£¬£¬£¬£¬£¬ÏÂÎĽ«ÏÈÈÝextract()ÒªÁìµÄÖ÷ÒªÐÔ¡£¡£¡£´Ë´¦ÐÞ¸ÄÌØÊâÓÐȤ£¬£¬£¬£¬£¬£¬£¬£¬ÓÉÓÚÎÒÃÇ¿ÉÒÔͨ¹ýÖÖÖÖ±ê×¼JREÀà(ÀýÈçBadAttributeValueExpException)µÄreadObject()ÒªÌå»á¼ûtoString()ÈçÉÏÃæµÄ´úÂëËùʾ£¬£¬£¬£¬£¬£¬£¬£¬BadAttributeValueExpExceptionÀàµÄÐòÁл¯ÊµÀý¿ÉÒÔÓÃÓÚŲÓÃí§ÒâÀàµÄtoString()ÒªÁì¡£¡£¡£´ËÒªÁì¿ÉÓÃÓÚ»á¼ûÊܴ˲¹¶¡Ó°ÏìµÄLimitFilterÀàµÄtoString()ÒªÁì¡£¡£¡£
ÓйØÊ¹ÓÃtoString()×÷ΪÈë¿ÚµãµÄgadgetµÄʾÀý£¬£¬£¬£¬£¬£¬£¬£¬Çë°Ý¼ûysererialÏîÄ¿µÄCommonsCollections5 gadget ¡£¡£¡£
SinkµãµÄѰÕÒ
SinkµãÖ¸µÄÊǾßÓÐÖÖÖÖ¸±×÷ÓõÄJavaÒªÁìŲÓ㬣¬£¬£¬£¬£¬£¬£¬ÕâÀั×÷ÓðüÀ¨£º
-ͨ¹ýŲÓÃFileOutputStream.write()í§Ò⽨ÉèÎļþ¡£¡£¡£
-ͨ¹ýŲÓÃRuntime.exec()í§ÒâÖ´ÐÐÏÂÁî¡£¡£¡£
-ͨ¹ýŲÓÃMethod.invoke()µÄí§ÒâÒªÁìŲÓᣡ£¡£
¹ØÓÚ´ËÎó²î£¬£¬£¬£¬£¬£¬£¬£¬ÍòÀû¹ú¼Ê¹ÙÍøÖØµãÊǶÔMethod.invoke()µÄŲÓ㬣¬£¬£¬£¬£¬£¬£¬´ËÒªÁìµÄŲÓÿÉÒÔͨ¹ý·´ÉäÀ´Å²ÓÃí§ÒâJavaÒªÁì¡£¡£¡£Ïàʶ¸ÃÐÅÏ¢ºó£¬£¬£¬£¬£¬£¬£¬£¬ÎÒÃÇ¿ÉÒÔ²éÕÒËùÓб£´æextract()ÒªÁìµÄʵÀý£¬£¬£¬£¬£¬£¬£¬£¬²¢ÇÒ×îÖÕ»áŲÓÃMethod.invoke()¡£¡£¡£ÔÚCoherence¿âÖУ¬£¬£¬£¬£¬£¬£¬£¬ËƺõÖ»ÓÐÕâÑùÒ»¸ö¿ÉÐòÁл¯ÀàµÄʵÀý£¨ÊµÏÖSerializable»òExternalizable½Ó¿Ú£©¡£¡£¡£
Éó²éReflectionExtractorÀàºó£¬£¬£¬£¬£¬£¬£¬£¬ÎÒÃÇ¿ÉÒÔÈ·ÈÏÇ°ÃæµÄÍÆ²â£º
ReflectionExtractorÌṩΣÏÕµÄÔÓ£¬£¬£¬£¬£¬£¬£¬ÔÊÐí¹¥»÷ÕßŲÓÃí§ÒâÒªÁ죬£¬£¬£¬£¬£¬£¬£¬²¢ÇÒ¹¥»÷Õß¿ÉÒÔ¿ØÖÆÆäÖеÄÒªÁìºÍ²ÎÊý¡£¡£¡£
ʵÏÖRCE
ͨ³££¬£¬£¬£¬£¬£¬£¬£¬Ê¹ÓÃÔ¶³Ì´úÂëÖ´ÐÐÎó²îÐèÒª¶à¸öÒªÁìŲÓᣡ£¡£ÀýÈ磬£¬£¬£¬£¬£¬£¬£¬ÔÚÊ¢ÐеÄApache Commons CollectionsµÄgadget£¬£¬£¬£¬£¬£¬£¬£¬¹¥»÷ÕßÐèҪʹÓÃChainedTransformer½«í§ÒâÒªÁìŲÓô®½ÓÆðÀ´£¬£¬£¬£¬£¬£¬£¬£¬´Ó¶øÊµÏÖRCE¡£¡£¡£Óë´ËÀàËÆ£¬£¬£¬£¬£¬£¬£¬£¬Coherence¿âÖÐÒ²ÌṩÁËÕâÑùÒ»¸öÀà(ChainedExtractor)£¬£¬£¬£¬£¬£¬£¬£¬¿ÉÒÔÈÃÎÒÃÇ´®½Óextract()ŲÓãº
½«ÒÔÉÏÐÅÏ¢Á¬ÏµÆðÀ´£¬£¬£¬£¬£¬£¬£¬£¬ÎÒÃÇ¿ÉÒÔʹÓÃÈçÏÂŲÓÃÁ´£¬£¬£¬£¬£¬£¬£¬£¬×îÖÕʵÏÖÔ¶³Ì´úÂëÖ´ÐУ¬£¬£¬£¬£¬£¬£¬£¬ÈôÊÇÄ¿µÄÇéÐÎʹÓÃÁËCoherence¿â£¬£¬£¬£¬£¬£¬£¬£¬²¢ÇÒ¹¥»÷Õß¿ÉÒÔͶµÝ¶ñÒâÐòÁл¯¹¤¾ß£¬£¬£¬£¬£¬£¬£¬£¬ÄÇô¹¥»÷Õß¾ÍÄÜʵÏÖÔ¶³Ì´úÂëÖ´ÐС£¡£¡£
ÐÞ¸´½¨Òé
¹Ù·½ÒѾÕë¶Ô´ËÎó²îÐû²¼²¹¶¡£¬£¬£¬£¬£¬£¬£¬£¬ÇëÊÜÓ°ÏìµÄÓû§²Î¿¼ÒÔÏÂÁ´½Ó×°Öò¹¶¡¸üУº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. ÉúÑIJ¢ÖØÆôЧÀÍÆ÷¼´¿ÉÉúЧ¡£¡£¡£
²Î¿¼Á´½Ó
https://www.zerodayinitiative.com/blog/2020/3/5/cve-2020-2555-rce-through-a-deserialization-bug-in-oracles-weblogic-server


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