mturk       2004/12/14 11:19:04

  Modified:    jk/native/iis jk_isapi_plugin.c
  Log:
  Fix bug #32696 caused by changing url to lowercase.
  Also move checking for web-inf on earlier stage.
  
  Revision  Changes    Path
  1.31      +30 -26    jakarta-tomcat-connectors/jk/native/iis/jk_isapi_plugin.c
  
  Index: jk_isapi_plugin.c
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/native/iis/jk_isapi_plugin.c,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- jk_isapi_plugin.c 30 Nov 2004 08:39:44 -0000      1.30
  +++ jk_isapi_plugin.c 14 Dec 2004 19:19:04 -0000      1.31
  @@ -343,17 +343,22 @@
       return JK_TRUE;
   }
   
  -static int uri_is_web_inf(char *uri)
  +static int uri_is_web_inf(const char *uri)
   {
  -    char *c = uri;
  -    while (*c) {
  -        *c = JK_TOLOWER(*c);
  -        c++;
  +    char b[INTERNET_MAX_URL_LENGTH + 1];
  +    int i = 0;
  +
  +    while (*uri) {
  +        b[i++] = JK_TOLOWER(*uri);
  +        uri++;
  +        if (i > (INTERNET_MAX_URL_LENGTH - 1))
  +            break;
       }
  -    if (strstr(uri, "web-inf")) {
  +    b[i] = '\0';
  +    if (strstr(b, "web-inf")) {
           return JK_TRUE;
       }
  -    if (strstr(uri, "meta-inf")) {
  +    if (strstr(b, "meta-inf")) {
           return JK_TRUE;
       }
   
  @@ -731,6 +736,23 @@
                          uri);
                   worker = map_uri_to_worker(uw_map, uri, logger);
               }
  +            /*
  +             * Check if somebody is feading us with his own TOMCAT data 
headers.
  +             * We reject such postings !
  +             */
  +            jk_log(logger, JK_LOG_DEBUG,
  +                   "check if [%s] is points to the web-inf directory\n",
  +                   uri);
  +
  +            if (uri_is_web_inf(uri)) {
  +                jk_log(logger, JK_LOG_EMERG,
  +                       "[%s] points to the web-inf or meta-inf 
directory.\nSomebody try to hack into the site!!!\n",
  +                       uri);
  +
  +                write_error_response(pfc, "403 Forbidden",
  +                                     "<HTML><BODY><H1>Access is 
Forbidden</H1></BODY></HTML>");
  +                return SF_STATUS_REQ_FINISHED;
  +            }
   
               if (worker) {
                   char *forwardURI;
  @@ -800,24 +822,6 @@
               else {
                   jk_log(logger, JK_LOG_DEBUG,
                          "[%s] is not a servlet url\n", uri);
  -            }
  -
  -            /*
  -             * Check if somebody is feading us with his own TOMCAT data 
headers.
  -             * We reject such postings !
  -             */
  -            jk_log(logger, JK_LOG_DEBUG,
  -                   "check if [%s] is points to the web-inf directory\n",
  -                   uri);
  -
  -            if (uri_is_web_inf(uri)) {
  -                jk_log(logger, JK_LOG_EMERG,
  -                       "[%s] points to the web-inf or meta-inf 
directory.\nSomebody try to hack into the site!!!\n",
  -                       uri);
  -
  -                write_error_response(pfc, "403 Forbidden",
  -                                     "<HTML><BODY><H1>Access is 
Forbidden</H1></BODY></HTML>");
  -                return SF_STATUS_REQ_FINISHED;
               }
           }
       }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to