Skip to content

Commit

Permalink
Added lesson (no content yet) for explaining nist password standards.
Browse files Browse the repository at this point in the history
  • Loading branch information
BenediktStuhrmann authored and nbaars committed Mar 26, 2019
1 parent b02a01d commit 91e6f70
Show file tree
Hide file tree
Showing 10 changed files with 110 additions and 2 deletions.
3 changes: 2 additions & 1 deletion webgoat-lessons/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,12 @@
<module>vulnerable-components</module>
<module>webgoat-introduction</module>
<module>webwolf-introduction</module>
<module>auth-bypass</module>
<module>auth-bypass</module>
<module>missing-function-ac</module>
<module>csrf</module>
<module>password-reset</module>
<module>ssrf</module>
<module>secure-passwords</module>
<!-- uncomment below to include lesson template in build, also uncomment the dependency in webgoat-server/pom.xml to have it run in the project fully -->
<!--<module>webgoat-lesson-template</module>-->
</modules>
Expand Down
11 changes: 11 additions & 0 deletions webgoat-lessons/secure-passwords/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>secure-passwords</artifactId>
<packaging>jar</packaging>
<parent>
<groupId>org.owasp.webgoat.lesson</groupId>
<artifactId>webgoat-lessons-parent</artifactId>
<version>v8.0.0.SNAPSHOT</version>
</parent>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package org.owasp.webgoat.plugin;

import com.beust.jcommander.internal.Lists;
import org.owasp.webgoat.lessons.Category;
import org.owasp.webgoat.lessons.NewLesson;

import java.util.List;

/**
* @author BenediktStuhrmann
* @since 12/2/18.
*/
public class SecurePasswords extends NewLesson {

@Override
public Category getDefaultCategory() {
return Category.AUTHENTICATION;
}

@Override
public List<String> getHints() {
return Lists.newArrayList();
}

@Override
public Integer getDefaultRanking() {
return 3;
}

@Override
public String getTitle() {
return "secure-passwords.title";
}

@Override
public String getId() {
return "SecurePasswords";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!DOCTYPE html>

<html xmlns:th="http://www.thymeleaf.org">

<div class="lesson-page-wrapper">
<div class="adoc-content" th:replace="doc:SecurePasswords_intro.adoc"></div>
</div>

<div class="lesson-page-wrapper">
<div class="adoc-content" th:replace="doc:SecurePasswords_1.adoc"></div>
</div>

</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
secure-passwords.title=Secure Passwords
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"questions": [{
"text": "How could an intruder harm the security goal of confidentiality?",
"solutions": {
"1": "By deleting all the databases.",
"2": "By stealing a database where general configuration information for the system is stored.",
"3": "By stealing a database where names and emails are stored and uploading it to a website.",
"4": "Confidentiality can't be harmed by an intruder."
}
}, {
"text": "How could an intruder harm the security goal of integrity?",
"solutions": {
"1": "By changing the names and emails of one or more users stored in a database.",
"2": "By listening to incoming and outgoing network traffic.",
"3": "By bypassing authentication mechanisms that are in place to manage database access.",
"4": "Integrity can only be harmed when the intruder has physical access to the database storage."
}
}, {
"text": "How could an intruder harm the security goal of availability?",
"solutions": {
"1": "By exploiting bugs in the systems software to bypass authentication mechanisms for databases.",
"2": "By redirecting emails with sensitive data to other individuals.",
"3": "Availability can only be harmed by unplugging the power supply of the storage devices.",
"4": "By launching a denial of service attack on the servers."
}
}, {
"text": "What happens if at least one of the CIA security goals is harmed?",
"solutions": {
"1": "A system can be considered safe until all the goals are harmed. Harming one goal has no effect on the systems security.",
"2": "The systems security is compromised even if only one goal is harmed.",
"3": "It's not that bad when an attacker reads or changes data, at least some data is still available, hence only when the goal of availability is harmed the security of the system is compromised.",
"4": "It shouldn't be a problem if an attacker changes data or makes it unavailable, but reading sensitive data is not tolerable. Theres only a problem when confidentiality is harmed."
}
}]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
== 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
== Secure Passwords

Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ sql-injection.10b.success=<span class='feedback-positive'>You did it! Your code
sql-injection.10b.failed=<span class='feedback-negative'>Something doesn't seem right with that code. Maybe you should look at an example how to prevent SQL Injections with JDBC?</span>
sql-injection.10b.no-code=<span class='feedback-negative'>You need to write some code.</span>
sql-injection.10b.compiler-errors=<span class='feedback-negative'>Couldn't compile code:</span>

SqlStringInjectionHint.10.1=Use the techniques that you have learned before.
SqlStringInjectionHint.10.2=The application takes your input and filters for entries that are LIKE it.
SqlStringInjectionHint.10.3=Try query chaining to reach the goal.
Expand Down
5 changes: 5 additions & 0 deletions webgoat-server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,11 @@
<artifactId>ssrf</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.owasp.webgoat.lesson</groupId>
<artifactId>secure-passwords</artifactId>
<version>${project.version}</version>
</dependency>

<!--uncommment below to run/include lesson template in WebGoat Build-->
<!--<dependency>-->
Expand Down

0 comments on commit 91e6f70

Please sign in to comment.