Skip to content

Latest commit

 

History

History
79 lines (60 loc) · 3.33 KB

owasp-webgoat.md

File metadata and controls

79 lines (60 loc) · 3.33 KB

Oppgaver til OWASP Top 10 - OWASP WebGoat

Kom i gang

  1. Last ned WebGoat med docker: docker pull webgoat/webgoat
  2. docker run -p 8080:8080 -p 9090:9090 -p 80:8888 -e TZ=Europe/Amsterdam webgoat/webgoat:latest
  3. Gå til http://localhost:8080/WebGoat

Oppgaver - Hint 💡

A01 - Broken Access Control

Insecure direct object reference

  • Denne oppgaven bygger på flaks, så gjør den på eget ansvar
Løsningsforslag ⚠️
  • Send en request så du kan inspisere den og se verdien til hijack_cookie
  • Inkrementer med +1 på første del til du finner en gyldig sesjon

Insecure direct object reference

  • Bruk nettverksfanen eller et verktøy for å inspisere og endre requester - Firefox har god støtte for endring
  • Gjør kall med forskjellige id-er for å finne en annen profil
  • Bruk PUT for å endre en annen profil (husk content-type)
Løsningsforslag ⚠️
  1. Skriv inn brukernavn tom og passord cat
  2. Bruk nettverkstaben til å inspisere en request som går til profile
  3. Requesten i forrige oppgave gikk til /IDOR/profile. Da kan vi prøve med /IDOR/profile/<userId fra forrige oppgave>
  4. Gjør et kall til en annen id for å finne noen andres profil: gjør en request og inspiser den i nettverkstaben. Prøv å bytt ut id-en med noen tall ved å inkrementere din egen id et par ganger

Missing function level access control

  • Inspiser skjulte elementer
  • Gjør et GET-kall mot /access-control/users
Løsningsforslag ⚠️
  1. Inspiser de skjulte elementene Users og Config
  2. Gjør et kall mot /users og finn hashen til admin-brukeren

Spoofing an authentication code

A03 - Injection

Cross Site Scripting

  • Målet er å få siden til å gjøre noe den ikke vil
  • Oppgave 3-6 er bare tekst, så du kan hoppe rett til oppgave 7
Løsningsforslag ⚠️
  1. Skriv for eksempel inn <script>alert()</script> i kredittkortfeltet siden kredittkortinfoen printes på siden
  2. Inspiser kildekoden (source) og finn goatApp/View/GoatRouter.js. Let etter en route for test
  3. Målet er å trigge funksjonen via url. Gå til http://localhost:8080/WebGoat/start.mvc#test/<script>webgoat.customjs.phoneHome()<%2Fscript> i en annen tab og ha konsollen oppe (%2F er HTML-enkodingen av /)

Injection (intro)

Løsningsforslag ⚠️
  1. Skriv inn noe i det første feltet og 0 OR 1=1 i det siste feltet
  2. Skriv inn noe i det første feltet og ' OR '1' = '1 i det siste feltet
  3. Skriv inn noe i det første feltet og '; UPDATE employees SET salary=99999 WHERE first_name='John i det siste feltet
  4. %'; DROP TABLE access_log;--

A07 - Identification and authentication failures

Authentication Bypasses

JWT Tokens

Password reset

A08 - Software and data integrity

Insecure Deserialization

A09 - Security logging and monitoring failures

Logging security

A10 - Server side request forgery (SSRF)

Cross-Site Request Forgeries

Server-Side Request Forgery