Gitty Mistake

Flag: CYBN{D3v3l0pm3n7_r3s0urc3s_c4n_b3_us3fu1}

Challenge

Description


Un ami se vante de son nouveau site, prétendant qu'il est infaillible parce qu'il utilise une technologie très ancienne et et qui a fait ses preuves. Peux-tu prouver qu'il a tort en accédant à sa page secrète ?

Note : Outils d'énumération de ressources autorisés.

Solution

Avec une extension comme DotGit, on détecte facilement qu'il le dossier .git est accessible. On peut alors le télécharger et faire la commande git restore pour voir les sources.

Le serveur est en COBOL, le fichier config.cbl permet de voir les différents endpoint du site et de trouver /SuperTopSecretAdminPage.

MOVE 5                             TO nroutes.

MOVE "/"                           TO routing-pattern(1).
MOVE "INDEX-PAGE"                  TO routing-destiny(1).

MOVE "/showsum/%value1/%value2"    TO routing-pattern(2).
MOVE "SHOWSUM-PAGE"                TO routing-destiny(2).

MOVE "/showname/%value"            TO routing-pattern(3).
MOVE "SHOWNAME-PAGE"               TO routing-destiny(3).

MOVE "/SuperTopSecretAdminPage"    TO routing-pattern(4).
MOVE "ADMIN-PAGE"                  TO routing-destiny(4).

MOVE "/execute/%value"             TO routing-pattern(5).
MOVE "EXECUTION-PAGE"              TO routing-destiny(5).

Dans le fichier admin.cbl, on peut voir que si HTTP_HOST n'est pas égal à, le serveur affiche semi-admin.cow à la place de admin.cow.

PROCEDURE DIVISION USING the-values.
   MOVE "flag" TO COW-varname(1)

   ACCEPT HOST-VALUE FROM ENVIRONMENT "HTTP_HOST"

   IF HOST-VALUE NOT = "mysecretadministrationdomain.arpa"
       CALL "COWTEMPLATE" USING the-vars "semi-admin.cow"
   ELSE
       OPEN INPUT FLAG1-FILE
       READ FLAG1-FILE INTO FLAG1-VALUE
       MOVE FLAG1-VALUE TO COW-varvalue(1)
       CLOSE FLAG1-FILE

       CALL "COWTEMPLATE" USING the-vars "admin.cow"
   END-IF

   GOBACK.

Il suffit alors de faire une requête sur /SuperTopSecretAdminPage avec l'entête HTTP Host: mysecretadministrationdomain.arpa :

Dernière mise à jour

Cet article vous a-t-il été utile ?