We apologize for untranslated text, you can use the Google Translation button to get an automatic translation of the web page in the language of your choice.

SECURITY FAILURE Anonymous:null@unknown

Michel Remacle · on 3/4/14 at 2:26 PM

Bonjour,

J'ai de temps en temps ceci dans mes logs.

Qu'est-ce que cela signifie et comment faut-il réagir?

2014-03-04 12:35:26,735 WARN [TP-Processor4676] [Site CHU] [IntrusionDetector] [193.51.83.49, unauthenticated user] - [SECURITY FAILURE Anonymous:null@unknown -> /JCMS/IntrusionDetector] Invalid input: context=DisplayServletPath, type(JCMSDisplayServletPath)=^\/?[a-zA-Z0-9.\-\/_=]*$, input=/jcms/c_498478/calciuminterprétat
org.owasp.esapi.errors.ValidationException: DisplayServletPath: Invalid input. Please conform to regex ^\/?[a-zA-Z0-9.\-\/_=]*$ with a maximum length of 512
    at org.owasp.esapi.reference.validation.StringValidationRule.checkWhitelist(StringValidationRule.java:144)
    at org.owasp.esapi.reference.validation.StringValidationRule.checkWhitelist(StringValidationRule.java:160)
    at org.owasp.esapi.reference.validation.StringValidationRule.getValid(StringValidationRule.java:284)
    at org.owasp.esapi.reference.DefaultValidator.getValidInput(DefaultValidator.java:214)
    at org.owasp.esapi.reference.DefaultValidator.isValidInput(DefaultValidator.java:152)
    at org.owasp.esapi.reference.DefaultValidator.isValidInput(DefaultValidator.java:143)
    at com.jalios.jcms.HttpUtil.isValidDisplayServletPath(HttpUtil.java:399)
    at com.jalios.jcms.servlet.DisplayServlet.doGet(DisplayServlet.java:66)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.jalios.jcms.servlet.FriendlyURLFilter.doFilter(FriendlyURLFilter.java:115)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.jalios.jcms.servlet.GZIPFilter.doFilter(GZIPFilter.java:51)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.jalios.jcms.servlet.ChromeFrameFilter.doFilter(ChromeFrameFilter.java:58)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.jalios.jcms.servlet.InitFilter.doFilter(InitFilter.java:214)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.jalios.jcms.db.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:38)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.jalios.jcms.upload.MultipartFilter.doFilter(MultipartFilter.java:181)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:776)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:705)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:898)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
    at java.lang.Thread.run(Thread.java:662)

13 pts
Olivier Jaquemet - on 3/4/14 at 2:37 PM
Best answer

Bonjour,

Un utilisateur (ici un anonyme) a tenté d'accéder au chemin suivant sur votre site : /jcms/c_498478/calciuminterprétat

Comme vous pouvez le voir ce chemin contient un accent. Pour des raisons de sécurité seul certains caractères sont autorisés dans les URLs, les accents n'en font pas parti et cela génére donc l'avertissement que vous observez.

Sil s'agissait d'une tentative de piratage de votre site via exploitation d'une faille XSS, vous l'auriez repérér de suite en voyant la nature du chemin qui contiendrait probablement du HTML ou du javascript.

Ici il s'agit simplement :

  • soit d'une mauvaise saisie manuelle d'une adresse de la part d'un utilisateur
  • soit d'une mauvaise URL référéncé dans un autre contenu

La seule action nécessaire dans votre cas : trouver l'origine du lien erroné et le corriger.

Vous pourriez également élargir l'expression régulière utilisée pour la validation de ce chemin, en modifiant la propriété Validator.JCMSDisplayServletPath dans le fichier WEB-INF/jalios/ESAPI.properties, mais je ne vous le recommande pas.

#1

En regardant mon log je vois divers liens qui ont l'air bizarre
/jcms/c_351756/hematocrite+arxeb
/jcms/c_11118/centre-de-reference-<span class=
/jcms/r_127200/internet-accueil&
Or je n'arrive pas à retrouver ces liens sur le site. Bizarre bizarre. Je vais continuer à chercher. Merci

Michel Remacle · on 3/4/14 at 2:55 PM
#2
  • Le premier et le troisième font penser à des liens erronés.
    N'oubliez pas que ces liens peuvent également avoir été saisi sur un site externe au votre
  • Le second fait penser à un lien invalide suite à du HTML mal balancé

Consultez le Referer des requetes HTTP correspondantes, vous trouverez l'origine, si il n'y a pas de referer, ça renforce la possibilité qu'il s'agit d'une tentative d'attaque (mais clairement pas pour ces 3 cas)

Olivier Jaquemet · on 3/4/14 at 3:00 PM
#3

Merci pour l'info, je vais faire ça!

Michel Remacle · on 3/4/14 at 3:04 PM
12 pts