Gitty Mistake
Flag: CYBN{D3v3l0pm3n7_r3s0urc3s_c4n_b3_us3fu1}
Challenge
Ce challenge tourne sur un docker et n'est pas disponible
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 ?