-
Notifications
You must be signed in to change notification settings - Fork 2
/
index.php
53 lines (52 loc) · 7.11 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Les failles XSS</title>
<link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-red.min.css" />
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
</head>
<body>
<div class="mdl-layout mdl-js-layout mdl-layout--fixed-header">
<header class="mdl-layout__header" style="height: 20%; padding:20px;">
<div class="mdl-layout__header-row" style="margin-top:20px;">
<!-- Title -->
<span class="mdl-layout-title" style="font-size: 80px;">
<div class="">
TP - Les failles XSS
</div>
</span>
</div>
</header>
<main class="mdl-layout__content" >
<div class="page-content">
<div class="mdl-grid">
<div class="mdl-cell mdl-cell--2-col"></div>
<div class="mdl-cell mdl-cell--4-col">
<h3 id="git-clone-this-repo-use-mozilla-firefox">Git clone this repo & use Mozilla Firefox</h3>
<p>Intro :
Faire <code>php -S localhost:8080</code> dans le dossier xss-example</p>
<p>Puis aller sur : <a href="http://localhost:8080/easy-level.php">http://localhost:8080/</a></p>
<p>Le TP est composé de différentes pages avec un niveau de protection qui augmente au fûr et à mesure.
Rappel : une faille xss consiste à utiliser par exemple du javascript dans un champs pour qu'il soit exécuté par le client.
Le code source PHP est disponible dans le dossier précédement téléchargé.
-> impossible-level.php empêche tout type de xss.</p>
<h3 id="question-1-easy-level-php-">Question 1 - <strong>easy-level.php</strong></h3>
<pre class="editor-colors lang-text"><div class="line"><span class="syntax--text syntax--plain"><span class="syntax--meta syntax--paragraph syntax--text"><span>Aucune protection sur la page, vous allez pouvoir faire ce que vous voulez ( par exemple afficher une alerte )</span></span></span></div></pre><h3 id="question-2-easy-level-2-php-">Question 2 - <strong>easy-level-2.php</strong></h3>
<pre class="editor-colors lang-text"><div class="line"><span class="syntax--text syntax--plain"><span class="syntax--meta syntax--paragraph syntax--text"><span>Une protection a été rajoutée, à vous de la trouver.</span></span></span></div></pre><h3 id="question-3-medium-level-php-">Question 3 - <strong>medium-level.php</strong></h3>
<pre class="editor-colors lang-text"><div class="line"><span class="syntax--text syntax--plain"><span class="syntax--meta syntax--paragraph syntax--text"><span>Une protection a été rajouté côté serveur.</span></span></span></div></pre><h3 id="question-4-bank-level-php-couplage-csrf-">Question 4 - <strong>bank-level.php</strong> ( couplage CSRF )</h3>
<pre class="editor-colors lang-text"><div class="line"><span class="syntax--text syntax--plain"><span class="syntax--meta syntax--paragraph syntax--text"><span>Objectif : Essayez de vous faire une virement à vous même.</span></span></span></div><div class="line"><span class="syntax--text syntax--plain"><span> </span></span></div><div class="line"><span class="syntax--text syntax--plain"><span class="syntax--meta syntax--paragraph syntax--text"><span>On considère que la banque effectue ses transferts grâce aux requêtes GET.</span></span></span></div><div class="line"><span class="syntax--text syntax--plain"><span class="syntax--meta syntax--paragraph syntax--text"><span>La requête est composée de 2 paramètres : amount( montant du transfert ) & to ( id de l'user, normalement le votre).</span></span></span></div><div class="line"><span class="syntax--text syntax--plain"><span> </span></span></div><div class="line"><span class="syntax--text syntax--plain"><span class="syntax--meta syntax--paragraph syntax--text"><span>Conseils :</span></span></span></div><div class="line"><span class="syntax--text syntax--plain"><span> </span><span class="syntax--meta syntax--paragraph syntax--text"><span>- Utiliser alert('Vous êtes bien connecté à votre compte')</span></span></span></div><div class="line"><span class="syntax--text syntax--plain"><span class="syntax--meta syntax--paragraph syntax--text"><span> - Utiliser window.location.href ( pour rediriger l'utilisateur : CSRF)</span></span></span></div><div class="line"><span class="syntax--text syntax--plain"><span class="syntax--meta syntax--paragraph syntax--text"><span> - Aide : le '&' peut aussi s'écrire ...</span></span></span></div></pre><h3 id="question-5-retourner-sur-easy-level-php">Question 5 Retourner sur easy-level.php</h3>
<pre class="editor-colors lang-text"><div class="line"><span class="syntax--text syntax--plain"><span class="syntax--meta syntax--paragraph syntax--text"><span>Vous allez essayer d'enregistrer un fichier sur le pc d'un utilisateur en utilisant le script FilesSaver.js</span></span></span></div><div class="line"><span class="syntax--text syntax--plain"><span> </span></span></div><div class="line"><span class="syntax--text syntax--plain"><span class="syntax--meta syntax--paragraph syntax--text"><span>Doc : </span><span class="syntax--markup syntax--underline syntax--link syntax--https syntax--hyperlink"><span>https://github.com/eligrey/FileSaver.js/</span></span></span></span></div><div class="line"><span class="syntax--text syntax--plain"><span> </span></span></div><div class="line"><span class="syntax--text syntax--plain"><span class="syntax--meta syntax--paragraph syntax--text"><span>CDN : </span><span class="syntax--markup syntax--underline syntax--link syntax--https syntax--hyperlink"><span>https://fastcdn.org/FileSaver.js/1.1.20151003/FileSaver.min.js</span></span><span> ( peut être utile 😉 )</span></span></span></div></pre><p>Si vous avez du temps, essayez d'exploiter les failles sur ce site : <a href="https://xss-game.appspot.com/">https://xss-game.appspot.com/</a></p>
<center>
<a class="mdl-button mdl-js-button mdl-button--raised mdl-button--accent" href="http://localhost:8080/easy-level.php">
Commencer le tp
</a>
</center>
</div>
</div>
</div>
</main>
</div>
</body>
<script defer src="https://code.getmdl.io/1.3.0/material.min.js"></script>
</html>