Forum Programmation.java probleme avec tomcat + cocoon

Posté par  .
Étiquettes : aucune
0
25
mai
2005
Bonjour,
j'experimente un probleme de secu au boulot sur un serveur d'application tomcat couplé a cocoon (version respectives : 5.0.28 et 2.0.4).
La faille est une faille de cross-site scripting, elle peut etre exploitée par l'url suivante :
https://localhost/monAppli/main%25(...)[javascript malicieux]

l'appel a https://localhost/monAppli/main%25(...) me retourne une page d'erreur cocoon ( URLDecoder: Incomplete trailing escape (%) pattern ), ce qui me laisse penser que c'est cocoon qui est en cause.

j'ai fouille google tant que j'ai put, j'ai trouve plein de failles sur tomcat ou cocoon, mais rien concernant mon probleme..

du coup, je ne sais meme pas si le probleme est du a cocoon en soi ou a sa config (sitemap?)..

quelqu'un aurait il entendu parler de problemes XSS avec ce genre de config?
Un lien pour orienter mes recherches?

Merci d'avance a ceux qui pourraient m'aider dans cette optique.
  • # je me reponds a moi meme...

    Posté par  . Évalué à 1.

    ca peut en interesser.

    la faille vient du fait que la page d'erreur par defaut de cocoon affiche l'url qui a pose probleme (champ path-info de la page d'erreur), avec les balises <script>, script qui est donc execute.

    bon, en gros, le probleme venait de cocoon 2.0.4, qui leve une exception au traitement de l'url (appel a URLDecode.decode() ), et ce avant meme de rentrer dans la sitemap.

    un <map:handle-errors> ne sert donc a rien, vu que cocoon ne pourrait meme pas y passer.

    la ruse vient de la classe Notifyer, qui genere le html correspondant en dur.
    Un petite modif sur le code html qui est genere (un simple echappement des balises) et le probleme est resolu.
    Ca n'a a priori pas d'effet de bord sur le reste de cocoon, et yapuka regenerer le cocoon-2.0.4.jar et le remplacer dans le repertoire web-inf/ de la servlet.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.