L'un des 'finding' trouvés par l'automatisation de Patrowl implique une vulnérabilité XSS provenant d'un paramètre accessible sans authentification. D'ailleurs, de nombreuses autres vulnérabilités XSS avaient déjà été divulguées en 2017 : https://www.cvedetails.com/vulnerability-list/vendor_id-16180/product_id-36153/year-2017/opxss-1/Agora-project-Agora-project.html
Oh, ça c'est intéréssant. Pourquoi?
Tout d'abord, les CVE publiées affectaient 4 paramètres : targetObjIdChild, action, ditObjId, msgNotif[]. Étonnamment, ces paramètres ne sont pas automatiquement collectés et examinés par les outils de sécurité (scanner...) disponibles sur le marché, mais cela changera après la lecture de cet article 😉.
La présence de quatre paramètres vulnérables en 2017 constitue une indication forte qu’il pourrait y en avoir d'autres, attendant d'être découvertes. Naturellement, vous ne liriez pas cet article si ce n’était pas le cas. Bien que le produit soit dans une version à jour et que les vulnérabilités XSS précédemment révélées soient inexploitables, l'analyse doit s'étendre à tous les paramètres nouvellement introduits.
Une fois de plus, l'automatisation de Patrowl collecte systématiquement tous les paramètres accessibles grâce à une exploration continue des applications Web. En outre, Patrowl examine toutes les variables qui sont susceptibles d'être exploitables.
Et voilà : notre variable sensible notify[] récemment identifiée a été signalée comme sensible à une vulnérabilité XSS (nécessitant juste un peu d'encodage pour l'exploiter) et voici l'exploit :
https://x.x.x.x/index.php?disconnect=1¬ify[]=%3ci%3eiii%3c%2fi%3e68617%22)%3balert(1)%2f%2f869
Avec une automatisation et une validation complètes en place, que se passe-t-il ensuite ? Les découvertes de Patrowl nous ont encouragés à creuser plus profondément et, comme toujours, cela s'est avéré payant.