WordPress Core SQL×¢È멶´(CVE-2022¨C21661)·ÖÎö

Ðû²¼Ê±¼ä 2022-01-25

©¶´¸ÅÊö


WordPressÊÇÄ¿Ç°È«ÇòÁ÷ÐеÄÈý´óÄÚÈݹÜÀíϵͳ֮һ£¬ÆäºËÐÄÄ£¿é£¨Core£©·ºÆ𩶴µÄÇé¿öÏà¶Ô½ÏÉÙ¡£½üÆÚ£¬WordPressºËÐÄÄ£¿é±»Åû¶´æÔÚÒ»´¦SQL×¢È멶´(CVE-2022¨C21661)¡£Õë¶Ô¸Ã¸ßΣ©¶´£¬¶«É­Æ½Ì¨ADLabÑо¿Ô±µÚһʱ¼ä½øÐÐÁËÏêϸ·ÖÎöºÍÑéÖ¤¡£


ÊÜÓ°Ïì°æ±¾


ÊÜÓ°Ïì°æ±¾£ºWordPress < 5.8.3


©¶´·ÖÎö


ͨ¹ý±ÈÁ¦githubÉϵÄÔ´´úÂ룬¿ÉÒÔ·¢ÏÖ©¶´µÄλÖÃÊÇclean_queryº¯Êý¡£ÔÚ5.8.2¼°Ö®Ç°µÄÀÏ°æ±¾ÖУ¬¸Ãº¯ÊýµÄÒªº¦´úÂëÈçÏ¡£


´úÂëÈçÏÂ.png


ÔÚclean_queryº¯ÊýÖУ¬µ±Í¨±¨½øÀ´µÄ$queryÂú×ãÒÔÏÂÁ½¸öÌõ¼þ£º

$query['taxonomy']Ϊ¿Õ £»

$query['filed']µÄÖµ¼´ÊÇterm_taxonomy_id¡£


WordPressµÄÖ´Ðоͻá½øÈë580ÐУ¬µ÷ÓÃtransform_queryº¯Êý¡£¸ú½ø¸Ãº¯Êý£¬Âú×ã602ÐУ¬²»×öÈκδëÊ©Ö±½Óreturn£¬±£³ÖÁËtermsµÄÖµ²»Êܸıä¡£


´úÂëÈçÏÂ.png


È«¾ÖËÑË÷clean_query£¬Æä±»get_sql_for_clauseº¯Êýµ÷Óá£ÔĶÁ¸ÃÒªÁìµÄ´úÂë¿ÉÖª£¬ËüµÄ¹¦Ð§ÊÇΪsql²éѯÖеÄÌõ¼þ´´½¨×Ӿ䡣¾ßÌåÀ´Ëµ£¬ËüµÄÊÂÇéÊÇ´¦ÖýÓÊÕµ½µÄÊý¾Ý£¬½«ÕâЩÊý¾Ý×éºÏ³ÉSQL ²éѯÖеÄÌõ¼þ£¬È»ºó½«Æä·µ»Ø¸ø¸¸º¯Êý¡£ËùÒÔ£¬Èç¹û¿ÉÒÔ¿ØÖÆclean_queryµÄ·µ»ØÊý¾Ý£¬¾Í¿ÉÒÔ¿ØÖÆSQL²éѯ½øÐÐ×¢Èë¡£


ÔÚget_sql_for_clauseÖпÉÒÔÕÒµ½$terms±äÁ¿±»Æ´½Óµ½sqlÓï¾äÖС£


´úÂëÈçÏÂ.png


´Óget_sql_for_clauseÒªÁì¼ÌÐø»ØËÝ£¬µ÷ÓÃÕ»ÈçÏ£º


´úÂëÈçÏÂ.png


ÔÚget_posts()ÖпÉÒÔÕÒµ½¶ÔWQ_Tax_Query->get_sql()µÄµ÷Óá£


´úÂëÈçÏÂ.png


ͨ¹ý»ØËݵ÷ÓÃÕ»¿ÉÖª£¬Í¨¹ý¿ØÖÆWP_Query->__construct()ÖеÄÊôÐÔ£¬¾Í¿ÉÒÔÔì³Ésql×¢Èë¡£


©¶´¸´ÏÖ


ͨ¹ý·ÖÎöWordPressµÄÔ´Âë·¢ÏÖ£¬WordPressºËÐÄ´úÂëÖв»´æÔÚ¿ÉÒÔ´¥·¢¸Ã©¶´µÄµ÷Óõ㡣ΪÁËÑéÖ¤¸Ã©¶´£¬ÕâÀïʹÓÃÁËEle Custom Skin²å¼þ×ö©¶´¸´ÏÖ£¬ÕâÒ²ÊÇZDI¸ø³öµÄ´æÔÚ·¢Éú©¶´µ÷ÓõIJå¼þÑùÀý¡£


EleCustom Skin²å¼þ°²×°Á¿ÔÚ10ÍòÒÔÉÏ£¬ÇÒÆä´æÔڵĩ¶´µ÷ÓÃÊÇÎÞÐèµÇ¼µÄ¡£¸Ã²å¼þ´æÔÚÒªÁìget_document_data()£¬ÆäºËÐÄ´úÂëÈçÏ£º


´úÂëÈçÏÂ.png

´úÂëÈçÏÂ.png 

È«¾ÖËÑË÷get_document_data£¬¸ÃÒªÁì±»×¢²áµÄactionÃû×ÖÈçÏ¡£


´úÂëÈçÏÂ.png


Òò´Ë£¬¸Ã©¶´ÔÚÕâ¸ö²å¼þÊÇ´æÔÚ´¥·¢Â·¾¶µÄ¡£¿ªÆôdebug¹¦Ð§ºó£¬½á¹¹±¨Îļ´¿ÉÀÖ³É×¢Èë³öÊý¾Ý¿âuser¡£


´úÂëÈçÏÂ.png


Á÷Ðвå¼þ·ÖÎö


ΪÁË·ÖÎö¸Ã©¶´µÄʵ¼ÊÓ°Ï죬ADLabÑо¿Ô±»¹¶ÔWordPressÇ°100¸öÁ÷Ðвå¼þ½øÐÐÁË·ÖÎö£¬·¢ÏÖÆäÖÐ2¸ö²å¼þÒ²´æÔڸ鶴¡£


¿ªÆôdebug£¬½á¹¹±¨Îļ´¿ÉÀÖ³É×¢Èë³öÊý¾Ý¿âuser¡£


ÐÞ¸´·½°¸


Ä¿Ç°WordPressÒÑÐû²¼Éý¼¶²¹¶¡ÒÔÐÞ¸´Â©¶´£¬²¹¶¡»ñÈ¡Á´½ÓÈçÏ£º


https://github.com/WordPress/wordpress-develop/security/advisories/GHSA-6676-cqfm-gw84


²Î¿¼Á´½Ó£º

https://www.zerodayinitiative.com/blog/2022/1/18/cve-2021-21661-exposing-database-info-via-wordpress-sql-injection