Restructured the baseline to remove extra src/main directory structure. Added eclipes project file
git-svn-id: http://webgoat.googlecode.com/svn/branches/webgoat-6.0@485 4033779f-a91e-0410-96ef-6bf7bf53c507
This commit is contained in:
15
webapp/lesson_plans/German/BasicAuthentication.html
Normal file
15
webapp/lesson_plans/German/BasicAuthentication.html
Normal file
@ -0,0 +1,15 @@
|
||||
<div align="Center">
|
||||
<p><b>Lehrplan:</b> Basic Authentication </p>
|
||||
</div>
|
||||
<p><b>Lehrinhalt:</b></p>
|
||||
<!-- Start Instructions -->
|
||||
"Basic Authentication" wird benutzt um Server-seitige Resource zu sch<63>tzen. Wird eine Anfrage an eine gesch<63>tzte Resource gestellt, so sendet der Webserver ein "401 authentication request" mit der Antwort auf diese Anfrage.
|
||||
Dann fragt, auf der Client Seite, der Browser den Benutzer mittels einer Dialogbox nach Benutzername und Passwort f<>r diese Resource.
|
||||
Der Browser enkodiert Benutzername und Passwort mit base64 und sendet diese Zugangsdaten zum Webserver.
|
||||
Daraufhin validiert der Webserver Benutzername und Passwort und gibt als Antwort die angeforderte Resource zur<75>ck falls die <20>bermittelten Zugangsdaten korrekt sind.
|
||||
Die Zugangsdaten werden vom Browser bei jedem weiteren Zugriff auf gesch<63>tzte Resourcen mitgesendet ohne dass der Benutzer
|
||||
sie ein weiteres Mal eingeben muss.<br/>
|
||||
<br/>
|
||||
<p><b>Grundsätzliche(s) Ziel(e):</b></p>
|
||||
Das Ziel dieser Lektion ist es "Basic Authentication" zu verstehen und die folgenden Fragen zu beantworten.
|
||||
<!-- Stop Instructions -->
|
16
webapp/lesson_plans/German/CommandInjection.html
Normal file
16
webapp/lesson_plans/German/CommandInjection.html
Normal file
@ -0,0 +1,16 @@
|
||||
<div align="Center">
|
||||
<p><b>Lehrplan:</b> Einschleusen von Programmcode</p>
|
||||
</div>
|
||||
<p><b>Konzept:</b></p>
|
||||
|
||||
Das Einschleusen von Programmcode stellt eine ernst zu nehmende Bedrohung f<>r dynamische Webseiten dar. Entsprechende Angriffe
|
||||
sind leicht zu lernen und der verursachte Schaden ist schwer bzw. entspricht der Kompromittierung des kompletten Systems.
|
||||
Trotz dieses Gefahrenpotentials ist eine unglaubliche Anzahl von Systemen im Internet f<>r diese Form des Angriffs verwundbar.
|
||||
Dieser Angriff ist zwar leicht durchzuf<75>hren, allerdings ist er auch mit ein wenig gesundem Menschenverstand und Vorausdenken
|
||||
leicht zu verhindern. Die anerkannte Vorgehensweise zur Verhinderung dieser Angriffstypen
|
||||
besteht darin alle Eingabedaten zu s<>ubern, insbesondere die Daten die in Betriebssystembefehlen,
|
||||
Skripten und Datenbankabfragen eingebaut werden.
|
||||
<p><b>Grundsätzliche(s) Ziel(e):</b></p>
|
||||
<!-- Start Instructions -->
|
||||
Schleusen Sie einen Befehl in das darunterliegende Betriebssystem ein.
|
||||
<!-- Stop Instructions -->
|
14
webapp/lesson_plans/German/HiddenFieldTampering.html
Normal file
14
webapp/lesson_plans/German/HiddenFieldTampering.html
Normal file
@ -0,0 +1,14 @@
|
||||
<div align="Center">
|
||||
<p><b>Lehrplan:</b> Versteckte Felder ausnutzen </p>
|
||||
</div>
|
||||
<p><b>Konzept:</b> </p>
|
||||
<!-- Start Instructions -->
|
||||
Entwickler benutzen versteckte Formularfelder zur Besucherverfolgung, f<>r den Login, f<>r Preisinformationen und andere
|
||||
Informationen. Dies ist ein sehr einfacher und bequemer Mechnismus f<>r Entwickler, allerdings werden die Werte
|
||||
diese Felder nur selten gepr<70>ft bevor sie benutzt werden. In dieser Lektion lernt man wie man versteckte Felder
|
||||
zu seinem Vorteil manipulieren kann.
|
||||
|
||||
<br>
|
||||
<!-- Stop Instructions -->
|
||||
<p><b>Grundsätzliche(s) Ziel(e):</b> </p>
|
||||
Nutzen Sie ein verstecktes Formularfeld aus, um den HD Fernseher zu einem falschen Preis zu kaufen.
|
13
webapp/lesson_plans/German/HtmlClues.html
Normal file
13
webapp/lesson_plans/German/HtmlClues.html
Normal file
@ -0,0 +1,13 @@
|
||||
<div align="Center">
|
||||
<p><b>Lehrplan:</b> N<>tzliche Hinweise in HTML entdecken. </p>
|
||||
</div>
|
||||
|
||||
<p><b>Konzept:</b> </p>
|
||||
<!-- Start Instructions -->
|
||||
Entwickler lassen oftmals Kommentare wie FIXME's, TODO's, Code Broken, Hack usw. im Quellcode.
|
||||
Durchsuchen Sie den Quellcode nach allem was f<>r Sie nach Passw<73>rtern, Hintert<72>ren oder anderen Unregelm<6C><6D>igkeiten aussieht.
|
||||
<!-- Stop Instructions -->
|
||||
|
||||
<br>
|
||||
<p><b>Grundsätzliche(s) Ziel(e):</b> </p>
|
||||
Sie suchen und finden Hinweise im Quellcode die es Ihnen erlauben sich anzumelden.
|
29
webapp/lesson_plans/German/HttpBasics.html
Normal file
29
webapp/lesson_plans/German/HttpBasics.html
Normal file
@ -0,0 +1,29 @@
|
||||
<div align="Center">
|
||||
<p><b>Lehrplan:</b> Http Basics </p>
|
||||
</div>
|
||||
|
||||
<p><b>Lehrinhalt:</b> </p>
|
||||
Diese Lektion stellt die Verständnis-Grundlagen für den Datentransport zwischen Browser und Webapplikation dar.<br>
|
||||
<div align="Left">
|
||||
<p>
|
||||
<b>So funktioniert HTTP:</b>
|
||||
</p>
|
||||
Alle HTTP Transaktionen folgen demselben Schema. Jede Anfrage vom Client und jede Antwort des Servers besteht aus drei Teilen: Der Anfrage-/Antwortzeile, dem Kopf und dem K<>rper.
|
||||
Der Client initiiert eine Transaktion wie folgt:<br>
|
||||
<br>
|
||||
Der Client kontaktiert den Server und sendet eine Dokumentenanfrage<br>
|
||||
</div>
|
||||
<br>
|
||||
<ul>GET /index.html?param=value HTTP/1.0</ul>
|
||||
Als nächstes sendet der Client optionale Kopfzeilen (Header) um den Server über die Client-seitige Konfiguration und die akzeptierten Dokumentenformate zu informieren.<br>
|
||||
<br>
|
||||
<ul>User-Agent: Mozilla/4.06 Accept: image/gif,image/jpeg, */*</ul>
|
||||
Nachdem der eigentliche Anfrage (Request) und den weiteren Kopfzeilen (Header) kann der Client noch weitere Daten senden. Diese Daten werden meistens von CGI Programmen im Zusammenhang mit der POST Methode ausgewertet.
|
||||
<br>
|
||||
<p><b>Grundsätzliche(s) Ziel(e):</b> </p>
|
||||
<!-- Start Instructions -->
|
||||
Geben Sie Ihren Namen in das Eingabefeld ein und dr<64>cken sie "Los gehts!" um die Anfrage abzuschicken. Der Server wird die Anfrage akzeptieren, Ihre Eingabedaten umdrehen, und wieder zu Ihnen zur<75>ckschicken. Dies stellt eine vollständige HTTP Transaktion dar!
|
||||
<br/><br/>
|
||||
Sie sollten mit der Benutzung von WebGoat vertraut werden. Es sollten die Kn<4B>pfe für Hinweise (Hints), für das Anzeigen von Parametern(Parameters) oder Cookies und für das Anzeigen von Java-Quellcode ausprobiert werden.
|
||||
Au<EFBFBD>erdem, können Sie hier WebScarab gut ausprobieren.
|
||||
<!-- Stop Instructions -->
|
19
webapp/lesson_plans/German/JavaScriptValidation.html
Normal file
19
webapp/lesson_plans/German/JavaScriptValidation.html
Normal file
@ -0,0 +1,19 @@
|
||||
<div align="Center">
|
||||
<p><b>Lehrplan:</b> Client-seitige JavaScript Validierung umgehen</p>
|
||||
</div>
|
||||
<p><b>Konzept:</b> </p>
|
||||
|
||||
Client-seitige Validierung sollte nicht als eine sichere Ma<4D>nahme zur Validierung von Parametern angesehen werden.
|
||||
Diese Art der Validierung kann h<>chstens den Server entlasten und verhindern das normale Benutzer Eingabedaten in
|
||||
einem falschen Format absenden. Angreifer hingegen, k<>nnen diesen Mechanismus auf verschiedene Arten umgehen. Jede
|
||||
Client-seitige Validierung sollte auf der Serverseite wiederholt werden. Dies verhindert, dass unsichere Parameter
|
||||
in der Applikation benutzt werden.
|
||||
|
||||
<br>
|
||||
<p><b>Grundsätzliche(s) Ziel(e):</b> </p>
|
||||
<!-- Start Instructions -->
|
||||
Das untenstehende Formular verlangt von Ihnen verschiedene Regeln beim Ausf<73>llen einzuhalten. Dies wird Client-seitig
|
||||
<EFBFBD>berpr<EFBFBD>ft. Versuchen Sie diese
|
||||
Regeln zu brechen und senden Sie Daten an die Webseite die die Webseite nicht erwartet! <b> Sie m<>ssen alle 7 Regeln
|
||||
gleichzeitig brechen! </b>
|
||||
<!-- Stop Instructions -->
|
17
webapp/lesson_plans/German/LogSpoofing.html
Normal file
17
webapp/lesson_plans/German/LogSpoofing.html
Normal file
@ -0,0 +1,17 @@
|
||||
<div align="Center">
|
||||
<p><b>Lehrplan:</b> F<>lschen von Eintr<74>gen in Log Dateien (Log Spoofing) </p>
|
||||
</div>
|
||||
|
||||
<p><b>Konzept:</b> </p>
|
||||
<p>
|
||||
Log-Eintr<74>ge in Log-Dateien m<>ssen nicht immer von tats<74>chlichen Ereignissen stammen. Ein Angreifer kann durch Einschleusen
|
||||
bestimmter Eintr<74>ge das Eintreten bestimmter Ereignisse vort<72>uschen und dadurch den Administrator zu unn<6E>tigen bzw. voreiligen
|
||||
Handlungen verleiten bzw. ihn einfach nur verwirren.
|
||||
</p>
|
||||
|
||||
<p><b>Grundsätzliche(s) Ziel(e):</b> </p>
|
||||
<!-- Start Instructions -->
|
||||
* Der graue Bereich steht f<>r das was tats<74>chlich in der Log-Datei des Webservers erscheint.<br>
|
||||
* Ihr Ziel ist es so aussehen zu lassen, als h<>tte sich der Benutzer "admin" erfolgreich eingeloggt.<br/>
|
||||
* Verbessern Sie Ihren Angriff, indem Sie ein Skript (Javascript) in das Log schreiben.
|
||||
<!-- Stop Instructions -->
|
11
webapp/lesson_plans/German/PathBasedAccessControl.html
Normal file
11
webapp/lesson_plans/German/PathBasedAccessControl.html
Normal file
@ -0,0 +1,11 @@
|
||||
<div align="Center">
|
||||
<p><b>Lehrplan:</b> Umgehen eines Pfad-basierten Zugangskontrollschemas</p>
|
||||
</div>
|
||||
<p><b>Konzept:</b> </p>
|
||||
<!-- Start Instructions -->
|
||||
In einem Pfad-basierten Zugangangskontrollschemas (path based access control scheme), kann ein Angreifer den Pfad "bewandern" indem
|
||||
er relative Pfadangaben <20>bergibt. Dadurch kann der Angreifer auf Dateien zugreifen, die f<>r niemanden zug<75>nglich sind, bzw. zu denen
|
||||
der Zugang bei direkter Anfrage ansonsten abgelehnt w<>rde.
|
||||
<!-- Stop Instructions -->
|
||||
<p><b>Grundsätzliche(s) Ziel(e):</b> </p>
|
||||
Sie sollten in der Lage sein auf eine Datei zuzugreifen die sich nicht im aufgelisteten Verzeichnis befindet.
|
19
webapp/lesson_plans/German/ReflectedXSS.html
Normal file
19
webapp/lesson_plans/German/ReflectedXSS.html
Normal file
@ -0,0 +1,19 @@
|
||||
<div align="Center">
|
||||
<p><b>Lehrplan: </b>Cross Site Scripting (XSS)</p>
|
||||
</div>
|
||||
<p><b>Konzept:</b> </p>
|
||||
|
||||
Jegliche Eingabedaten sollten auf der Serverseite <20>berpr<70>ft werden.
|
||||
XSS passiert wenn nicht gepr<70>fte Benutereingaben in eine HTTP Response eingebaut werden.
|
||||
Bei einem reflektierten XSS Angriff, kann ein Angreifer eine URL erzeugen die ein Angriffsskript enth<74>lt und kann diese
|
||||
URL auf einer Webseite hinterlegen, sie per Email verschicken oder ein Opfer auf eine andere Weise dazu bringen die
|
||||
URL zu besuchen.
|
||||
|
||||
|
||||
|
||||
<p><b>General Goal(s):</b> </p>
|
||||
<!-- Start Instructions -->
|
||||
Ihre Aufgabe ist es, sich ein St<53>ck Javascript zu <20>berlegen das Sie in diese Seite einbauen k<>nnen.
|
||||
Dann versuchen Sie die Seite dazu zu bringen, Ihnen dieses Skript wieder auszulieferen (es zu reflektieren)
|
||||
so dass das Skript in Ihrem Browser ausgef<65>hrt wird.
|
||||
<!-- Stop Instructions -->
|
16
webapp/lesson_plans/German/RemoteAdminFlaw.html
Normal file
16
webapp/lesson_plans/German/RemoteAdminFlaw.html
Normal file
@ -0,0 +1,16 @@
|
||||
<div align="Center">
|
||||
<p><b>Lehrplan: </b>Zugang zu Web-Resourcen erzwingen</p>
|
||||
</div>
|
||||
<p><b>Konzept::</b> </p>
|
||||
Applikationen haben oftmals eine Administrationsschnittstelle, das priviligierten Benutzern Zugang zu Funktionalit<69>t erm<72>glicht die
|
||||
f<EFBFBD>r normale Benutzer nicht sichtbar ist. Der Applikationsserver selbst hat auch oft noch eine seperate Administrationsschnittstelle.
|
||||
|
||||
<p><b>Grundsätzliche(s) Ziel(e):</b>
|
||||
<!-- Start Instructions -->
|
||||
Versuchen Sie auf die Administrationsschnittstelle von WebGoat zuzugreifen. Sie k<>nnen auch versuchen auf die Administrationsschnittstelle
|
||||
von Tomcat (der Applikationsserver) zuzugreifen. Die Tomcat Schnittstelle kann <20>ber die URL /admin erreicht werden, z<>hlt aber nicht
|
||||
f<EFBFBD>r das Bestehen dieser Lektion.
|
||||
Wenn Sie Zugriff auf Funktionalit<69>t der Administrationsschnittstelle erlangt haben, dann kommen Sie hierher zur<75>ck um zu sehen ob Sie
|
||||
die Lektion abgeschlossen haben.
|
||||
<!-- Stop Instructions -->
|
||||
</p>
|
18
webapp/lesson_plans/German/SqlNumericInjection.html
Normal file
18
webapp/lesson_plans/German/SqlNumericInjection.html
Normal file
@ -0,0 +1,18 @@
|
||||
<div align="Center">
|
||||
<p><b>Lehrplan:</b> Durchf<68>hrung von Numeric SQL Injection </p>
|
||||
</div>
|
||||
|
||||
<p><b>Konzept:</b> </p>
|
||||
SQL Injection Angriffe stellen eine ernstzunehmende Bedrohung f<>r alle Datenbank-getriebenen Webseiten dar.
|
||||
Entsprechende Angriffe sind leicht zu lernen und der verursachte Schaden ist schwer bzw. entspricht der
|
||||
Kompromittierung des kompletten Systems.
|
||||
Trotz dieses Gefahrenpotentials ist eine unglaubliche Anzahl von Systemen im Internet f<>r diese Form des Angriffs verwundbar.
|
||||
Dieser Angriff ist zwar leicht durchzuf<75>hren, allerdings ist er auch mit ein wenig gesundem Menschenverstand und Vorausdenken
|
||||
leicht zu verhindern. Die anerkannte Vorgehensweise zur Verhinderung dieser Angriffstypen
|
||||
besteht darin alle Eingabedaten zu s<>ubern, insbesondere die Daten die in Betriebssystembefehlen,
|
||||
Skripten und Datenbankabfragen eingebaut werden.
|
||||
<p><b>Grundsätzliche(s) Ziel(e):</b> </p>
|
||||
<!-- Start Instructions -->
|
||||
Das untenstehende Formular erm<72>glicht es dem Benutzer Wetterdaten zu betrachten. Versuchen Sie einen SQL String einzuschleusen, der
|
||||
als Resultat alle Wetterdaten anzeigt.
|
||||
<!-- Stop Instructions -->
|
20
webapp/lesson_plans/German/SqlStringInjection.html
Normal file
20
webapp/lesson_plans/German/SqlStringInjection.html
Normal file
@ -0,0 +1,20 @@
|
||||
<div align="Center">
|
||||
<p><b>Lehrplan:</b> Durchf<68>hrung von String SQL Injection</p>
|
||||
</div>
|
||||
|
||||
<p><b>Konzept:</b> </p>
|
||||
|
||||
SQL Injection Angriffe stellen eine ernstzunehmende Bedrohung f<>r alle Datenbank-getriebenen Webseiten dar.
|
||||
Entsprechende Angriffe sind leicht zu lernen und der verursachte Schaden ist schwer bzw. entspricht der
|
||||
Kompromittierung des kompletten Systems.
|
||||
Trotz dieses Gefahrenpotentials ist eine unglaubliche Anzahl von Systemen im Internet f<>r diese Form des Angriffs verwundbar.
|
||||
Dieser Angriff ist zwar leicht durchzuf<75>hren, allerdings ist er auch mit ein wenig gesundem Menschenverstand und Vorausdenken
|
||||
leicht zu verhindern. Die anerkannte Vorgehensweise zur Verhinderung dieser Angriffstypen
|
||||
besteht darin alle Eingabedaten zu s<>ubern, insbesondere die Daten die in Betriebssystembefehlen,
|
||||
Skripten und Datenbankabfragen eingebaut werden.
|
||||
<p><b>Grundsätzliche(s) Ziel(e):</b> </p>
|
||||
<!-- Start Instructions -->
|
||||
Das untenstehende Formular erlaubt es Benutzern ihre Kreditkartennummern anzuzeigen. Das k<>nnen Sie
|
||||
exemplarisch mit dem Benutzernamen "Smith" ausprobieren.
|
||||
Versuchen Sie einen SQL String einzuschleusen, der als Resultat alle Kreditkartennummern anzeigt.
|
||||
<!-- Stop Instructions -->
|
16
webapp/lesson_plans/German/StoredXss.html
Normal file
16
webapp/lesson_plans/German/StoredXss.html
Normal file
@ -0,0 +1,16 @@
|
||||
<div align="Center">
|
||||
<p><b>Lehrplan:</b> Durchf<68>hren von Stored Cross Site Scripting (XSS) </p>
|
||||
</div>
|
||||
<p><b>Konzept:</b> </p>
|
||||
|
||||
Man sollte Eingabedaten immer s<>ubern, besonders diese die sp<73>ter als parameter f<>r Betriebssystembefehle, Skripte
|
||||
und Datenbankabfragen benutzt werden. Essentiell ist das f<>r Inhalt der irgendwo in der Applikation permanent gespeichert
|
||||
wird. Benutzer sollten nicht in der Lage sein eigene Inhalte zu hinterlassen, durch die andere Nutzer ungew<65>nschte
|
||||
Seiten oder Inhalte nachladen wenn der Inhalt betrachtet wird.
|
||||
|
||||
|
||||
<p><b>Grundsätzliche(s) Ziel(e):</b> </p>
|
||||
<!-- Start Instructions -->
|
||||
Hinterlassen Sie Inhalt der den Browser eines anderen Benutzers dazu bringt eine unerw<72>nschte
|
||||
Seite bzw. Inhalt anzuzeigen.
|
||||
<!-- Stop Instructions -->
|
22
webapp/lesson_plans/German/WeakAuthenticationCookie.html
Normal file
22
webapp/lesson_plans/German/WeakAuthenticationCookie.html
Normal file
@ -0,0 +1,22 @@
|
||||
<div align="Center">
|
||||
<p><b>Lehrplan:</b> Einen Authentisierungs Cookie fa¨lschen</p>
|
||||
</div>
|
||||
|
||||
<p><b>Lehrinhalt:</b> </p>
|
||||
|
||||
Viele Webapplikationen erlauben es einem Benutzer sofort eingeloggt zu sein, sobald der Benutzer den richtigen Authentisierungs Cookie <20>bergibt.
|
||||
Manchmal kann der richtige Wert dieses Cookies geraten werden, wenn der Algorithmus zur Generierung dieser Cookies bekannt ist.
|
||||
Der Cookie kann auch von dem Computer des Benutzers gestohlen werden indem andere Schwachstellen in seinem System ausgenutzt werden.
|
||||
Mittels Cross Site Scripting (XSS) kann der Cookie auch abgefangen werden.
|
||||
Diese <20>bung soll Sie auf das Thema der Authentisierungs Cookies aufmerksam machen und gibt Ihnen
|
||||
die M<>glichkeit die Authentisierungsmethode dieser Lektion zu <20>berwinden.
|
||||
|
||||
|
||||
|
||||
<p><b>Grundsätzliche(s) Ziel(e):</b> </p>
|
||||
<!-- Start Instructions -->
|
||||
Es ist Ihre Aufgabe die Authentisierung zu umgehen. Melden Sie sich mit dem Benutzernamen "webgoat" und dem Passwort "webgoat" an
|
||||
und schauen Sie was passiert. Sie k<>nnen auch versuchen Sich mit aspect/aspect anzumelden. Wenn Sie den Authentisierungs Cookie verstehen,
|
||||
versuchen Sie Ihre Identit<69>t zu "alice" zu wechseln.
|
||||
|
||||
<!-- Stop Instructions -->
|
Reference in New Issue
Block a user