Apache TomcatÎļþÔ̺¬·ì϶·ÖÎö

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

Ò»¡¢·ì϶¸ÅÊö


2020Äê2ÔÂ20ÈÕ£¬¹ú¶ÈÐÅÏ¢°²È«·ì϶¹²ÏíÆ½Ì¨£¨CNVD£©°ä²¼¹ØÓÚApache TomcatµÄ°²È«²¼¸æ£¬Apache TomcatÎļþÔ̺¬·ì϶£¨CNVD-2020-10487£¬¶ÔÓ¦CVE-2020-1938£©¡£Tomcat AJPºÍ̸ÓÉÓÚ´æÔÚʵÏÖȱµãµ¼ÖÂÓйزÎÊý¿É¿Ø£¬¹¥»÷ÕßÀûÓø÷ì϶¿Éͨ¹ý»ú¹ØÌض¨²ÎÊý£¬¶ÁÈ¡·þÎñÆ÷webappϵÄËÁÒâÎļþ¡£Èô·þÎñÆ÷¶Ëͬʱ´æÔÚÎļþÉÏ´«Ö°ÄÜ£¬¹¥»÷Õ߿ɽøÒ»²½ÊµÏÖÔ¶³Ì´úÂëµÄÖ´ÐС£


¶þ¡¢·ì϶·ÖÎö


ͨ¹ý¶ÔApache TomcatÔ´Âë½øÐзÖÎö£¬·¢ÏÖTomcatÔÚ´¦ÖÃajpºÍ̸ʱ´æÔÚ·ì϶£¬¿Éͨ¹ýŲÓÃrequest.setAttributeΪTomcatÉèÖÃËÁÒârequestÊôÐÔ£¬ÈçÏÂͼËùʾ£º


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


ͨ¹ý¶ÈÎö¸´ÏÖ·¢ÏÖTomcat ajpºÍ̸´æÔÚwebĿ¼ÏÂËÁÒâÎļþ¶ÁÈ¡·ì϶ÒÔ¼°JSPÎļþÔ̺¬·ì϶¡£µ±ajp URIÉèÖÃΪ·Çjspõ辶ʱ£¬Tomcat»áŲÓÃDefaultServlet´¦Ö㬴Ëʱ»áµ¼ÖÂwebĿ¼ËÁÒâÎļþ¶ÁÈ¡·ì϶¡£µ±ajp URIÉèÖÃΪjspõ辶ʱ£¬Tomcat»áŲÓÃJspServlet´¦Ö㬴Ëʱ»áµ¼ÖÂJSPÎļþÔ̺¬·ì϶¡£


2.1 WebĿ¼ËÁÒâÎļþ¶ÁÈ¡·ì϶


µ±ajp URIÉèÖÃΪ·Çjspõ辶ʱ£¬Tomcat»áŲÓÃDefaultServlet´¦ÖÃ,ÎÒÃDZØÒª½ÚÔìÈçÏÂÁ½¸öÊôÐÔ£º

javax.servlet.include.path_info

javax.servlet.include.servlet_path


ÆäÖУ¬javax.servlet.include.servlet_pathÊôÐÔΪµ±Ç°ÏîÄ¿õè¾¶¡¢javax.servlet.include.path_infoÊôÐÔΪĿ¼õè¾¶¡£¶øºó£¬Í¨¹ýDefaultServletÀàµÄgetRelativePath²½Öè½øÐÐÆ´½Ó»ñµÃpathõè¾¶¡£ÈçÏÂͼËùʾ£º


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


×îºó£¬»á½«path´øÈëµ½getResource(path)²½ÖèÖÐÔì³ÉËÁÒâÎļþ¶ÁÈ¡¡£ÈçÏÂͼËùʾ£º


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


ÀûÓø÷ì϶³É¹¦¶ÁÈ¡µ½/WEB-INF/Ŀ¼ÏÂweb.xmlÎļþ¡£


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


2.2 JspÎļþÔ̺¬·ì϶


µ±ajp URIÉèÖÃΪjspõ辶ʱ£¬Tomcat»áŲÓÃJspServletµÄservice²½Öè´¦Öã¬ÈçÏÂͼËùʾ£º


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


ͬÑù»á»ñÈ¡javax.servlet.include.path_info¡¢javax.servlet.include.servlet_pathÕâÁ½¸öÊôÐÔ£¨¾­¹ýÉÏÃæµÄ·ÖÎöÎÒÃÇÒѾ­ÖªÂ·Äܹ»Í¨¹ýajpºÍ̸½ÚÔìÕâÁ½¸öÊôÐÔ£©¡£½«ÕâÁ½¸öÊôÐÔ¶ÔÓ¦µÄֵƴ½Óµ½jspURi±äÁ¿ÖУ¬×îºó½»¸øserviceJspFile²½Öè´¦Öã¬ÈçÏÂͼËùʾ£º


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


Venus.txtÎļþ´úÂëÈçÏÂËùʾ£º


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


³É¹¦RCEÁ˾ÖÈçÏÂͼËùʾ£º


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


Èý¡¢Ó°Ïì°æ±¾


Tomcat 6

Tomcat 7

Tomcat 8

Tomcat 9


ËÄ¡¢¶ã±Ü¹æ»®


½«Tomcatµ±¼´Éý¼¶µ½9.0.31¡¢8.5.51»ò7.0.100°æ±¾½øÐн¨¸´¡£


½ûÓÃAJPºÍ̸¡£

±à×ë /conf/server.xml£¬ÕÒµ½ÈçÏÂÐУº

<Connector port="8009"protocol="AJP/1.3" redirectPort="8443" />

½«´ËÐÐ×¢½âµô£¨Ò²¿Éɾµô¸ÃÐУ©£º

<!--<Connectorport="8009" protocol="AJP/1.3"redirectPort="8443" />-->


ÅäÖÃsecretÀ´ÉèÖÃAJPºÍ̸µÄÈÏ֤ƾ֤¡£


ÀýÈ磨°ÑÎȱØÐ뽫YOUR_TOMCAT_AJP_SECRET¸ü¸ÄΪһ¸ö°²È«ÐԸߡ¢ÎÞ·¨±»µÈÏв½âµÄÖµ£©£º

<Connector port="8009"protocol="AJP/1.3" redirectPort="8443"address="YOUR_TOMCAT_IP_ADDRESS" secret="YOUR_TOMCAT_AJP_SECRET"/>