Rédaction de l'Académie technologique

DEV - 08/02
Hacking Club Tech Academy est une plateforme axée sur la programmation. Il est important de comprendre le...

Club de piratage

Tech Academy est une plateforme axée sur la programmation. Il est important de comprendre le flux et la manière dont nous analyserons une opportunité d’explorer les vulnérabilités.

1. Reconnaissance (collecte d'informations)

La première étape est toujours la reconnaissance, alors comment puis-je essayer un fuzzing si je ne comprends pas ce que je fais ici ?

Premièrement, le système opérationnel est Ubuntu, le serveur Web est nginx et le langage de programmation est PHP car PHP a un nom standard pour le cookie de session :IDPHSESSIDet Node.js grâce au framework Express.

1.1. nmap

Après cela, il est important de voir combien de portes y a-t-il et ce que nous pouvons faire avec ces informations sur notre cible.

nmap -Pn -sV -A IP -v PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.14 (Ubuntu Linux ; protocole 2.0) | clé d'hôte ssh : | 256 0e:f5:4e:66:f4:10:d6:94:36:fd:73:26:56:61:ca:f2 (ECDSA) |_ 256 cb:00:6c:79:84:02:84:1c:b4:a0:f0:5b:c8:8d:8f:da (ED25519) 80/tcp ouvert http nginx 1.24.0 (Ubuntu) |_http-title : In\xC3\xADcio - Tech Academy | Méthodes http : |_ Méthodes prises en charge : GET HEAD POST OPTIONS |_http-server-header : nginx/1.24.0 (Ubuntu) Type de périphérique : usage général Exécution : Linux 4.X OS CPE : cpe:/o:linux:linux_kernel:4.15 Détails du système d'exploitation : Linux 4.15 Temps de disponibilité estimé : 24 060 jours (depuis le samedi 10 janvier 18:34:50 2026) Distance réseau : 2 sauts Prédiction de séquence TCP : Difficulté = 262 (Bonne chance !) Génération de séquence d'ID IP : Tous les zéros Informations sur le service : OS : Linux ; CPE : cpe:/o:linux:linux_kernel
Entrer en mode plein écran Quitter le mode plein écran

En gros, deux ports s'ouvrent : 22 (SSH) et 80 (HTTP), un serveur relativement à jour.

2. XSS stocké basé sur DOM

Le point final/js/auth.jsa une vulnérabilité intéressante au niveau de la fonction de registre :

function updateNavigation (utilisateur) { if (utilisateur) { userMenu.innerHTML = `
...${utilisateur.nom}...
`; navLinks.appendChild(userMenu); }
Entrer en mode plein écran Quitter le mode plein écran

Lemise à jourNavigationest un pont vers un XSS à cause deintérieurHTML,. Ensuite, le code capturenom d'utilisateurqui proviennent de localStorage une réponse du serveur, et injectent directement en HTML.

J'ai donc essayé le payload classique lorsque l'on enregistr...
[Courte citation de 8% de l'article original]

Loading...