Skip to main content
In dit onderdeel ging het over applicaties die te veel vertrouwen leggen bij client-side waarden of verouderde componenten. Een belangrijk onderscheid uit de les: encoding maakt data leesbaar in een ander formaat, maar is geen encryptie.

In een oogopslag

OnderwerpConcept
Cookies decoderenWaarden in cookies kunnen BASE64, hex of dubbel encoded zijn
Cookie/role manipulatieRollen of flags zoals role=user of admin=false staan soms client-side
Meaningful tokensEen token kan na decoding leesbare velden bevatten
Voorspelbare session IDsSession IDs kunnen sequential, time-based of zwak random zijn
Horizontal escalationClient-side IDs kunnen naar data van een andere gebruiker wijzen
Outdated componentsOude versies kunnen bekende CVE’s hebben
CORS misconfiguratieFoute Origin-afhandeling kan cross-origin data lekken

Technieken in detail

Gevoelige informatie kan in cookies terechtkomen.
  • Relevante plekken: Application -> Cookies in DevTools, of Set-Cookie in een HTTP-response
  • BASE64 eindigt vaak op = of ==
  • ASCII-hex bevat alleen 0-9a-f en heeft meestal een even lengte
  • Soms is het resultaat na een eerste decode-stap opnieuw encoded
curl.exe -i http://<target>/example-cookie
echo "UzJWNU1Ub..." | base64 -d
Encoding is geen beveiliging. Wie de cookie kan lezen, kan de inhoud vaak ook decoderen.
Een hex- of BASE64-token kan soms naar leesbare velden decoderen.
757365723d...
user=KoenK;app=admin;date=01/05/26
Typische onderdelen:
  • username, user ID of e-mailadres
  • rol, groep of applicatierechten
  • oplopend nummer
  • IP-adres of datum
  • hash gecombineerd met leesbare velden
Bij zwakke tokenformats kan een applicatie zelf een bruikbaar formaat tonen wanneer ze een nieuw account of nieuwe sessie aanmaakt.
Bij sessies is randomness belangrijk. In de les kwamen meerdere zwakke patronen aan bod.
PatroonSignaalGevolg
Sequentialtelkens +1vorige of volgende waarde ligt dicht bij de huidige
Time-basedbevat timestampde waarde hangt af van tijd
Zwakke formulewiskundig verband, bijvoorbeeld sin(seed)kleine seed-ruimte kan voorspelbaar zijn
Zwakke randomvaste posities blijven gelijkBurp Sequencer kan patronen zichtbaar maken
curl.exe -H "Cookie: SessionID=<geldige_waarde>" http://<target>/example-session
Als een response de cookie opnieuw leegmaakt, is het verschil tussen request-cookie en response-cookie belangrijk om te bekijken in Burp of curl.
Horizontal escalation betekent dat een gebruiker data of acties van een andere gebruiker kan bereiken zonder een hogere rol te hebben.Veelvoorkomende client-side signalen:
  • basket ID
  • order ID
  • profile ID
  • user ID in een request body
  • resource-ID in een URL
Het concept draait rond de koppeling tussen identiteit en resource. Die koppeling hoort server-side gecontroleerd te worden.
Verouderde libraries, plugins of CMS-versies kunnen bekende kwetsbaarheden bevatten.Bronnen voor versiesignalen:
  • <meta name="generator">
  • HTTP headers
  • Wappalyzer
  • JavaScript- of CSS-bestandsnamen
  • WordPress REST endpoints zoals /wp-json/wp/v2/users
  • directory listing onder /wp-content/
Bestanden zoals .env, wp-config.php.bak, wp-config.php~, db.sql en backup.zip waren voorbeelden van gevoelige exposed files.
CORS bepaalt welke origins browserdata mogen opvragen. Een foutieve configuratie kan gevoelige data cross-origin beschikbaar maken.
GET /sensitive-data HTTP/1.1
Host: vulnerable-website.com
Origin: https://external-site.example
Cookie: sessionid=...
Een belangrijk signaal is een response die de externe origin terugkaatst in combinatie met:
Access-Control-Allow-Credentials: true
VariantSignaal
Reflected originserver kaatst elke Origin terug
Modified originprefix/suffix wordt te breed vertrouwd
Wildcard *Access-Control-Allow-Origin: *
Subdomain trustte ruim vertrouwen in *.domain.com
Null originOrigin: null via sandboxed context

Encoding herkennen

TypeZiet eruit alsDecode
BASE64A-Za-z0-9+/, eindigt vaak op =base64 -d of CyberChef
ASCII-hexalleen 0-9a-f, even lengtehex naar tekst
URL encoding%3a, %2f, %20URL-decode
HTML entities&colon;, &#58;, &#x3a;HTML-decode
Unicode escape\u003aUnicode-decode
Burp Decoder en CyberChef Magic waren handige hulpmiddelen om encoded waarden sneller te herkennen.

Handige parameters

curl

ParameterWat doet het?Handig wanneer
-iToont headers en body.Cookies, CORS headers en responseverschillen zien.
-H "Cookie: role=admin"Stuurt een aangepaste cookieheader.Client-side role trust testen.
-b "session=..."Stuurt cookie-data mee.Een bestaande sessie herhalen.
-H "Origin: https://evil.example"Zet een Origin-header.CORS gedrag controleren.
-H "Content-Type: application/json"Zet JSON content type.API bodies testen.
-d '{"id":2}'Stuurt POST-data mee.Client-side IDs of roles in bodies testen.
-vToont extra requestdetails.Redirects, TLS en headergedrag debuggen.

WPScan

ParameterWat doet het?Handig wanneer
--url https://siteZet de WordPress target.Basis voor elke WPScan-run.
-e vp,vt,uEnumereert kwetsbare plugins, kwetsbare themes en users.Snelle WordPress sanity check.
--plugins-detection mixedCombineert passieve en agressievere plugin-detectie.Meer pluginresultaten nodig.
--api-token TOKENHaalt vulnerability data op via WPScan API.CVE-info bij gevonden plugins of themes.
--random-user-agentWisselt User-Agent.Simpele blocks of filters omzeilen.
--proxy http://127.0.0.1:8080Stuurt WPScan via proxy.Requests in Burp bekijken.

Patronen uit de les

1

Cookie met rare waarde

Mogelijk encoded data, bijvoorbeeld BASE64 of hex.
2

Role of admin in cookie

Mogelijk client-side trust in autorisatie-informatie.
3

Session ID verandert voorspelbaar

Mogelijk zwakke randomness of een patroon in de sessiewaarde.
4

Functie toont data per ID

Mogelijk horizontale autorisatiebug als de server de eigenaar niet controleert.
5

Herkenbare CMS- of libraryversie

Mogelijke link met bekende CVE’s of exposed configuratiebestanden.
6

Cross-origin request

Mogelijke CORS-misconfiguratie bij reflected origins en credentials.

Tools

Browser DevTools

Referentie voor cookies, storage, network requests en response headers.

curl

Terminaltool voor cookies, headers en handmatige HTTP-requests.

Burp Suite

Proxytool voor HTTP history, Decoder, Sequencer, Repeater en Intruder.

CyberChef

Tool voor BASE64, hex, URL encoding, HTML entities en Magic.

WPScan

Scanner voor WordPress-versies, plugins, users en bekende kwetsbaarheden.

CVE

Referentie voor bekende kwetsbaarheden in softwareversies.