Contournement du filtre SSRF

May 07 2023
Bonjour, je m'appelle W1C3 et aujourd'hui, je vais vous expliquer comment obtenir un accès arbitraire en lecture de fichiers via Server-Side Request Forgery (SSRF) en contournant le filtre. Ce challenge a été développé pour le WaniCTF.

Bonjour, je m'appelle W1C3 et aujourd'hui, je vais vous expliquer comment obtenir un accès arbitraire en lecture de fichiers via Server-Side Request Forgery (SSRF) en contournant le filtre. Ce challenge a été développé pour le WaniCTF .

Nom

Capture d'écran

Description

Une application qui prend des captures d'écran de vos sites Web préférés.

Procédure pas à pas

En accédant au site Web, on peut observer qu'il s'agit d'une page très simple. Sa seule fonctionnalité est de recevoir une URL, d'accéder à l'URL à l'aide d'un navigateur Web et de prendre une capture d'écran.

Application de capture d'écran simple

Dans ce défi, comme le code source est fourni, nous pouvons voir qu'il effectue une vérification que nous devons contourner, car " HTTP " doit être inclus dans notre requête et " FILE " ne peut pas être inclus.

Examen du code du serveur

Pour vérifier cela, nous tenterons de lire le fichier /etc/passwd , mais sans succès.

Essayer d'identifier le SSRF

Comme nous l'avons mentionné précédemment, le filtre que nous devons contourner doit soit contenir la chaîne " http ", soit ne pas inclure la chaîne " fichier ".

Identification de la SSRF

Maintenant que nous sommes à l'étape précédente, sachant que SSRF existe et comprenant le filtre que nous devons contourner, nous allons ajouter « File:// » au début et « ../../../../flag. txt » ou « ../../../../etc/passwd » jusqu'à la fin. Avec cela, nous pourrons lire le fichier "flag.txt" pour compléter notre défi.

REMARQUE : Le fichier doit contenir au moins une lettre majuscule pour contourner le filtre

Lecture de fichier arbitraire

Pour vous faciliter la tâche, nous supprimerons certaines données de la demande. Dans ce cas, notre charge utile ressemblerait à ceci :

File:///http/../../flag.txt

Conclusion

Dans ce challenge, nous avons démontré comment contourner un simple filtre qui tentait d'empêcher SSRF en interdisant le protocole « file » et en exigeant le protocole « http ». En construisant soigneusement notre requête avec une majuscule dans le paramètre « file » et en utilisant le protocole « File:// », nous avons pu lire des fichiers arbitraires sur le serveur.

Merci de lire cet article. Restez à l'écoute pour plus de messages à venir sur le blog, et n'hésitez pas à me suivre sur les réseaux sociaux pour les mises à jour. Veuillez également noter que mon GitHub personnel publiera des articles en espagnol. Au revoir!

Github : J-W1C3

Twitter: Josewice7

Télégramme : W1C3Posts

Rejoignez ma chaîne Telegram pour rester informé de la publication de nouveaux messages.