Skip to content

Latest commit

 

History

History
140 lines (100 loc) · 4.26 KB

2.md

File metadata and controls

140 lines (100 loc) · 4.26 KB

XSS

Introduction

Demo

  • Démonstration d'une faille XSS
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <div>
            <h1>Demo xss</h1>
        </div>
    
        <div>
            <form action method="get" class="form">
                <input type="text" name="name" id="name">
                <input type="submit" value="Submit">
            </form>
            <p class="content"></p>
        </div>
        <?php 
            if(isset($_GET['name'])){
                $name = $_GET['name'];
                echo "<p>" . $name . "</p>";
            }
        ?>
    </body>
    </html>
  • Démonstration de la correction

Utiliser les fonctionnalitées de nos langage de programmation pour échapper les caractères spéciaux dans le cas de php l'utilisation de la fonction htmlspecialchars

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div>
        <h1>Demo xss</h1>
    </div>

    <div>
        <form action method="get" class="form">
            <input type="text" name="name" id="name">
            <input type="submit" value="Submit">
        </form>
        <p class="content"></p>
    </div>
    <?php 
        if(isset($_GET['name'])){
            $name = $_GET['name'];
            // Échapper les caractères spéciaux pour prévenir les attaques XSS
            $safe_name = htmlspecialchars($name, ENT_QUOTES, 'UTF-8');
            echo "<p>" . $safe_name . "</p>";
        }
    ?>
</body>
</html>

Exercices

Outils à disposition : XSS Strike

🔴 Red Team

Initiation au attaque XSS cross-site scripting

Les labs xss

Hackez Google !! Heu... Foogle !! Presque pareil.. 😅 Les dernieres étape sont très difficiles arretez vous à Angular ou Angular 2 XSS Game

🔵Blue Team

Comment se protéger du XSS sur votre Framework (débat ouvert) ?

Réflexions et réponses apportées :

  • L'échappement des caractères spéciaux via les fonctions intégrées au langage de programmation utilisé ou via une librairie type DOM-Purify

  • Utilisation des CSP (Content Security Policy) authorisant uniquement les ressources voulu à se charger sur la page

  • Vérifiez que nos outils possèdent bien un échappement de caractères intégré

  • SandBox nos ressource css et js dans un sous dommaine

  • Sandboxer l'execution des script dans des Iframe


📧CSRF

Introduction

Attaque CSRF

Exercice

🔴 Red Team

Initiation au CSRF portswigger

Challenge Root me : CSRF - 0 protection

🔵Blue Team

Implémentez un Token CSRF dans tous vos formulaires POST ! Pas d'exception !

Est-ce bien suffisant ?