Cross-Site Request Forgery (CSRF)

Consignes

Aucune pour ce niveau

Réalisation

Je me connecte au site et je peux créer un compte. Je tente donc de créer admin:admin mais cet utilisateur existe déjà. Je créer donc le profil user:user

Une fois ce compte créé, je suis redirigé vers une page "/profile" m'invitant à modifier mon username et mon password. Le but ici va donc être de modifier le mot de passe de l'administrateur. On doit dans un premier temps analyser le contenu HTML de la page /profile du site :


    <html>
    <head><link rel="stylesheet" href="css/pico.min.css"></head>
    <body>
    <main class="container">
        <h2>Profile</h2>
        <p>Modify your username and password:</p>
        <form method="post">
            <input type="text" name="username" value="user" required>
            <input type="password" name="password" required>
            <button type="submit">Update</button>
        </form>
        
    </main>
    </body>
    </html>
    

On observe sur cette page qu'il n'y a pas de tokens anti-csrf, donc nous pouvons réaliser une attaque. Le but va être dé réaliser une "copie" du site en modifiant les valeurs que nous connaissons sur le site donc ici username et password

Pour ceci, je créer le fichier CSRF.html sur ma machine en me basant que le code source de la page /profile du site :

J'ai ensuite envoyé ce fichier à l'admin via le /contact disponible sur le site WEB. Pour se faire

ngrok config add-authtoken https://dashboard.ngrok.com/get-started/your-authtoken

Last updated