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
| Techniek | Concept |
|---|---|
| Burp Suite | request onderscheppen -> param/header/body aanpassen -> forwarden |
| IDOR | object-ID’s manipuleren: ?id=1 -> 2, /profile/{id} |
| Client-side bypass | hidden fields, JS-validatie, ?admin=true |
| Cookies | Admin=false -> true |
| robots.txt | verborgen admin-panels |
| Directory listing | bladeren in een map (/ftp, /data) |
| Directory traversal | ?file=../../../etc/passwd |
Backup & .git | .bak, /.git/config, /.git/logs |
| Error messages | verkeerd type -> lekt data |
Burp Suite - setup
Technieken in detail
IDOR - object-ID's manipuleren
IDOR - object-ID's manipuleren
- 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. naaradmin)- Let op gehashte ID’s (bv. MD5 van het nieuwe getal)
- Gat in een reeks = grote tell: bij
file1/2/4/5/6isfile3interessant
Client-side controls bypassen
Client-side controls bypassen
- 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
Cookies manipuleren
Cookies manipuleren
robots.txt & directory listing
robots.txt & directory listing
/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
Directory traversal
Directory traversal
?filename=../../../etc/passwd(Linux),?page=../- Een basispatroon is
../(1 niveau omhoog), daarna kan het pad verder opgebouwd worden
Backup files & version control (.git)
Backup files & version control (.git)
- Backups:
.bak,~,.old,.swp-> source code / credentials /.git/config-> remote origin (mogelijk open repo met volledige code)/.git/logs-> alle commit messages
Error messages forceren
Error messages forceren
- 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
| Parameter | Wat doet het? | Handig wanneer |
|---|---|---|
curl.exe -i | Toont headers en body. | IDOR- of adminresponses vergelijken. |
curl.exe -I | Toont 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 DELETE | Wijzigt de HTTP-methode. | Controleren of endpoints methode-afhankelijk zijn. |
--path-as-is | Laat ../ in het pad staan. | Traversal testen zonder dat curl het pad normaliseert. |
-L | Volgt redirects. | Login- of access-control redirects begrijpen. |
-o output.txt | Bewaart de response. | Gelekte files, backups of listings bewaren. |
--path-as-is belangrijker dan het lijkt:
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.