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ÊôÐÔ£¬ÈçÏÂͼËùʾ£º


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


ͨ¹ý·ÖÎö¸´ÏÖ·¢ÏÖTomcat ajpЭÒé´æÔÚwebĿ¼ÏÂÈÎÒâÎļþ¶Áȡ©¶´ÒÔ¼°JSPÎļþ°üÂÞ©¶´¡£µ±ajp URIÉèÖÃΪ·Çjsp·¾¶Ê±£¬Tomcat»áµ÷ÓÃDefaultServlet´¦Ö㬴Ëʱ»áµ¼ÖÂwebĿ¼ÈÎÒâÎļþ¶Áȡ©¶´¡£µ±ajp URIÉèÖÃΪjsp·¾¶Ê±£¬Tomcat»áµ÷ÓÃJspServlet´¦Ö㬴Ëʱ»áµ¼ÖÂJSPÎļþ°üÂÞ©¶´¡£


2.1 WebĿ¼ÈÎÒâÎļþ¶Áȡ©¶´


µ±ajp URIÉèÖÃΪ·Çjsp·¾¶Ê±£¬Tomcat»áµ÷ÓÃDefaultServlet´¦ÖÃ,ÎÒÃÇÐèÒª¿ØÖÆÈçÏÂÁ½¸öÊôÐÔ£º

javax.servlet.include.path_info

javax.servlet.include.servlet_path


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


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


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


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


ÀûÓø鶴ÀֳɶÁÈ¡µ½/WEB-INF/Ŀ¼ÏÂweb.xmlÎļþ¡£


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


2.2 JspÎļþ°üÂÞ©¶´


µ±ajp URIÉèÖÃΪjsp·¾¶Ê±£¬Tomcat»áµ÷ÓÃJspServletµÄserviceÒªÁì´¦Öã¬ÈçÏÂͼËùʾ£º


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


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


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


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


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


ÀÖ³ÉRCE½á¹ûÈçÏÂͼËùʾ£º


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


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


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"/>