summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Dockerfile6
-rw-r--r--README10
-rw-r--r--login.php29
-rw-r--r--page.html51
-rw-r--r--www/index.html52
-rw-r--r--www/login.php40
-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"]
diff --git a/README b/README
new file mode 100644
index 0000000..0d387b6
--- /dev/null
+++ b/README
@@ -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>&nbsp;</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>
diff --git a/page.php b/www/page.php
index 87acfc5..9d7a384 100644
--- a/page.php
+++ b/www/page.php
@@ -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>