KindEditorÉÏ´«·ì϶°²È«¹«¸æ

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

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


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


Ó°Ïì°æ±¾


Kindeditor <= 4.1.11°æ±¾


·ì϶¸ÅÊö


KindEditor ÊÇÒ»Ì׿ªÔ´µÄÔÚÏßHTML±à×ëÆ÷¡£


½üÈÕ¼à²â·¢ÏÖ½ü°ÙÆðµ³Õþ»ú¹ØÍøÕ¾±»Ö²ÈëÉ«Ç鏿°×Ò³Ãæ£¬·ÖÎö·¢ÏÖ±»Ö²ÈëÉ«Ç鏿°×Ò³ÃæµÄÍøÕ¾¶¼Ê¹ÓÃÁËKindEditor±à×ëÆ÷×é¼þ¡£±¾´Î°²È«ÊÂÎñÖØÒªÓÉupload_json.*ÉÏ´«Ö°ÄÜÎļþÔÊÐí±»Ö±½ÓŲÓôӶøÊµÏÖÉÏ´«htm¡¢html¡¢txtµÈÎļþµ½·þÎñÆ÷£¬ÔÚÏÖʵÒѼà²âµ½µÄ°²È«ÊÂÎñ°¸ÀýÖУ¬ÉÏ´«µÄhtm¡¢htmlÎļþÖдæÔÚÔ̺¬Ìø×ªµ½Î¥·¨É«ÇéÍøÕ¾µÄ´úÂ룬¹¥»÷ÕßÖØÒªÕë¶Ôµ³Õþ»ú¹ØÍøÕ¾Ö´ÐÐÅúÁ¿ÉÏ´«£¬½¨ÒéʹÓøÃ×é¼þµÄÍøÕ¾ÏµÍ³¾¡¿ì×öºÃ°²È«¼Ó¹ÌÅäÖã¬Ô¤·À±»¶ñÒâ¹¥»÷¡£


KindeditorÉϵÄuploadbutton.htmlÓÃÓÚÎļþÉÏ´«Ö°ÄÜÒ³Ãæ£¬Ö±½ÓPOSTµ½/upload_json.*?dir=file£¬ÔÚÔÊÐíÉÏ´«µÄÎļþÀ©´óÃûÖÐÔ̺¬htm¡¢html¡¢txt£º


extTable.Add("file","doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2");


¸ÃÎļþ±¾ÊÇÑÝʾ·¨Ê½£¬ÏÖʵ²¿ÊðÖн¨Òéɾ³ý»òʹÓÃ֮ǰ×ÐϸȷÈÏÓйذ²È«ÉèÖ㬵«ºÃ¶àʹÓøÃ×é¼þµÄÍøÕ¾²¢Ã»ÓÐɾ³ýҲδ×öÓйذ²È«ÉèÖ㬴Ӷøµ¼Ö·ì϶±»ÀûÓá£


·ì϶ÑéÖ¤


POC/EXP£º


https://github.com/kindsoft/kindeditor/issues/249

$ curl -F "imgFile=@test.html" http://example.com/kindeditor/php/upload_json.php?dir=file

{"error":0,"url":"/kindeditor/php/../attached/file/20170613/20170613203236_37481.html"}


½¨¸´½¨Òé


GitHub´úÂë°æ±¾²âÊÔ£¬Kindeditor<= 4.1.11µÄ°æ±¾É϶¼´æÔÚÉÏ´«·ì϶£¬¼´Ä¬ÈÏÓÐupload_json.*Îļþ±£Áô£¬ÔÚ4.1.12°æ±¾ÖиÃÎļþÒѾ­¸ÄÃû´¦ÖÃÁË£¬¸Ä³ÉÁËupload_json.*.txtºÍfile_manager_json.*.txt£¬´Ó¶øÔÙŲÓøÃÎļþÉÏ´«Ê±½«ÌáÐѲ»³É¹¦¡£KindEditor°æ±¾µÍÓÚ4.1.7´æÔÚĿ¼±éÀú·ì϶¡£


ĿǰÕë¶Ô¸Ã·ì϶µÄ¹¥»÷»î¶¯Õý±äµÃ»îÔ¾£¬½¨Ò龡¿ì×öºÃ°²È«¼Ó¹ÌÅäÖá£


Ö±½Óɾ³ýupload_json.*ºÍfile_manager_json.*¼´¿É¡£


½¨ÒéÍøÕ¾½¨É赥Ԫʱʱ¹Ø×¢ÆäϵͳʹÓõĿò¼Ü¡¢ÒÀÀµ¿â¡¢±à×ëÆ÷µÈ×é¼þµÄ¹Ù·½°²È«¸üв¼¸æ¡£

 

²Î¿¼Á´½Ó


https://github.com/kindsoft/kindeditor/issues/249