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.
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.
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_kernelEn gros, deux ports s'ouvrent : 22 (SSH) et 80 (HTTP), un serveur relativement à jour.
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); }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]