From 7a30a69eb687fd4582ba75386f26b42a4876921c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Thibout=C3=B4t?= Date: Thu, 10 Sep 2020 13:54:53 -0400 Subject: [PATCH 1/3] Add javascript challenge. --- challenges/web/JavaScript/Dockerfile | 1 + challenges/web/JavaScript/README.md | 18 +++ challenges/web/JavaScript/docker-compose.yml | 8 ++ challenges/web/JavaScript/login-2-source.html | 111 ++++++++++++++++++ challenges/web/JavaScript/src/index.html | 41 +++++++ challenges/web/JavaScript/src/login-1.html | 81 +++++++++++++ challenges/web/JavaScript/src/login-2.html | 66 +++++++++++ challenges/web/JavaScript/writeup.md | 55 +++++++++ 8 files changed, 381 insertions(+) create mode 100644 challenges/web/JavaScript/Dockerfile create mode 100644 challenges/web/JavaScript/README.md create mode 100644 challenges/web/JavaScript/docker-compose.yml create mode 100644 challenges/web/JavaScript/login-2-source.html create mode 100644 challenges/web/JavaScript/src/index.html create mode 100644 challenges/web/JavaScript/src/login-1.html create mode 100644 challenges/web/JavaScript/src/login-2.html create mode 100644 challenges/web/JavaScript/writeup.md diff --git a/challenges/web/JavaScript/Dockerfile b/challenges/web/JavaScript/Dockerfile new file mode 100644 index 0000000..2a41af2 --- /dev/null +++ b/challenges/web/JavaScript/Dockerfile @@ -0,0 +1 @@ +FROM php:7.4.7-apache diff --git a/challenges/web/JavaScript/README.md b/challenges/web/JavaScript/README.md new file mode 100644 index 0000000..d41a405 --- /dev/null +++ b/challenges/web/JavaScript/README.md @@ -0,0 +1,18 @@ +# JavaScript + +> web + +Author: [Simon Thiboutôt (lilc4t)](https://github.com/masterT) + +http://127.0.0.1:12001/ + +## Setup + +Requirements: +- docker + +Start: + +```shell +docker-compose up +``` diff --git a/challenges/web/JavaScript/docker-compose.yml b/challenges/web/JavaScript/docker-compose.yml new file mode 100644 index 0000000..aa4151c --- /dev/null +++ b/challenges/web/JavaScript/docker-compose.yml @@ -0,0 +1,8 @@ +version: "2" +services: + web: + build: . + ports: + - "12001:80" + volumes: + - "./src/:/var/www/html" diff --git a/challenges/web/JavaScript/login-2-source.html b/challenges/web/JavaScript/login-2-source.html new file mode 100644 index 0000000..71bbc1d --- /dev/null +++ b/challenges/web/JavaScript/login-2-source.html @@ -0,0 +1,111 @@ + + + + + + + Login 2 + + + + +
+

Login 2

+ + + + + +
+ + diff --git a/challenges/web/JavaScript/src/index.html b/challenges/web/JavaScript/src/index.html new file mode 100644 index 0000000..c14cb0e --- /dev/null +++ b/challenges/web/JavaScript/src/index.html @@ -0,0 +1,41 @@ + + + + + + + JavaScript + + + +
+
+
+

JavaScript

+

Challenges

+ +
+
+
+ + diff --git a/challenges/web/JavaScript/src/login-1.html b/challenges/web/JavaScript/src/login-1.html new file mode 100644 index 0000000..9e84c4d --- /dev/null +++ b/challenges/web/JavaScript/src/login-1.html @@ -0,0 +1,81 @@ + + + + + + + Login 1 + + + + +
+

Login 1

+ + + + + +
+ + diff --git a/challenges/web/JavaScript/src/login-2.html b/challenges/web/JavaScript/src/login-2.html new file mode 100644 index 0000000..7745a01 --- /dev/null +++ b/challenges/web/JavaScript/src/login-2.html @@ -0,0 +1,66 @@ + + + + + + + Login 2 + + + + +
+

Login 2

+ + + + + +
+ + diff --git a/challenges/web/JavaScript/writeup.md b/challenges/web/JavaScript/writeup.md new file mode 100644 index 0000000..71fef98 --- /dev/null +++ b/challenges/web/JavaScript/writeup.md @@ -0,0 +1,55 @@ +# Writeup + +## Login 1 + +- `FLAG-e7ebfbb9dcf5cfb60ae1bb59d40f7695` + +Pour voir le drapeau il suffit d'évaluer la chaîne de caractères `"\x46\x4c\x41\x47\x2d\x65\x37\x65\x62\x66\x62\x62\x39\x64\x63\x66\x35\x63\x66\x62\x36\x30\x61\x65\x31\x62\x62\x35\x39\x64\x34\x30\x66\x37\x36\x39\x35"` dans la console du navigateur. + +## Login 2 + +- `FLAG-1fbeb0a21f8d1286086ca419079c62f8a` + +Avant tout il faut comprendre ce que le code JavaScript fait, pour ce faire on indente correctement le script, puis on renomme les fonctions et variables. + +Par la suite il faut programmer une solution qui fait l'inverse de la fonction d'encryption. + +Voici une solution qui affiche le drapeau dans la console du navigateur, lorsqu'exécutée dans celle-ci. + +```js +var cipher = "NzE6NzQ6Njc6Nzg6NDM6NTY6OTY6MjoxMDU6Nzo1MzoxMDU6NTA6NTY6OTg6NTE6OTg6ODM6NDg6OTc6NTU6NTQ6NTY6NjU6MTA1OjEwNDo1MDo4Mzo2MTo4OTo1Mjo2NToxMDE6NjU6NTQ6MTEzOjYyOjM"; +var key = "2718587a3f"; + +function keyValueAt(key, index) { + var value; + var keyIndex = index % key.length; + var integer = parseInt(key[keyIndex]); + if (integer && !isNaN(integer)) { + value = integer; + } else { + value = key.charCodeAt(keyIndex); + } + return value; +} + +function decrypt(key, cipherBase64) { + var plaintext = ''; + var cipher = atob(cipherBase64).split(':'); + + for (let i = 0; i < cipher.length; i++) { + var code = parseInt(cipher[i]); + if (code % 2 == 0) { + code = code + 1; + } else { + code = code - 3; + } + var char = String.fromCharCode(code ^ keyValueAt(key, i)); + plaintext += char; + } + + return plaintext; +} + +console.log(decrypt(key, cipher)); +``` + From 8a6df8a18e2e26fbebfc261173e6e270882dfcfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Thibout=C3=B4t?= Date: Thu, 17 Sep 2020 20:40:56 -0400 Subject: [PATCH 2/3] Add a context (kind of) for the javascript challenges. --- challenges/web/JavaScript/src/index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/challenges/web/JavaScript/src/index.html b/challenges/web/JavaScript/src/index.html index c14cb0e..9834e86 100644 --- a/challenges/web/JavaScript/src/index.html +++ b/challenges/web/JavaScript/src/index.html @@ -25,6 +25,7 @@

JavaScript

+

The browser's programming language, it's good for many things, but it's code while always be accessible.

Challenges

  • From 5fff5f265c5cfbdda3a971a96718c9c401487196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Thibout=C3=B4t?= Date: Thu, 17 Sep 2020 20:59:05 -0400 Subject: [PATCH 3/3] Change build for image. --- challenges/web/JavaScript/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenges/web/JavaScript/docker-compose.yml b/challenges/web/JavaScript/docker-compose.yml index aa4151c..4a7569d 100644 --- a/challenges/web/JavaScript/docker-compose.yml +++ b/challenges/web/JavaScript/docker-compose.yml @@ -1,7 +1,7 @@ version: "2" services: web: - build: . + image: php:7.4.7-apache ports: - "12001:80" volumes: