NieuwStart je eerste gratis run
black box vs grey box vs white box

Black box, grey box of white box: hoeveel een pentest te zien krijgt.

Een URL, een set logins of de repository. Met elk ervan komt de agent verder in de applicatie, en voor alle drie geldt dezelfde regel: niets wordt gerapporteerd voordat het tegen de draaiende applicatie is aangetoond.

01 / De drie aanpakken

Eén agent, drie startpunten.

Wat je aanlevert bepaalt waar de test begint. De agent, de bewijslat en het rapport blijven gelijk.

Black box

Een URL, en wat een buitenstaander kan bereiken.

De agent brengt in kaart wat vanaf internet bereikbaar is, volgt elke route die hij vindt en maakt zelf een account aan waar registratie openstaat. Het beantwoordt één vraag precies: waar komt iemand zonder toegang en zonder voorkennis bij?

  • Alleen de URL van het doel om in te stellen
  • Eigen accounts overal waar registratie openstaat
Scanmodi
highF-2B7E90C1Password reset token accepted twice
Re-test
Asset app.acme.io
EndpointPOST /api/auth/reset
CVSS 3.18.1
Observation

The token from a completed reset, replayed two hours later:

Request · Response
POST /api/auth/reset HTTP/2
{"token":"rt_91f4…","password":"••••••"}
HTTP/2 200
{"status":"password_updated"}
Signed in with the new password
Grey box

Logins voor de rollen die ertoe doen.

Voeg testaccounts toe als headers of als cookie jar en de agent test alles achter de login. Met twee rollen of twee tenants kan hij beide tegelijk zijn, en zo wordt betrapt dat de ene klant de gegevens van een andere klant kan lezen.

  • Bearer tokens, API-sleutels of sessiecookies, versleuteld opgeslagen
  • Waar kapotte toegangscontrole boven komt
Geauthenticeerd testen
Auth profiles · HTTP headers
Two tenants, replayed on every call
AL[email protected] Authorization: Bearer eyJhbGci…Q1
BO[email protected] Authorization: Bearer eyJhbGci…7x
criticalAny user can read another customer's orderWSTG-ATHZ-04
Observation
1GET /v2/orders/8842 HTTP/2
2Authorization: Bearer eyJhbGci…7x # bob
3
4HTTP/2 200
5{"id":8842,"customer":"[email protected]",
6 "total":"1,240.00","card_last4":"4417"}
White box

De repository, gelezen na de exploit.

Koppel GitHub, GitLab of Bitbucket. De agent toont elke bevinding nog steeds aan tegen de draaiende applicatie en leest daarna de code erachter, zodat de bevinding het bestand en de regel noemt en de fix als pull request binnenkomt. Gecommitte secrets en de dependencies die je meelevert vallen er ook onder.

  • Tegen jouw deployment, of een die uit de repository wordt gebouwd
  • Alles wat black box en grey box bereiken, plus de broncode
White box pentest
highF-7BB9DDDEPath traversal in invoice attachment download
FindingSuggested fixAIActivity3Notes
Observation
1GET /api/invoices/INV-2201/attachment?file=../../../etc/passwd
2HTTP/2 200
3root:x:0:0:root:/root:/bin/bash

The handler joins the query parameter onto the upload directory without normalising it:

src/invoices/attachments.ts: 22 - 26
22export async function download(req, res) {
23 const invoice = await findInvoice(req.params.id);
24 const filePath = path.join(UPLOAD_DIR, req.query.file);
25 return res.sendFile(filePath);
26}
02 / Naast elkaar

Wat elk nodig heeft, en wat je terugkrijgt.

Elke stap houdt alles wat de vorige bereikt. Van black box naar white box gaan kost je niets.

Black box
Grey box
White box
Wat je aanlevert
Een URL
Een URL en testaccounts
Een repository
Geteste codepaden
Wat van buiten bereikbaar is
Wat ingelogd bereikbaar is
Elk pad in de broncode
Gekoppelde fouten die tot kritieke bevindingen leiden
Afgeleid uit gedrag
Afgeleid uit gedrag
Nagelopen in de code
Het publieke aanvalsoppervlak
Alles achter de login
Waar registratie openstaat
Toegangscontrole tussen de rollen die jij opgeeft
Hoe elke bevinding wordt aangetoond
Request en response
Request en response
Request en response, plus de code die het veroorzaakt
Het bestand en de regel achter elke bevinding
Gecommitte secrets en kwetsbare dependencies
De fix geopend als pull request
Werkt op applicaties waarvan je de code niet hebt
03 / Welke je draait

Kies op wat je kunt delen.

De modus stel je per run in, dus één applicatie kan er meer dan één draaien.

Je hebt de broncode

Draai white box. Het dekt alles wat de andere twee bereiken en voegt het codepad, gecommitte secrets, dependencies en de fix als pull request toe.

Je hebt logins, maar niet de code

Draai grey box. Een applicatie van een leverancier, de API van een partner of een systeem waarvan de repository bij een ander team ligt: met testaccounts bereik je nog steeds alles wat een ingelogde gebruiker kan.

Je hebt alleen een URL

Draai black box voor de blik van een buitenstaander op je publieke oppervlak, of als eerste run voordat testaccounts of een repository gekoppeld zijn.

04 / Vragen

Vragen, beantwoord.

klaar wanneer jij het bent

Begin met een URL. Voeg logins en de repository later toe.

Een URL is genoeg voor de eerste run. Voeg testaccounts toe of koppel de repository wanneer je zover bent, en de volgende run komt verder.