WordPress 5.0.0 Ô¶³Ì´úÂëÖ´Ðзì϶°²È«¹«¸æ

°ä²¼¹¦·ò 2019-02-21

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


CVE±àºÅ£ºÔÝÎÞ£¬Î£ÏÕ¼¶±ð£º¸ßΣ£¬ CVSS·ÖÖµ£º¹Ù·½Î´ÆÀ¶¨


Ó°ÏìÁìÓò


ÊÜÓ°Ïì°æ±¾£º 

WordPress 5.0.0


·ì϶¸ÅÊö


2ÔÂ19ÈÕ£¬¹ú±í°²È«ÈËÔ±ÔÚ²©¿ÍÖй«¿ªÁËWordPressÖдæÔÚµÄÒ»¸öÔ¶³Ì´úÂëÖ´Ðзì϶£¬¸Ã·ì϶ÒѾ­ÔÚWordPress coreÖаµ²ØÁË6Äêδ±»·¢ÏÖ¡£


¸Ã·ì϶ÐÔÖÊÉÏÊÇÓÉÒ»¸öĿ¼±éÀú·ì϶ÒÔ¼°Ò»¸ö±¾µØÎļþÔ̺¬·ì϶×éºÏÀûÓöøµ¼ÖµÄÒ»¸öÔ¶³Ì´úÂëÖ´Ðзì϶¡£


µ±¹¥»÷Õß»ñÈ¡µ½WordPressÕ¾µãauthor¼°ÒÔÉÏȨÏÞµÄÕË»§ºó£¬¼´¿ÉÀûÓø÷ì϶Ôڵײã·þÎñÆ÷ÉÏÖ´ÐÐËÁÒâPHP´úÂ룬´Ó¶øÊµÏÖÆëȫԶ³ÌÊÕÊÜ·þÎñÆ÷µÄÖ÷ÕÅ¡£


ÒòWordPress 4.9.9ºÍ5.0.1ÆäËû°²È«²¹¶¡ËùÖ£¬ÎļþÔ̺¬·ì϶½öÓÐ5.0.0µ¥Ò»°æ±¾¿ÉÀûÓ㬶øõè¾¶±éÀú·ì϶ÈÔ¿ÉʹÓÃÇÒµ±Ç°ÈÔδ´ò²¹¶¡¡£ÈκÎ×°ÖÃÁ˴˲å¼þµÄWordPressÕ¾µã³ÇÊÐÃýÎ󵨴¦ÖÃPost MetaÌõ¿î£¬ÕâÑùÒÀÈ»Äܹ»½øÐÐÀûÓá£


ƾ¾ÝWordPressµÄÏÂÔØÒ³Ãæ£¬³¬¹ý33%µÄÍøÕ¾Ê¹ÓøÃÈí¼þ¡£Ë¼¿¼µ½²å¼þ¿ÉÄÜ»á³ÁÐÂÒýÈëÕâ¸öÎÊÌ⣬²¢Ë¼¿¼µ½¹ýÆÚµÄÕ¾µãµÈ³É·Ö£¬ÊÜÓ°ÏìµÄ×°ÖÃÊýÁ¿ÒÀÈ»ÊÇÊý°ÙÍò¡£


·ì϶ϸ½Ú


1. ·ì϶Ö÷ÌâµÀÀí-¡°Post Meta¡±µÄÌõ¿îÄܹ»±»¸²¸Ç


ÔÚWordPress 4.9.9 Ö®Ç°µÄ°æ±¾ÒÔ¼°WordPress  5.0.1֮ǰµÄ°æ±¾£¬WordPressÎļþÉÏ´«²úÉúµÄPost MetaµÄËùÓÐÌõ¿î½Ô¿É±»Åú¸Ä£¬²¢ÇÒËûÃǵÄvalueÖµÄܹ»ËÁÒâ³ÁÖᣵ±Ò»ÕÅͼƬ±»¸üеÄʱ³½£¬½«»áŲÓÃ/wp-admin/include/post.phpÖÐedit_post()º¯Êý¡£


GA»Æ½ð¼×¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


ÎÒÃÇÄܹ»Í¨¹ýedit_post()º¯ÊýÏòÊý¾Ý¿â×¢ÈëËÁÒâPost MetaÌõ¿î¡£ÓÉÓÚϵͳδ¶ÔPost MetaÌõ¿î±êÅú¸Ä½øÐмì²â£¬Òò¶ø¹¥»÷ÕßÄܹ»¸üÐÂ_wp_attached_fileÔªÌõ¿î²¢½«ÆäÉèÖÃΪÈκÎÖµ¡£Õâ²»»á³Á¶¨ÃûÈκÎÎļþ£¬ËüÖ»»á¸ü¸ÄWordPressÔÚ±à×ëͼÏñʱҪ²éÕÒµÄÎļþ¡£ÕâÒ»µã½«µ¼ÖÂÉÔºóµÄõè¾¶±éÀú¡£


2. Í¨¹ýÅú¸Ä¡°Post Meta¡±µÄÀ´ÊµÏÖõè¾¶±éÀú


õè¾¶±éÀú²úÉúÔÚÓû§²Ã¼ôͼÏñʱŲÓõÄwp_crop_image()º¯ÊýÖС£


GA»Æ½ð¼×¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


¸Ãº¯Êý½«Í¼ÏñµÄID´øµ½crop£¨$attachment_id£©ÖУ¬²¢´ÓÊý¾Ý¿âÖлñÈ¡ÏàÓ¦µÄPost MetaÌõ¿î_wp_attached_fileµÄÖµ¡£ÓÉÓÚ֮ǰedit_post()´æÔÚµÄȱµã£¬$src_fileÄܹ»ÉèÖÃΪÈκÎÖµ¡£ÓÉÓÚȱµãedit_post()£¬$src_fileÄܹ»ÉèÖÃΪÈκÎÖµ¡£


±ÉÈËÒ»²½ÖУ¬WordPress±ØÐëÈ·±£Í¼ÏñÏÖʵ´æÔÚ²¢¼ÓÔØËü¡£WordPressÓÐÁ½ÖÖ¼ÓÔØ¸ø¶¨Í¼ÏñµÄ²½Öè¡£µÚÒ»ÖÖÊǵ¥Ò»µØ²éÕÒĿ¼ÖÐPost MetaÌõ¿îÖÐ_wp_attached_fileÌṩµÄÎļþÃûwp-content/uploads¡£


ÈôÊǸò½Öèʧ°Ü£¬WordPress½«³¢ÊÔ´ÓÆä×Ô¼ºµÄ·þÎñÆ÷ÏÂÔØÍ¼Ïñ×÷Ϊºó±¸¡£Îª´Ë£¬Ëü½«ÌìÉúÒ»¸öÏÂÔØURL£¬¸ÃURLÔ̺¬wp-content/uploadsĿ¼µÄURL ºÍ´æ´¢ÔÚPost MetaÌõ¿îÖÐ_wp_attached_fileµÄÎļþÃû¡£


¾ÙÒ»¸ö¾ßÌåµÄÀý×Ó£ºÈôÊÇ´æ´¢ÔÚPost MetaÌõ¿îÖÐ_wp_attached_file µÄÖµÊÇevil.jpg£¬ÄÇôWordPress½«Ê×Ïȳ¢ÊԲ鳭Îļþwp-content/uploads/evil.jpgÊÇ·ñ´æÔÚ¡£


ÈôÊÇûÓУ¬Ëü»á³¢ÊÔ´ÓÒÔÏÂURLÏÂÔØÎļþ£º


https://targetserver.com/wp-content/uploads/evil.jpg


³¢ÊÔÏÂÔØÍ¼Ïñ¶ø²»ÊÇÔÚ±¾µØ²éÕÒͼÏñµÄÔ­ÒòÊÇijЩ²å¼þÔÚ½Ó¼ûURLʱ»á¶¯Ì¬ÌìÉúͼÏñ¡£


WordPress½«µ¥Ò»µØ½«ÉÏ´«Ä¿Â¼ºÍURLÓë$src_fileµÄÓû§ÊäÈëÏÎ½ÓÆðÀ´¡£Ò»µ©WordPress³É¹¦¼ÓÔØÁËÓÐЧͼÏñwp_get_image_editor()£¬Ëü½«²Ã¼ôͼÏñ¡£


GA»Æ½ð¼×¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


²Ã¼ôʵÏÖºó£¬WordPress»á½«²Ã¼ôºóµÄͼÏñ±£Áô»ØÎļþϵͳ£¨ÎÞÂÛÊÇ·ñÏÂÔØ£©¡£ÌìÉúµÄÎļþÃû½«ÊÇ$src_fileÓÉget_post_meta()¹¥»÷Õß½ÚÔìµÄ·µ»ØÎļþ¡£¶ÔÁ˾ÖÎļþÃû×Ö·û´®½øÐеÄΨһÅú¸ÄÊÇÔÚÎļþµÄ¸ù»ùÃû³Æ¼Óǰ׺cropped-¡£ÎªÁË×ñѭʾÀýevil.jpg£¬ÌìÉúµÄÎļþÃû½«ÊÇcropped-evil.jpg¡£


¶øºó£¬WordPressͨ¹ýwp_mkdir_p()ÔÚÁ˾Öõè¾¶Öд´½¨²»´æÔÚµÄÈκÎĿ¼¡£


×îºóʹÓÃsave()²½Ö轫Æä×îÖÕдÈëÎļþϵͳ¡£¸Ãsave()²½Ö軹²»ºÏ¸ø¶¨µÄÎļþÃûÖ´ÐÐõè¾¶±éÀú²é³­¡£


GA»Æ½ð¼×¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


3. ʵÏÖRCE


×ÛÉÏ£¬Äܹ»È·¶¨ÄĸöÎļþ±»¼ÓÔØµ½Í¼Ïñ±à×ëÆ÷ÖÐ(Òòδ½øÐд¦ÖÃ)¡£µ«ÊÇ£¬ÈôÊÇÎļþ²»ÊÇÓÐЧͼÏñ£¬Í¼Ïñ±à×ëÆ÷½«»áÅ׳öÒì³£¡£¹Ê¶ø£¬Ö»ÄÜÔÚÉÏ´«Ä¿Â¼Ö®±í²Ã¼ôͼÏñ¡£


ÄÇôÈôÊÇδÕÒµ½ËùÐèͼÏñ£¬WordPress»á³¢ÊÔÏÂÔØ£¬Õâ¾Íµ¼ÖÂÁËRCE¡£


GA»Æ½ð¼×¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


ÉèÖÃ_wp_attached_fileΪevil.jpg?shell.php£¬Õ⽫µ¼Ö¶ÔÒÔÏÂURL·¢³öHTTPÒªÇó£ºhttps://targetserver.com/wp-content/uploads/evil.jpg?shell.php¡£´ËÒªÇ󽫷µ»ØÓÐЧµÄͼÏñÎļþ£¬ÓÉÓÚ?Ôڴ˸ߵÍÎÄÖкöÂÔÁËËùÓÐÄÚÈÝ¡£ÌìÉúµÄÎļþÃû½«ÊÇevil.jpg?shell.php¡£


Ëä˵save()ͼÏñ±à×ëÆ÷µÄ²½Öè²»»á²é³­ÊÇ·ñ´æÔÚõè¾¶±éÀú£¬µ«Ëü»á½«ÔÚ¼ÓÔØµÄͼÏñµÄmimeÀàÐ͵ÄÀ©´óÃû¸½¼Óµ½ÌìÉúµÄÎļþÃûÖС£ÔÚÕâÖÖÇé¿öÏ£¬Á˾ÖÎļþÃû½«ÊÇevil.jpg?cropped-shell.php.jpg¡£ÕâʹµÃд´½¨µÄÎļþÔÙ´ÎÎÞº¦¡£


µ«ÊÇ£¬ÈÔÄܹ»Í¨¹ýʹÓÃÖîÈçµÄPayload½«ÌìÉúµÄͼÏñÖ²ÈëÈκÎĿ¼evil.jpg?/../../evil.jpg¡£


4. ÀûÓÃÖ÷±êÌâ´ÎÖеÄõè¾¶±éÀú-±¾µØÎļþÔ̺¬


ƾ¾Ý֮ǰµÄõè¾¶±éÀú£¬ÎÒÃÇÄܹ»ÀûÓÃÖ÷ÌâϵͳµÄ±¾µØÎļþÔ̺¬À´×îÖÕʵÏÖÔ¶³Ì´úÂëÖ´ÐС£Ã¿¸öWordPressÖ÷ÌâÖ»ÊÇÒ»¸öλÓÚWordPressĿ¼ÖеÄwp-content/themesĿ¼£¬Îª·ÖÆçµÄ°¸ÀýÌṩģ°åÎļþ¡£ÀýÈ磬ÈôÊDz©¿ÍµÄ½Ó¼ûÕßÏëÒª²é¿´²©¿ÍÌû×Ó£¬ÔòWordPress»áÔÚµ±Ç°»î¶¯Ö÷ÌâµÄĿ¼ÖвéÕÒÒ»¸öpost.phpÎļþ¡£ÈôÊÇËüÕÒµ½Á˶ÔӦģ°å£¬Äǽ«Ô̺¬¸ÃÄ£°å¡£


ΪÁËÔö³¤¶î±íµÄ×Ô½ç˵²ã£¬¿ÉÒÔΪijЩÌû×ÓÑ¡Ôñ×Ô½ç˵ģ°å¡£Îª´Ë£¬Óû§±ØÐ뽫Êý¾Ý¿âÖеÄPost MetaÌõ¿î±ê_wp_page_templateÉèÖÃΪ×Ô½ç˵ÎļþÃû¡£ÕâÀïΨһµÄÏÞ¶ÈÊÇÒªÔ̺¬µÄÎļþ±ØÐëλÓÚµ±Ç°»î¶¯Ö÷ÌâµÄĿ¼ÖС£



ͨ³££¬Óû§¶ÔÓÚµ±Ç°»î¶¯Ö÷ÌâµÄĿ¼ÎÞ·¨½Ó¼û´ËĿ¼£¬Ò²ÎÞ·¨ÉÏ´«¸ÃÎļþ¡£µ«ÊÇ£¬Í¨¹ýʹÓÃÉÏÊöõè¾¶±éÀú£¬¾ÍÄܹ»½«¶ñÒâÔì×÷µÄͼÏñÖ²È뵱ǰʹÓõÄÖ÷ÌâµÄĿ¼ÖС£¶øºó¹¥»÷ÕßÄܹ»´´½¨Ò»¸öÐÂÌû×ÓҲʹÓÃÉÏÊöµÄõè¾¶±éÀúÃýÎó£¬×îÖÕ¿ÉÄܸüÐÂPost MetaÌõ¿îÖеÄ_wp_attached_file£¬ÒÔ±ãÄܹ»Ô̺¬¸ÃͼƬ¡£Í¨¹ý½«PHP´úÂë×¢ÈëͼƬ£¬¹¥»÷Õß¾ÍÄܹ»Ô¶³ÌÖ´ÐÐËÁÒâ´úÂë¡£


½¨¸´½¨Òé


Wordpress¹Ù·½ÒѾ­ÔÚ WordPress 5.0.1¸üÐÂÁ˰²È«²¹¶¡£¬Óû§Äܹ»¸üÐÂÖÁWordPress 5.0.1Ö®ºóµÄ°æ±¾£ºhttps://wordpress.org/download/¡£


²Î¿¼Á´½Ó


https://blog.ripstech.com/2019/wordpress-image-remote-code-execution/