Skip to main content
In dit onderdeel ging het over autorisatiegrenzen en informatielekken. Burp Suite was vooral nuttig om requests te bekijken, te wijzigen en verschillen tussen responses te begrijpen.

In een oogopslag

TechniekConcept
Burp Suiterequest onderscheppen -> param/header/body aanpassen -> forwarden
IDORobject-ID’s manipuleren: ?id=1 -> 2, /profile/{id}
Client-side bypasshidden fields, JS-validatie, ?admin=true
CookiesAdmin=false -> true
robots.txtverborgen admin-panels
Directory listingbladeren in een map (/ftp, /data)
Directory traversal?file=../../../etc/passwd
Backup & .git.bak, /.git/config, /.git/logs
Error messagesverkeerd type -> lekt data

Burp Suite - setup

1

Proxy + certificaat

Browser-proxy instellen en Burp CA-certificaat importeren (voor HTTPS).
2

Localhost intercepten (Firefox)

about:config -> network.proxy.allow_hijacking_localhost = true.
3

Intercept & forward

Request pauzeren, aanpassen, doorsturen. Bekijk alles terug in HTTP history.
Browsercache kan requests verbergen. Een hard refresh (CTRL+F5) gaf in de les vaak een verse request.

Technieken in detail

  • Numerieke ID’s op-/aflopen: getUser.php?id=1, /files/12100.txt
  • ID achter een route plakken: /IDOR/profile/2342384
  • orderID=, creatorID, ?name= -> verander de waarde (bv. naar admin)
  • Let op gehashte ID’s (bv. MD5 van het nieuwe getal)
  • Gat in een reeks = grote tell: bij file1/2/4/5/6 is file3 interessant
  • Hidden form fields -> waarde aanpassen in Burp
  • JS-validatie -> omzeilen door de request direct te sturen
  • URL/POST-parameters: ?admin=true, is_admin=True, home.php?admin=true
  • Rechten staan soms gewoon in een cookie: Admin=false -> Admin=true
  • Daarna naar /admin browsen
  • /robots.txt -> Disallow:-regels verraden verborgen mappen
  • Map zonder index-pagina -> server toont de mapinhoud -> bladeren
  • Knip een bestandsnaam van een URL af: .../ftp/legal.md -> .../ftp
  • ?filename=../../../etc/passwd (Linux), ?page=../
  • Een basispatroon is ../ (1 niveau omhoog), daarna kan het pad verder opgebouwd worden
  • Backups: .bak, ~, .old, .swp -> source code / credentials
  • /.git/config -> remote origin (mogelijk open repo met volledige code)
  • /.git/logs -> alle commit messages
  • Stuur een verkeerd datatype (int waar tekst verwacht wordt)
  • Lekt DB-/tabelnamen, template engine, server + versie
  • De fout zelf kan (deel van) de key bevatten

Bronnen voor info disclosure

Belangrijke bronnen uit de les:

robots.txt / sitemap

Directory listings

Developer comments

Error messages

Debugging data

User account pages

Backup files

Insecure config

Version control (.git)

Handige request parameters

ParameterWat doet het?Handig wanneer
curl.exe -iToont headers en body.IDOR- of adminresponses vergelijken.
curl.exe -IToont alleen headers.Redirects, cookies en serverinfo checken.
-H "Cookie: role=admin"Stuurt een aangepaste cookieheader.Role- of admincookies testen.
-b "session=..."Stuurt cookie-data mee.Ingelogde requests buiten de browser herhalen.
-H "X-Forwarded-For: 127.0.0.1"Voegt een custom header toe.Apps die op IP-headers vertrouwen herkennen.
-X POST / -X DELETEWijzigt de HTTP-methode.Controleren of endpoints methode-afhankelijk zijn.
--path-as-isLaat ../ in het pad staan.Traversal testen zonder dat curl het pad normaliseert.
-LVolgt redirects.Login- of access-control redirects begrijpen.
-o output.txtBewaart de response.Gelekte files, backups of listings bewaren.
Voor traversal in een URL-pad is --path-as-is belangrijker dan het lijkt:
curl.exe --path-as-is -i "http://<target>/download/../../../../etc/passwd"

Tools

Burp Suite

Intercept, wijzig en herhaal requests vanuit HTTP history en Repeater.

Browser DevTools

Referentie voor Network, Application, Sources, cookies en hidden fields.

curl

Terminaltool voor headers, cookies, redirects en directe URL’s.

DirBuster

Zoek verborgen directories met grafische wordlist-fuzzing.

Dirb

Brute-force bestanden en paden vanaf de command line.

OWASP ZAP

Proxy en scanner voor HTTP-history en baseline checks.