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()º¯Êý¡£¡£ ¡£¡£


ÄϹ¬NGÓéÀÖ(Öйú)¹Ù·½ÍøÕ¾


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


2. Í¨¹ýÐ޸ġ°Post Meta¡±µÄÀ´ÊµÏÖ·¾¶±éÀú


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


ÄϹ¬NGÓéÀÖ(Öйú)¹Ù·½ÍøÕ¾


¸Ãº¯Êý½«Í¼ÏñµÄ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()£¬£¬Ëü½«²Ã¼ôͼÏñ¡£¡£ ¡£¡£


ÄϹ¬NGÓéÀÖ(Öйú)¹Ù·½ÍøÕ¾


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


È»ºó£¬£¬WordPressͨ¹ýwp_mkdir_p()ÔÚЧ¹û·¾¶Öн¨Éè²»±£´æµÄÈκÎĿ¼¡£¡£ ¡£¡£


×îºóʹÓÃsave()ÒªÁ콫Æä×îÖÕдÈëÎļþϵͳ¡£¡£ ¡£¡£¸Ãsave()ÒªÁ컹²î³Ø¸ø¶¨µÄÎļþÃûÖ´Ðз¾¶±éÀú¼ì²é¡£¡£ ¡£¡£


ÄϹ¬NGÓéÀÖ(Öйú)¹Ù·½ÍøÕ¾


3. ʵÏÖRCE


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


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


ÄϹ¬NGÓéÀÖ(Öйú)¹Ù·½ÍøÕ¾


ÉèÖÃ_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/