OWASP WebGoat:Bypass a Path Based Access Control Scheme

From aldeid
Jump to navigation Jump to search

Bypass a Path Based Access Control Scheme

Découvrez dans cet exercice la nécessité de "brider" les répertoires auxquels l'application peut avoir accès. En effet, sur certaines applications mal conçues, il est possible d'accéder à des resources (fichier /etc/password par exemple) en remontant des niveaux dans l'URL.

Pour ce faire, utilisons WebScarab afin d'analyser les paramètres utilisés lorsque l'on consulte un document (fonction normalement implémentée dans l'application). Sélectionnez un document puis cliquez sur "View File".

Bypass path 1.png

Nous constatons que les paramètres utilisés sont les suivants :

  • File={nom du fichier}
  • SUBMIT=View File

Il suffit de remplacer directement le fichier dans WebScarab et de cliquer sur "Accept Changes". Si nous consultons l'arborescence de WebGoat, nous constatons qu'il existe un fichier main.jsp auquel nous allons tenter d'accéder :

debian:~/WebGoat-5.2/tomcat/webapps/WebGoat# ls
css       javascript    lesson_solutions  users
database  JavaSource    main.jsp          webgoat_challenge.jsp
doc       lesson_plans  META-INF          webgoat.jsp
images    lessons       sideWindow.jsp    WEB-INF

Dans la mesure où nous nous trouvons actuellement dans le répertoire "lessons", il suffit de remonter d'un niveau en utilisant comme nom de fichier "../main.jsp" :

Bypass path 2.png

Il est également possible d'utiliser l'URL directement :

http://172.16.68.129/WebGoat/attack?Screen=17&menu=200&File=../main.jsp&SUBMIT=View+File

Lorsque l'exercice est réussi, la source du fichier "../main.jsp" apparaît à l'écran :

Bypass path 3.png