From e94da70503efb01cdeee7f5bec072fb80645a982 Mon Sep 17 00:00:00 2001 From: Ioannis Kakavas Date: Wed, 4 May 2022 12:13:25 +0300 Subject: [PATCH 01/23] Reskin for the elastic CTF --- .../webapp/css/images/grassTile-elastic.jpg | Bin 0 -> 5936 bytes src/main/webapp/css/images/resized-banner.png | Bin 0 -> 46353 bytes src/main/webapp/css/lessonCss/theCss.css | 11 +++-- src/main/webapp/css/theCss.css | 42 ++++++++---------- src/main/webapp/index.jsp | 3 +- src/main/webapp/login.jsp | 3 +- src/main/webapp/register.jsp | 1 - src/main/webapp/scoreboard.jsp | 4 +- 8 files changed, 27 insertions(+), 37 deletions(-) create mode 100644 src/main/webapp/css/images/grassTile-elastic.jpg create mode 100644 src/main/webapp/css/images/resized-banner.png diff --git a/src/main/webapp/css/images/grassTile-elastic.jpg b/src/main/webapp/css/images/grassTile-elastic.jpg new file mode 100644 index 0000000000000000000000000000000000000000..46988841c4a2932621d0aa1e0ee3cb47f4f81e6a GIT binary patch literal 5936 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 a5aDtMdRaj}_v3?QD1Bz9-TTm-*ng0k;p` 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 literal 0 HcmV?d00001 diff --git a/src/main/webapp/css/lessonCss/theCss.css b/src/main/webapp/css/lessonCss/theCss.css index bc0c121a7..b665df767 100644 --- a/src/main/webapp/css/lessonCss/theCss.css +++ b/src/main/webapp/css/lessonCss/theCss.css @@ -39,7 +39,7 @@ p, ul, ol { } a { - color: #9B1AC8; + color: #FF957D; word-wrap: break-word; } @@ -49,7 +49,6 @@ b { a:hover { text-decoration: none; - color: #E6B715; } td { @@ -70,7 +69,7 @@ td { #header h1, #header p { margin: 0; - color: #A878EF; + color: #FA744E; } #header h1 { @@ -83,7 +82,7 @@ td { } #header a { - color: #A878EF; + color: #FA744E; text-decoration: none; } @@ -131,7 +130,7 @@ td { .title { margin: 0; padding-bottom: 5px; - border-bottom: 2px solid #A878EF; + border-bottom: 2px solid #FA744E; } #sidebar { @@ -196,4 +195,4 @@ td { word-wrap: break-word; z-index: 1000000; -webkit-font-smoothing: subpixel-antialiased; -} \ No newline at end of file +} diff --git a/src/main/webapp/css/theCss.css b/src/main/webapp/css/theCss.css index 2ad30e21c..0b9647588 100644 --- a/src/main/webapp/css/theCss.css +++ b/src/main/webapp/css/theCss.css @@ -1,7 +1,7 @@ body { margin: 0; padding: 0; - background: #FFFFFF url(images/grassTile.jpg) repeat-x top center; + background: #F7F5FA url(images/grassTile-elastic.jpg) repeat-x top center; font-size: 13px; color: #090212; } @@ -39,12 +39,11 @@ p, ul, ol { } a { - color: #9B1AC8; + color: #FF957D; } a:hover { text-decoration: none; - color: #E6B715; } #wrapper { @@ -54,14 +53,14 @@ a:hover { #header { width: 757px; - height: 240px; + height: 340px; margin: 0 auto; - background: url(images/shepherdAndSheep.jpg) no-repeat right top; + background: url(images/resized-banner.png) no-repeat center top; } #header h1, #header p { margin: 0; - color: #A878EF; + color: #FA744E; } #header h1 { @@ -74,7 +73,7 @@ a:hover { } #header a { - color: #A878EF; + color: #FA744E; text-decoration: none; } @@ -116,7 +115,7 @@ a:hover { .title { margin: 0; padding-bottom: 5px; - border-bottom: 2px solid #A878EF; + border-bottom: 2px solid #FA744E; } #sidebar { @@ -196,12 +195,10 @@ a:hover { .menuButton { display: block; - border-bottom: 3px solid #A878EF; - background: #D4D4D4; + background: #0077CC; padding: 5px 5px; border-radius: 5px; - color: black; - font-size: 1.5em; + color: white; text-align: center; text-decoration: none; vertical-align: middle; @@ -209,17 +206,16 @@ a:hover { } .menuButton:hover { - border-top-color: #CC99FF; - background: #BFBFBF; + background: #005A9E; } .menuButton:active { - border-top-color: #8660BF; - background: #8660BF; + border-top-color: #005A9E; + background: #005A9E; } .scoreBar { - background-color: #965BED; + background-color: #FA744E; height: 30px; position: relative; font-size: 25px; @@ -234,7 +230,7 @@ a:hover { } .scoreBar:hover { - background-color: #AC7DF2; + background-color: #F990C6; height: 30px; position: relative; font-size: 25px; @@ -332,9 +328,9 @@ a:hover { .informationBox { display: block; margin 0; - border-color: #A878EF; + border-color: #FA744E; border-style: dashed; - background-color: #D4D4D4; + background-color: #E6EbF2; padding-top: 5px; padding-bottom: 5px; padding-right: 5px; @@ -345,9 +341,9 @@ a:hover { .cheatBox { float: right; margin 0; width: 685px; - border-color: #A878EF; + border-color: #FA744E; border-style: dashed; - background-color: #D4D4D4; + background-color: #E6EBF2; padding-top: 5px; padding-bottom: 5px; padding-right: 5px; @@ -498,4 +494,4 @@ a:hover { width: 100%; margin-top: 0; } -} \ No newline at end of file +} diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp index f751bc971..6306ee04e 100644 --- a/src/main/webapp/index.jsp +++ b/src/main/webapp/index.jsp @@ -61,7 +61,7 @@ if (request.getSession() != null) -OWASP Security Shepherd +Elastic CTF - Powered by OWASP Security Shepherd diff --git a/src/main/webapp/register.jsp b/src/main/webapp/register.jsp index ff023d195..86e551143 100644 --- a/src/main/webapp/register.jsp +++ b/src/main/webapp/register.jsp @@ -91,7 +91,6 @@ if(ses.getAttribute("errorMessage") != null) diff --git a/src/main/webapp/scoreboard.jsp b/src/main/webapp/scoreboard.jsp index f7a737cec..89565d305 100644 --- a/src/main/webapp/scoreboard.jsp +++ b/src/main/webapp/scoreboard.jsp @@ -74,7 +74,7 @@ %> -OWASP Security Shepherd - Scoreboard +Elastic CTF - Powered by OWASP Security Shepherd - Scoreboard @@ -87,8 +87,6 @@
From 47b882fd5598d4be1906b0b812972151ea89e476 Mon Sep 17 00:00:00 2001 From: Paul Date: Wed, 4 May 2022 14:37:03 +0100 Subject: [PATCH 02/23] Adding client validation for email --- src/main/webapp/register.jsp | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/main/webapp/register.jsp b/src/main/webapp/register.jsp index ff023d195..9a017f57c 100644 --- a/src/main/webapp/register.jsp +++ b/src/main/webapp/register.jsp @@ -119,7 +119,7 @@ if(ses.getAttribute("errorMessage") != null)

- * : + * :

@@ -127,7 +127,7 @@ if(ses.getAttribute("errorMessage") != null)

- * : + * :

@@ -135,7 +135,7 @@ if(ses.getAttribute("errorMessage") != null)

- * : + * :

@@ -143,7 +143,7 @@ if(ses.getAttribute("errorMessage") != null)

- : + * :

@@ -151,7 +151,7 @@ if(ses.getAttribute("errorMessage") != null)

- : + * :

@@ -163,16 +163,10 @@ if(ses.getAttribute("errorMessage") != null) style="width: 400px; border-color: #A878EF; border-style: dashed; background-color: #D4D4D4; padding-top: 5px; padding-bottom: 5px; padding-right: 5px; padding-left: 5px;" align="justify">
- SHEPHERD DISCLAIMER + ATTENTION
-

The Security Shepherd project is for educational - purposes only. Do not attempt to use these techniques without - authorization. If you are caught engaging in unauthorized - hacking, most companies will take legal action. Claiming that - you were doing security research will not protect you.
-
Security Shepherd is a safe playground for you to improve - your web application security skills and only encourages white - hat or ethical hacking behaviour.
+
+ Please supply your elastic.co email address to be eligible for swag.

@@ -223,11 +217,16 @@ if(ses.getAttribute("errorMessage") != null) var theEmailAgain = $("#userAddressCnf").val(); //Validation var theError = ""; + let elasticEmailPattern = /(^[^@]*[^@])([@])(elastic\.co)$/; + if (thePass != thePassAgain) { theError = "Passwords do not match"; } - else if (theEmail.length != 0 && theEmail != theEmailAgain) + else if (!theEmail.match(elasticEmailPattern)){ + theError = "You must use your elastic email address"; + } + else if (theEmail.length !== 0 && theEmail !== theEmailAgain) { theError = "Email addresses did not match"; } From c17ef586be3d126ce853cbc82c5b2c77d54c47c9 Mon Sep 17 00:00:00 2001 From: Paul Date: Thu, 5 May 2022 09:10:33 +0100 Subject: [PATCH 03/23] removing capturing groups and making the regex case insensitive --- src/main/webapp/register.jsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/webapp/register.jsp b/src/main/webapp/register.jsp index 9a017f57c..87b84a0a4 100644 --- a/src/main/webapp/register.jsp +++ b/src/main/webapp/register.jsp @@ -217,7 +217,7 @@ if(ses.getAttribute("errorMessage") != null) var theEmailAgain = $("#userAddressCnf").val(); //Validation var theError = ""; - let elasticEmailPattern = /(^[^@]*[^@])([@])(elastic\.co)$/; + let elasticEmailPattern = /^[^@]*[^@]@elastic\.co$/i; if (thePass != thePassAgain) { From 3271bbd029ecd6b1073bbe149e32d79fc183ce93 Mon Sep 17 00:00:00 2001 From: Paul Date: Fri, 6 May 2022 11:26:39 +0100 Subject: [PATCH 04/23] Changing how the login and registration pages look to improve UX. --- src/main/webapp/login.jsp | 42 +++++++++++------------------------- src/main/webapp/register.jsp | 12 ++--------- 2 files changed, 14 insertions(+), 40 deletions(-) diff --git a/src/main/webapp/login.jsp b/src/main/webapp/login.jsp index cf9305bc5..960c211f9 100644 --- a/src/main/webapp/login.jsp +++ b/src/main/webapp/login.jsp @@ -80,8 +80,12 @@ style="margin-right: auto; margin-left: auto; width: 40%; max-width: 320px;">

- + Get Started

+

+ 1) Download and install + Burp Suite +

<% if (ScoreboardStatus.isPublicScoreboard()) { %> @@ -101,17 +105,20 @@ if (LoginMethod.isLogin()) { %>

- + <% if (OpenRegistration.isEnabled()) { %>

- + 2) Register an account on the CTF platform.

<% } %> +

+ 3) Login Below +

@@ -146,33 +153,8 @@ %>

- -
- - - - - - - - - -
-
-
+
diff --git a/src/main/webapp/register.jsp b/src/main/webapp/register.jsp index d559a7ef5..aab163ce0 100644 --- a/src/main/webapp/register.jsp +++ b/src/main/webapp/register.jsp @@ -111,9 +111,11 @@ if(ses.getAttribute("errorMessage") != null) } %>
+

+

Please supply your elastic.co email address to be eligible for swag.

@@ -157,16 +159,6 @@ if(ses.getAttribute("errorMessage") != null)

-
-
-
- ATTENTION -
-
- Please supply your elastic.co email address to be eligible for swag. -

Date: Fri, 6 May 2022 16:04:30 +0100 Subject: [PATCH 05/23] Adding a breakdown of points (#26) * Adding a breakdown of points --- src/main/webapp/readyToPlay.jsp | 128 ++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) diff --git a/src/main/webapp/readyToPlay.jsp b/src/main/webapp/readyToPlay.jsp index 4d684d0cb..a8f7d9bd1 100644 --- a/src/main/webapp/readyToPlay.jsp +++ b/src/main/webapp/readyToPlay.jsp @@ -50,10 +50,138 @@ <fmt:message key="readyToPlay.title.readyToPlay" /> + +
+

Points

+

Below is a breakdown of the points on offer for helping out your fellow participants and completing a level.

+

Achievements

+ + + + + + + + + + + + + + + + + + + + + + + + + +
AchievementPoints
Don’t mute the messenger - Tag 5 people on the #capture-the-flag channel and use the hashtag + #ctftheword. Once they’re signed up @product-security on Slack referencing where you tagged + everyone and we’ll award the points.10
Popup Points - Trigger an XSS alert box where the CTF platform doesn't award points. Use the + hashtag #alert on #capture-the-flag along with your XSS payload. (1 payload per person)20
Proxy Pals - Nominate someone on #capture-the-flag who helped you figure out how to use Burp Suite. + Use the hashtag #proxypals were you get 3 points and they get 30!30
It was like that when I got here - report a valid security issue against the CTF platform to the + Product Security Team by sending an email to product-security@40
OWASP is that? - Nominate someone on #capture-the-flag using the hashtag #levelcomplete who + helped you understand any security issue in the CTF e.g. XSS, CSRF, Injection etc. where that help + lead you to pass the level. You get 5 points and they get 50! + 50
+
+

Levels

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RankPoints Range
Field Training10 - 20
Private25 - 40
Corporal45 - 50
Sergeant55 - 65
Lieutenant70 - 75
Major80 - 85
Admiral90 - 180
+
+

Medals

+

Be the 1st, 2nd or 3rd person to complete a level to gain a medal and bonus points.

+ + + + + + + + + + + + + + + + + +
RankPoints
Gold5
Silver4
Bronze3
+
+


From 10e6df21fa86951d38cc0577a347c665bbc22e8f Mon Sep 17 00:00:00 2001 From: Paul McCann Date: Thu, 12 May 2022 08:50:38 +0100 Subject: [PATCH 06/23] Adding CTF rules and changing achievements based on feedback (#28) --- src/main/webapp/login.jsp | 24 ++++++++++++++++++++++++ src/main/webapp/readyToPlay.jsp | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/main/webapp/login.jsp b/src/main/webapp/login.jsp index 960c211f9..86b6135f1 100644 --- a/src/main/webapp/login.jsp +++ b/src/main/webapp/login.jsp @@ -158,6 +158,30 @@
+
+

CTF Rules

+
    +
  • Scope - don’t attempt to bypass the platform's mechanisms which include, but not limited to +
      +
    • The login / logout mechanisms
    • +
    • The registration page
    • +
    • The CTF key submission
    • +
    • The scoreboard
    • +
    • The admin console
    • +
    + However, if you stumble across something report it and we'll award points +
  • +
  • Exploiting - automated tools are forbidden where the platform will deduct points for multiple + wrongly submitted result keys
  • +
  • Collaborate - If you're super helpful to your fellow Elasticians and they nominate you there's + bonus points up for grabs
  • +
  • They're out there - post on the #capture-the-flag channel, reach out to a colleague or use + Google to understand a concept, don't just look up the answer
  • +
  • Have fun! - these are fun challenges that range from beginner to advanced difficulty and if + you learn something along the way then that’s a bonus!
  • +
+

+