¡¾Îó²îͨ¸æ¡¿Swagger UI¿çÕ¾¾ç±¾Îó²î
Ðû²¼Ê±¼ä 2022-05-25
0x00 Îó²î¸ÅÊö
CVE ID | ·¢Ã÷ʱ¼ä | 2022-05-24 | |
Àà ÐÍ | XSS | µÈ ¼¶ | ¸ßΣ |
Ô¶³ÌʹÓà | ÊÇ | Ó°Ïì¹æÄ£ | |
¹¥»÷ÖØÆ¯ºó | µÍ | Óû§½»»¥ | |
PoC/EXP | ÊÇ | ÔÚҰʹÓà |
0x01 Îó²îÏêÇé
Swagger UI ÊÇÒ»¸öÊܽӴýµÄ¿ªÔ´¹¤¾ß£¬£¬£¬£¬£¬¿É×ÊÖúÓû§ÔÚûÓÐÈκÎʵÏÖÂß¼µÄÇéÐÎÏ¿ÉÊÓ»¯ API ×ÊÔ´²¢ÓëÖ®½»»¥¡£¡£¡£Ëü±»Öڶ๫˾ʹÓ㬣¬£¬£¬£¬°üÀ¨ PayPal¡¢Shopify¡¢Microsoft¡¢Yahoo¡¢GitHub¡¢Atlassian µÈ¡£¡£¡£
5ÔÂ16ÈÕ£¬£¬£¬£¬£¬Ñо¿Ö°Ô±Åû¶ÁËSwagger UIÖеÄÒ»¸öDOM ÐÍXSSÎó²î¡£¡£¡£ÓÉÓÚSwagger UIÖÐʹÓÃÁ˹ýʱµÄ¿âDOMpurify£¨ÓÃÓÚÊäÈëÕûÀí£©£¬£¬£¬£¬£¬µ¼ÖÂÁËÓÉÅÌÎʲÎÊý¿ØÖƵÄDOM XSSÎó²î£¬£¬£¬£¬£¬ÔÊÐíÔÚÒ³ÃæÉÏ×¢ÈëÈκÎÊôÐÔµÄHTMLÔªËØ£¨¾ç±¾±êÇ©³ýÍ⣩¡£¡£¡£
ÏÖÔÚ´ËÎó²îµÄPoCÒѹûÕæ£¬£¬£¬£¬£¬¿ÉÒÔʹÓôËÎó²îÒÔÀ©Õ¹ÇÔÈ¡Óû§µÄ CSRF token²¢½ÓÊÜÊܺ¦ÕßµÄÕÊ»§¡£¡£¡£
Ó°Ïì¹æÄ£
3.14.1<= Swagger UI < 3.38.0
0x02 Çå¾²½¨Òé
ÏÖÔÚ´ËÎó²îÒѾÐÞ¸´£¬£¬£¬£¬£¬½¨ÒéÊÜÓ°ÏìÓû§ÊµÊ±Éý¼¶¸üÐÂSwagger UIµ½×îа汾¡£¡£¡£
ÏÂÔØÁ´½Ó£º
https://github.com/swagger-api/swagger-ui/releases
×¢£ºÈôÊÇÎÞ·¨Éý¼¶Õû¸ö Swagger UI °ü£¬£¬£¬£¬£¬Óû§¿ÉÒÔÑ¡Ôñ½« DomPurify °üÉý¼¶µ½ Swagger UI ÖÐʹÓõİ汾¡£¡£¡£
0x03 ²Î¿¼Á´½Ó
https://www.vidocsecurity.com/blog/hacking-swagger-ui-from-xss-to-account-takeovers/
https://hackerone.com/reports/1072868
https://latesthackingnews.com/2022/05/24/swagger-ui-library-vulnerability-potentially-affects-multiple-services/
0x04 °æ±¾ÐÅÏ¢
°æ±¾ | ÈÕÆÚ | ÐÞ¸ÄÄÚÈÝ |
V1.0 | 2022-05-25 | Ê×´ÎÐû²¼ |
0x05 ¸½Â¼
¼øºÚµ£±£Íø¼ò½é
¼øºÚµ£±£Íø¹«Ë¾½¨ÉèÓÚ1996Ä꣬£¬£¬£¬£¬²¢ÓÚ2010Äê6ÔÂ23ÈÕÔÚÉî½»ËùÖÐС°åÕýʽ¹ÒÅÆÉÏÊУ¬£¬£¬£¬£¬ÊǺ£ÄÚ¼«¾ßʵÁ¦µÄ¡¢ÓµÓÐÍêÈ«×ÔÖ÷֪ʶ²úȨµÄÍøÂçÇå¾²²úÆ·¡¢¿ÉÐÅÇå¾²ÖÎÀíÆ½Ì¨¡¢Ç徲ЧÀÍÓë½â¾ö¼Æ»®µÄ×ÛºÏÌṩÉÌ¡£¡£¡£
¹«Ë¾×ܲ¿Î»ÓÚ±±¾©ÊÐÖйشåÈí¼þÔ°£¬£¬£¬£¬£¬ÔÚÌìϸ÷Ê¡¡¢ÊС¢×ÔÖÎÇøÉèÓзÖÖ§»ú¹¹£¬£¬£¬£¬£¬ÓµÓÐÁýÕÖÌìϵÄÇþµÀϵͳºÍÊÖÒÕÖ§³ÖÖÐÐÄ£¬£¬£¬£¬£¬²¢ÔÚ±±¾©¡¢ÉϺ£¡¢³É¶¼¡¢¹ãÖÝ¡¢³¤É³¡¢º¼ÖÝµÈ¶àµØÉèÓÐÑз¢ÖÐÐÄ¡£¡£¡£
¶àÄêÀ´£¬£¬£¬£¬£¬¼øºÚµ£±£ÍøÖÂÁ¦ÓÚÌṩ¾ßÓйú¼Ê¾ºÕùÁ¦µÄ×ÔÖ÷Á¢ÒìµÄÇå¾²²úÆ·ºÍ×î¼Ñʵ¼ùЧÀÍ£¬£¬£¬£¬£¬×ÊÖú¿Í»§ÖÜÈ«ÌáÉýÆäIT»ù´¡ÉèÊ©µÄÇå¾²ÐÔºÍÉú²úЧÄÜ£¬£¬£¬£¬£¬Îª´òÔìºÍÌáÉý¹ú¼Ê»¯µÄÃñ×åÐÅÏ¢Çå¾²¹¤ÒµÁì¾üÆ·ÅÆ¶ø²»Ð¸Æð¾¢¡£¡£¡£
¹ØÓÚ¼øºÚµ£±£Íø
¼øºÚµ£±£ÍøÇå¾²Ó¦¼±ÏìÓ¦ÖÐÐÄÖ÷ÒªÕë¶ÔÖ÷ÒªÇå¾²Îó²îµÄÔ¤¾¯¡¢¸ú×ٺͷÖÏíÈ«Çò×îеÄÍþвÇ鱨ºÍÇå¾²±¨¸æ¡£¡£¡£
¹Ø×¢ÒÔϹ«Öںţ¬£¬£¬£¬£¬»ñȡȫÇò×îÐÂÇå¾²×ÊѶ£º