Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 5 additions & 1 deletion .github/workflows/visual-diff.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ on:
- 'src/main/resources/templates/**'
- 'src/main/resources/static/**'

permissions:
contents: read
pull-requests: write

env:
NVD_API_KEY: ${{ secrets.NVD_API_KEY }}

Expand Down Expand Up @@ -200,7 +204,7 @@ jobs:
if (status === 401 || status === 403) {
core.warning(
`Could not post the visual diff comment on the PR (HTTP ${status}: ${error.message}). ` +
'The workflow token has no comment permission here, so the result is published to the job summary instead. ' +
'The workflow token has no comment permission here (expected for pull requests from forks, where GITHUB_TOKEN is read-only), so the result is published to the job summary instead. ' +
`Artifacts: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}`
);
await core.summary.addRaw(comment).write();
Expand Down
4 changes: 2 additions & 2 deletions js/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// eslint-disable-next-line no-unused-vars
function secret() {

function secret() {
var password = "aCb4Ne4=" + 9 + "zjSj" + 6 + "6ts=" + 2 + "BHi1" + 7;
return password;
}
4 changes: 2 additions & 2 deletions scripts/do_translate/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Step 5: open https://translate.google.com/?sl=en&tl=nl&op=docs select a target l

Step 6: open the translated doc and copy the contents to a txt file. e.g. `explanations_bundle_nl.txt` and make sure the `@@@@ FILE:` part is not translated (if it is, reconstruct it to FILE again).

step 7: now deconstruct the new file (e.g. `explanations_bundle_nl`) with
step 7: now deconstruct the new file (e.g. `explanations_bundle_nl`) with

` ./bin/translate -bundle explanations_bundle_nl.txt -destruct -language nl`

Expand Down Expand Up @@ -117,4 +117,4 @@ Examples:
- it: Italian
- pt: Portuguese
- ja: Japanese
- zh: Chinese
- zh: Chinese
1 change: 0 additions & 1 deletion scripts/do_translate/explanations_bundle.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4051,4 +4051,3 @@ We are running outside a K8s cluster with Vault. Please run this in the K8s clus
https://github.com/OWASP/wrongsecrets#vault-exercises-with-minikube[README.md]

There might still be supported challenges after this one. Please try another challenge instead!

2 changes: 1 addition & 1 deletion scripts/do_translate/internal/translator/translator.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,4 +126,4 @@ func splitText(input string, limit int) []string {
}

return chunks
}
}
37 changes: 37 additions & 0 deletions src/main/java/org/owasp/wrongsecrets/MvcConfiguration.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.owasp.wrongsecrets;

import java.util.List;
import java.util.Locale;
import java.util.Set;
import lombok.extern.slf4j.Slf4j;
import nz.net.ultraq.thymeleaf.layoutdialect.LayoutDialect;
Expand All @@ -12,7 +14,11 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ResourceLoader;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
import org.thymeleaf.extras.springsecurity6.dialect.SpringSecurityDialect;
import org.thymeleaf.spring6.SpringTemplateEngine;
import org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver;
Expand All @@ -26,8 +32,39 @@
@Slf4j
public class MvcConfiguration implements WebMvcConfigurer {

/** Supported locales for the language toggle. */
public static final List<Locale> SUPPORTED_LOCALES =
List.of(
Locale.ENGLISH,
Locale.of("nl"),
Locale.GERMAN,
Locale.of("es"),
Locale.FRENCH,
Locale.of("uk"));

private static final String UTF8 = "UTF-8";

/** Session-based locale resolver so the selected language persists across requests. */
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver();
sessionLocaleResolver.setDefaultLocale(Locale.ENGLISH);
return sessionLocaleResolver;
}

/** Interceptor that reads the {@code lang} request parameter and updates the session locale. */
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
localeChangeInterceptor.setParamName("lang");
return localeChangeInterceptor;
}

@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
}

@Bean
public ITemplateResolver springThymeleafTemplateResolver(ApplicationContext applicationContext) {
SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,28 @@
import java.util.function.Function;
import java.util.stream.Collectors;
import lombok.Getter;
import org.apache.commons.io.FilenameUtils;
import org.owasp.wrongsecrets.RuntimeEnvironment;
import org.owasp.wrongsecrets.ScoreCard;
import org.owasp.wrongsecrets.definitions.ChallengeDefinition;
import org.owasp.wrongsecrets.definitions.Difficulty;
import org.owasp.wrongsecrets.definitions.Environment;
import org.owasp.wrongsecrets.definitions.Navigator;
import org.owasp.wrongsecrets.definitions.Sources.ChallengeSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.core.io.ClassPathResource;

/** Wrapper class to move logic from Thymeleaf to keep logic in code instead of the html file. */
@Getter
public class ChallengeUI {

/**
* Cache of classpath file existence results so that we only hit the filesystem once per unique
* locale-specific filename across all requests.
*/
private static final ConcurrentHashMap<String, Boolean> LOCALIZED_FILE_EXISTS_CACHE =
new ConcurrentHashMap<>();

private static final Map<DifficultyKey, DifficultyUI> DIFFICULTY_UI_CACHE =
new ConcurrentHashMap<>();

Expand Down Expand Up @@ -142,30 +152,62 @@ private String documentation(Function<ChallengeSource, String> extractor) {
}

/**
* Returns filename of the explanation of the challenge.
* Resolves a locale-specific filename if available, falling back to the default (English) file.
* Checks both the raw .adoc source (used in dev mode) and the pre-compiled .html (used in
* production). If neither locale-specific file exists, the original filename is returned so the
* English content is shown. Results are cached to avoid repeated classpath lookups. Must be
* called at render time as {@link ChallengeUI} instances are cached across requests.
*
* @param defaultFileName the default (English) file path, e.g. "explanations/challenge1.adoc"
* @return locale-specific filename if it exists, otherwise the default filename
*/
private String localizeFileName(String defaultFileName) {
if (defaultFileName == null || defaultFileName.isEmpty()) {
return defaultFileName;
}
var locale = LocaleContextHolder.getLocale();
if (locale.getLanguage().isEmpty() || "en".equals(locale.getLanguage())) {
return defaultFileName;
}
String ext = FilenameUtils.getExtension(defaultFileName);
String base = FilenameUtils.removeExtension(defaultFileName);
String suffix = "_" + locale.getLanguage();
String localizedAdoc = base + suffix + (ext.isEmpty() ? "" : "." + ext);
String localizedHtml = base + suffix + ".html";
boolean exists =
LOCALIZED_FILE_EXISTS_CACHE.computeIfAbsent(
localizedAdoc,
key ->
new ClassPathResource(key).exists()
|| new ClassPathResource(localizedHtml).exists());
return exists ? localizedAdoc : defaultFileName;
}

/**
* Returns filename of the explanation of the challenge, locale-aware with English fallback.
*
* @return String with filename.
*/
public String getExplanation() {
return documentation(s -> s.explanation().fileName());
return localizeFileName(documentation(s -> s.explanation().fileName()));
}

/**
* Returns filename of the hints for the challenge.
* Returns filename of the hints for the challenge, locale-aware with English fallback.
*
* @return String with filename.
*/
public String getHint() {
return documentation(s -> s.hint().fileName());
return localizeFileName(documentation(s -> s.hint().fileName()));
}

/**
* Returns filename of the reasons of the challenge.
* Returns filename of the reasons of the challenge, locale-aware with English fallback.
*
* @return String with filename.
*/
public String getReason() {
return documentation(s -> s.reason().fileName());
return localizeFileName(documentation(s -> s.reason().fileName()));
}

/**
Expand Down
22 changes: 22 additions & 0 deletions src/main/resources/explanations/challenge0_de.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
=== Eröffnungsherausforderung

Willkommen bei der Eröffnungsherausforderung von OWASP WrongSecrets!

In dieser Herausforderung erklären wir dir alles, was du wissen musst, um OWASP WrongSecrets zu spielen.

Bei jeder Herausforderung geht es darum, ein Geheimnis zu finden, das nicht gut versteckt und/oder konfiguriert wurde – in unserem https://github.com/OWASP/wrongsecrets[Anwendungscode], https://hub.docker.com/r/jeroenwillemsen/wrongsecrets[Docker-Container] oder in einem der verwandten Teile des https://github.com/OWASP/wrongsecrets#table-of-contents[Systems].

Sobald du das Geheimnis gefunden hast, kannst du es in das Eingabefeld unten eingeben und auf "Einreichen" klicken. Mit der Schaltfläche "Löschen" wird das Eingabefeld geleert.
Möchtest du die Herausforderung erneut spielen? Klicke auf die Schaltfläche "Zurücksetzen".

Die richtige Antwort lautet `The first answer`. Kopiere sie in das Feld und klicke auf "Einreichen".

Viel Spaß bei den schwierigeren Herausforderungen ;-).

Hinweis: Einige der folgenden Herausforderungen erfordern zusätzliche Tools. Möchtest du sie nicht selbst installieren? Du kannst einen Container verwenden:

[source, shell]
docker run -p 3000:3000 -v /var/run/docker.sock:/var/run/docker.sock jeroenwillemsen/wrongsecrets-desktop:latest


Gehe dann in deinem Browser zu http://localhost:3000[http://localhost:3000], um ein Webtop mit allen benötigten Tools zu finden.
22 changes: 22 additions & 0 deletions src/main/resources/explanations/challenge0_es.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
=== Desafío de apertura

¡Bienvenido al desafío de apertura de OWASP WrongSecrets!

En este desafío, te explicamos todo lo que necesitas saber para jugar OWASP WrongSecrets.

Cada desafío consiste en encontrar un secreto que no ha sido bien ocultado y/o configurado en nuestro https://github.com/OWASP/wrongsecrets[código de aplicación], https://hub.docker.com/r/jeroenwillemsen/wrongsecrets[contenedor Docker] o en una de las partes relacionadas del https://github.com/OWASP/wrongsecrets#table-of-contents[sistema].

Una vez que hayas encontrado el secreto, puedes introducirlo en el cuadro de abajo y presionar "Enviar". El botón "Borrar" limpiará el cuadro de entrada.
¿Quieres jugar el desafío de nuevo? Presiona el botón "Reiniciar".

La respuesta correcta es `The first answer`. Cópiala en el cuadro y presiona "Enviar".

Que te diviertas mucho con los desafíos más difíciles ;-).

Nota: algunos de los desafíos que siguen requieren herramientas adicionales. ¿No quieres instalarlas tú mismo? Puedes usar un contenedor:

[source, shell]
docker run -p 3000:3000 -v /var/run/docker.sock:/var/run/docker.sock jeroenwillemsen/wrongsecrets-desktop:latest


Luego, en tu navegador ve a http://localhost:3000[http://localhost:3000] para encontrar un webtop con todas las herramientas necesarias.
22 changes: 22 additions & 0 deletions src/main/resources/explanations/challenge0_fr.adoc

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merci!! Read it well , seems good but some formatting mistakes are present in it :

  1. Command Syntax: The docker string strings "-p" and "-v" shouldn't use double quotes inside a French text block, as it breaks standard command copy-pasting layouts. Let's strip the inner quotes in the code snippet.

  2. Link Formatting: The text string http://localhost:3000[http://localhost:3000] looks like a broken markup rendering error. It should be simplified to just a clean hyperlink.

  3. Punctuation: A space is missing before the quotation for La bonne réponse ci-dessous est...—adding a colon (:) there would align perfectly with French typographic standards.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will fix the desired changes and update my branch . Thanks for the review .

Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
=== Défi d'ouverture

Bienvenue dans le défi d'ouverture d'OWASP WrongSecrets !

Dans ce défi, nous vous expliquons tout ce que vous devez savoir pour jouer à OWASP WrongSecrets.

Chaque défi consiste à trouver un secret qui n'a pas été bien caché et/ou configuré dans notre https://github.com/OWASP/wrongsecrets[code d'application], https://hub.docker.com/r/jeroenwillemsen/wrongsecrets[conteneur Docker] ou dans l'une des parties connexes du https://github.com/OWASP/wrongsecrets#table-of-contents[système].

Une fois que vous avez trouvé le secret, vous pouvez le saisir dans le champ ci-dessous et cliquer sur « Soumettre ». Le bouton « Effacer » nettoiera le champ de saisie.
Vous souhaitez rejouer le défi ? Cliquez sur le bouton « Réinitialiser ».

La bonne réponse ci-dessous est : `The first answer`. Copiez-la dans le champ et cliquez sur « Soumettre ».

Amusez-vous bien avec les défis plus difficiles ;-).

Remarque : certains des défis suivants nécessitent des outils supplémentaires. Vous ne voulez pas les installer vous-même ? Vous pouvez utiliser un conteneur :

[source, shell]
docker run -p 3000:3000 -v /var/run/docker.sock:/var/run/docker.sock jeroenwillemsen/wrongsecrets-desktop:latest


Puis, dans votre navigateur, accédez à http://localhost:3000 pour trouver un webtop avec tous les outils requis.
1 change: 1 addition & 0 deletions src/main/resources/explanations/challenge0_hint_de.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Wenn du auf die Schaltfläche "Hinweise anzeigen" klickst, geben wir dir Hinweise, wie du diese spezifische Herausforderung lösen kannst.
1 change: 1 addition & 0 deletions src/main/resources/explanations/challenge0_hint_es.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Cuando presiones el botón "Mostrar pistas", te daremos pistas sobre cómo resolver ese desafío específico.
1 change: 1 addition & 0 deletions src/main/resources/explanations/challenge0_hint_fr.adoc

@S3DFX-CYBER S3DFX-CYBER Oct 5, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In French, for apps basically mobile apps the word ' appuyez ' is used , hence here we are basically using website so it should be ' cliquez ' to better match desktop user behavior. Also, to avoid repeating the word indices twice, we could use a slightly sleeker alternative.

Suggestion:
« Lorsque vous cliquez sur le bouton « Afficher les indices », nous vous expliquerons comment résoudre ce défi spécifique. »"

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Lorsque vous cliquez sur le bouton « Afficher les indices », nous vous expliquerons comment résoudre ce défi spécifique.
1 change: 1 addition & 0 deletions src/main/resources/explanations/challenge0_hint_nl.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Wanneer je op de knop "Toon hints" drukt, geven we je aanwijzingen over hoe je die specifieke uitdaging kunt oplossen.
1 change: 1 addition & 0 deletions src/main/resources/explanations/challenge0_hint_uk.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Коли ви натиснете кнопку «Показати підказки», ми дамо вам підказки щодо вирішення цього конкретного виклику.
22 changes: 22 additions & 0 deletions src/main/resources/explanations/challenge0_nl.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
=== Openingsuitdaging

Welkom bij de openingsuitdaging van OWASP WrongSecrets!

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Welkom bij de openingsuitdaging van OWASP WrongSecrets!
Welkom bij de eerste uitdaging van OWASP WrongSecrets!


In deze uitdaging leggen we je alles uit wat je nodig hebt om OWASP WrongSecrets te spelen.

Elke uitdaging gaat over het vinden van een geheim dat niet goed verborgen en/of geconfigureerd is in onze https://github.com/OWASP/wrongsecrets[applicatiecode], https://hub.docker.com/r/jeroenwillemsen/wrongsecrets[Docker-container], of in een van de gerelateerde onderdelen van het https://github.com/OWASP/wrongsecrets#table-of-contents[systeem].

Zodra je het geheim hebt gevonden, kun je het in het onderstaande invoervak plaatsen en op "Indienen" drukken. De knop "Wissen" maakt het invoervak leeg.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Zodra je het geheim hebt gevonden, kun je het in het onderstaande invoervak plaatsen en op "Indienen" drukken. De knop "Wissen" maakt het invoervak leeg.
Zodra je het geheim hebt gevonden, kun je het in het onderstaande invoervak plaatsen en op "Antwoord verzenden" drukken. De knop "Wissen" maakt het invoervak leeg.

Wil je de uitdaging opnieuw spelen? Druk op de knop "Opnieuw instellen".

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Wil je de uitdaging opnieuw spelen? Druk op de knop "Opnieuw instellen".
Wil je de uitdaging opnieuw spelen? Druk op de knop "Uitdaging resetten".


Het juiste antwoord hieronder is `The first answer`. Kopieer het in het invoervak en druk op "Indienen".

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Het juiste antwoord hieronder is `The first answer`. Kopieer het in het invoervak en druk op "Indienen".
Het juiste antwoord hieronder is `The first answer`. Kopieer het in het invoervak en druk op "Antwoord verzenden".


Veel plezier met de moeilijkere uitdagingen ;-).

Opmerking: sommige uitdagingen vereisen aanvullende tools. Wil je ze niet zelf installeren? Je kunt een container gebruiken:

[source, shell]
docker run -p 3000:3000 -v /var/run/docker.sock:/var/run/docker.sock jeroenwillemsen/wrongsecrets-desktop:latest


Ga vervolgens in je browser naar http://localhost:3000[http://localhost:3000] om een webtop te vinden met alle benodigde tools.
5 changes: 5 additions & 0 deletions src/main/resources/explanations/challenge0_reason_de.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
*Warum machen wir das?*

Mit diesem Projekt hoffen wir, dass du Spaß beim Suchen nach Geheimnissen hast. Gleichzeitig hoffen wir, dass du aus den Fehlern anderer Menschen im Bereich Geheimnismanagement lernst, damit du nicht dieselben Fehler machst.

Wusstest du, dass wir all diese Herausforderungen in der Praxis gesehen haben? Sie können daher eine große Hilfe sein, wenn du mehr Bounty-Hunting betreiben möchtest.
5 changes: 5 additions & 0 deletions src/main/resources/explanations/challenge0_reason_es.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
*¿Por qué hacemos esto?*

Con este proyecto, esperamos que te diviertas buscando secretos. Al mismo tiempo, esperamos que aprendas de los errores de otras personas en la gestión de secretos, para que no cometas los mismos errores.

¿Sabías que hemos visto todos estos desafíos en la práctica? Por lo tanto, pueden ser de gran ayuda si quieres hacer más caza de recompensas.
5 changes: 5 additions & 0 deletions src/main/resources/explanations/challenge0_reason_fr.adoc

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

few quick tweaks for better readability and a more natural tech-French tone:

• Change "dans la pratique" to "de cas réels" (sounds more authentic).

• Change "commettre les mêmes erreurs" to "commettre les mêmes" to remove the double repetition of the word erreurs.

• Replace the first "chasser" with "dénicher" to avoid repeating the "hunting" metaphor twice in the same text block.

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
*Pourquoi faisons-nous cela ?*

Avec ce projet, nous espérons que vous prendrez plaisir à dénicher les secrets. En même temps, nous espérons que vous apprendrez des erreurs des autres en matière de gestion des secrets, afin de ne pas commettre les mêmes.

Saviez-vous que nous avons repéré tous ces défis de cas réels ? Ils peuvent donc être d'une grande aide si vous souhaitez faire davantage de chasse aux bugs.
5 changes: 5 additions & 0 deletions src/main/resources/explanations/challenge0_reason_nl.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
*Waarom doen we dit?*

Met dit project hopen we dat je plezier hebt met het zoeken naar geheimen. Tegelijkertijd hopen we dat je leert over de fouten die anderen maken op het gebied van geheimenbeheer, zodat jij dezelfde fouten niet maakt.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bendehaan do we want to use the Dutch word "geheimenbeheer" or do we want to use the english term "Secrets management" here?


Wist je dat we al deze uitdagingen in de praktijk zijn tegengekomen? Ze kunnen daarom een grote hulp zijn als je meer aan bug bounty wilt doen.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Wist je dat we al deze uitdagingen in de praktijk zijn tegengekomen? Ze kunnen daarom een grote hulp zijn als je meer aan bug bounty wilt doen.
Wist je dat iedere uitdaging in deze app een voorbeeld uit de praktijk is? Ze kunnen daarom een grote hulp zijn als je meer aan bug bounty wilt doen.

5 changes: 5 additions & 0 deletions src/main/resources/explanations/challenge0_reason_uk.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
*Навіщо ми це робимо?*

Завдяки цьому проекту ми сподіваємося, що вам сподобається пошук секретів. Водночас ми сподіваємося, що ви навчитеся на помилках інших людей у сфері управління секретами, щоб не повторювати їх.

Чи знаєте ви, що ми зустріли всі ці виклики на практиці? Тому вони можуть стати великою підмогою, якщо ви хочете займатися пошуком вразливостей.
22 changes: 22 additions & 0 deletions src/main/resources/explanations/challenge0_uk.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
=== Вступний виклик

Ласкаво просимо до вступного виклику OWASP WrongSecrets!

У цьому виклику ми пояснюємо все, що вам потрібно знати для гри в OWASP WrongSecrets.

Кожен виклик полягає у знаходженні секрету, який не був добре прихований та/або налаштований у нашому https://github.com/OWASP/wrongsecrets[коді програми], https://hub.docker.com/r/jeroenwillemsen/wrongsecrets[контейнері Docker] або в одній з пов'язаних частин https://github.com/OWASP/wrongsecrets#table-of-contents[системи].

Коли ви знайдете секрет, введіть його у поле нижче та натисніть «Надіслати». Кнопка «Очистити» очистить поле введення.
Хочете зіграти знову? Натисніть кнопку «Скинути».

Правильна відповідь нижче — `The first answer`. Скопіюйте її у поле та натисніть «Надіслати».

Бажаємо успіхів у складніших викликах ;-).

Примітка: деякі наступні виклики потребують додаткових інструментів. Не хочете встановлювати їх самостійно? Скористайтеся контейнером:

[source, shell]
docker run -p 3000:3000 -v /var/run/docker.sock:/var/run/docker.sock jeroenwillemsen/wrongsecrets-desktop:latest


Потім у браузері перейдіть на http://localhost:3000[http://localhost:3000], щоб знайти webtop з усіма необхідними інструментами.
3 changes: 3 additions & 0 deletions src/main/resources/explanations/challenge10-azure_de.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
=== Azure Key Vault Teil 2

Das Geheimnis ist nun randomisiert und direkt im Cloud-Secrets-Manager gespeichert. Wir binden es noch über den https://secrets-store-csi-driver.sigs.k8s.io[CSI-Treiber] an den K8s-Pod... Kannst du darauf zugreifen?
3 changes: 3 additions & 0 deletions src/main/resources/explanations/challenge10-azure_es.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
=== Azure Key Vault parte 2

El secreto ahora está aleatorizado y almacenado directamente en el gestor de secretos de la nube. Todavía lo montamos en el pod K8s a través del https://secrets-store-csi-driver.sigs.k8s.io[controlador CSI]... ¿Puedes acceder a él?
3 changes: 3 additions & 0 deletions src/main/resources/explanations/challenge10-azure_fr.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### Azure Key Vault partie 2

Le secret est désormais généré de manière aléatoire et stocké directement dans le Secret Manager cloud. Nous le montons toujours dans le pod K8s via le [pilote CSI](https://secrets-store-csi-driver.sigs.k8s.io)... Pouvez-vous y accéder ?
3 changes: 3 additions & 0 deletions src/main/resources/explanations/challenge10-azure_nl.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
=== Azure Key Vault deel 2

Het geheim is nu gerandomiseerd en direct opgeslagen in de cloud secrets manager. We koppelen het nog steeds aan de K8s-pod via de https://secrets-store-csi-driver.sigs.k8s.io[CSI-driver]... Kun je het openen?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Het geheim is nu gerandomiseerd en direct opgeslagen in de cloud secrets manager. We koppelen het nog steeds aan de K8s-pod via de https://secrets-store-csi-driver.sigs.k8s.io[CSI-driver]... Kun je het openen?
Het geheim is nu gerandomiseerd en direct opgeslagen in de Azure Key Vault. We koppelen het nog steeds aan de K8s-pod via de https://secrets-store-csi-driver.sigs.k8s.io[CSI-driver]... Kun je het terug vinden?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It almos looks like it took the AWS texts and tried to conver that, can you please doublecheck the other langauges for challenge 10?

Loading
Loading