diff options
| -rw-r--r-- | Dockerfile | 6 | ||||
| -rw-r--r-- | README | 10 | ||||
| -rw-r--r-- | login.php | 29 | ||||
| -rw-r--r-- | page.html | 51 | ||||
| -rw-r--r-- | www/index.html | 52 | ||||
| -rw-r--r-- | www/login.php | 40 | ||||
| -rw-r--r-- | www/page.php (renamed from page.php) | 11 |
7 files changed, 114 insertions, 85 deletions
diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..abbf9b5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,6 @@ +FROM debian:stable-slim +RUN apt update && apt install -y php-cli +COPY www /var/www +ENV PASSWD="password123" +WORKDIR /var/www +ENTRYPOINT ["php", "-S", "0.0.0.0:5000"] @@ -0,0 +1,10 @@ +Un petit script en php pour apprendre les methodes http (post et get) avec curl ou python requests et le bruteforcing web avec python requests + +Deux variables d'environnement : +PASSWD et FLAG +PASSWD par défaut est indiqué dans le Dockerfile; Il doit être choisi dans nmap.lst +Pas de FLAG par défaut: +Pour le lancer avec un flag et un passwd différent: +docker run -d -p 5000:5000 -e FLAG=le_flag -e PASSWD=le_passwd --rm ... + +D'autres exercices à venir... diff --git a/login.php b/login.php deleted file mode 100644 index 5ac4afe..0000000 --- a/login.php +++ /dev/null @@ -1,29 +0,0 @@ -<?php -if ($_POST['username'] == "stagiaire" && $_POST['password'] == "password123"){ - $msg="Bien joué, Boloss, ton flag est 'ici'"; -} -else { - $msg="Erreur, Boloss !"; -} -?> -<!DOCTYPE html> -<html lang="fr"> - -<head> -<meta charset="utf-8" /> -<title>Login</title> -<meta name="generator" content="Geany 1.38" /> -</head> - -<body> - <h1>Login</h1> - <form method="post"> - <input type="text" name="username"><br> - <input type="password" name="password"><br> - <input type="submit"> - </form> - <br> - <div><?php if (isset($_POST['username'])){ echo $msg; } ?></div> -</body> - -</html> diff --git a/page.html b/page.html deleted file mode 100644 index 83e6147..0000000 --- a/page.html +++ /dev/null @@ -1,51 +0,0 @@ -<!DOCTYPE html> -<html lang="fr"> - <head> - <meta charset="utf-8"> - <title>Exemple</title> - <style> - form { - border: solid black 1px; - padding: 1em; - margin:1em; - } - #titre { - color:blue; - } - .formulaire { - color: #808080; - } - </style> - </head> - <body> - <h1 id="titre">Système d'exploitation</h1> - <div> - <strong>Questionnaire</strong> - <form action="page.php"> - <p class="formulaire"> - Votre nom :<input type="text" name="username"> - </p> - <!-- Mot de passe :<input type="password" name="password"> --> - - <p class="formulaire"> - Votre OS : <select name="os" maxlength=7> - <option label="------"></option> - <option>Mac Os</option> - <option>Windows</option> - </select> - </p> - <p> - <input type="submit" value="Valider"> - </p> - </form> - <p><em> - Merci - </em></p> - </div> - <script> - document.querySelector("input[type=submit]").onclick=function(){ - document.cookie="date="+Date.now()/1000 - } - </script> - </body> -</html> diff --git a/www/index.html b/www/index.html new file mode 100644 index 0000000..a2d890e --- /dev/null +++ b/www/index.html @@ -0,0 +1,52 @@ +<!DOCTYPE html> +<html lang="fr"> + <head> + <meta charset="utf-8"> + <title>Exemple</title> + <style> + form { + border: solid black 1px; + padding: 1em; + margin:1em; + } + #titre { + color:blue; + } + .formulaire { + color: #808080; + } + </style> + </head> + <body> + <h1 id="titre">Système d'exploitation</h1> + <div> + <strong>Questionnaire</strong> + <form id="monform" action="page.php"> + <p class="formulaire"> + Votre nom :<input type="text" name="username"> + </p> + <p class="formulaire"> + Votre OS : <select name="os" maxlength=7> + <option label="------"></option> + <option>Mac Os</option> + <option>Windows</option> + </select> + </p> + <p> + <input type="submit" value="Valider"> + </p> + </form> + <p><em> + <button onclick="changeMethod()">Method POST</button> + </em></p> + <p id="demo">La méthode est GET.<br> </p> + </div> + <p><a href="login.php">Login</a> +<script> +function changeMethod() { + document.getElementById("monform").method = "post"; + document.getElementById("demo").innerHTML = "La méthode est maintenant POST.<br>Rafraîchissez votre page pour revenir à GET."; +} +</script> + </body> +</html> diff --git a/www/login.php b/www/login.php new file mode 100644 index 0000000..85fe569 --- /dev/null +++ b/www/login.php @@ -0,0 +1,40 @@ +<?php +if ($_POST['username'] == "stagiaire" && $_POST['password'] == getenv('PASSWD')){ + $msg="Bien joué, Boloss ! "; + if(getenv('FLAG')){ + $msg .= "Ton flag est ".getenv('FLAG'); + } +} +else { + $msg="Erreur, Boloss !"; +} +?> +<!DOCTYPE html> +<html lang="fr"> + +<head> +<meta charset="utf-8" /> +<title>Login</title> +<meta name="generator" content="Geany 1.38" /> +</head> + +<body> + <h1>Login</h1> + <form method="post"> + <table> + <tr> + <td>Username :</td><td> <input type="text" name="username"></td> + </tr> + <tr> + <td>Password :</td><td> <input type="password" name="password"></td> + </tr> + </table> + <input type="submit"> + </form> + <br> + <p>Ton login est "stagiaire" et ton mot de passe est dans nmap.lst (livré avec le paquet nmap) ! + <br>Au boulot !</p> + <div><strong><?php if (isset($_POST['username'])){ echo $msg; } ?></strong></div> +</body> + +</html> @@ -7,14 +7,14 @@ <body> <div> <?php -//if (isset($_GET['password']) && $_GET['password'] == "secret"){ - if (isset($_GET['username'])) +//if (isset($_REQUEST['password']) && $_REQUEST['password'] == "secret"){ + if (isset($_REQUEST['username'])) { - echo "<p>Merci ".$_GET['username']." !</p>"; + echo "<p>Merci ".$_REQUEST['username']." !</p>"; } - if (isset($_GET['os'])) + if (isset($_REQUEST['os'])) { - echo "<p>Votre OS favori est ".$_GET['os']." !</p>"; + echo "<p>Votre OS favori est ".$_REQUEST['os']." !</p>"; } if(isset($_COOKIE['date'])) { @@ -26,5 +26,6 @@ else { }*/ ?> </div> +<p><a href="javascript:history.back()">Retour</a></p> </body> </html> |
