# Web- en API-pentest

# Ontdek wat een aanvaller achter de login kan.

Een handmatige pentest van je webapplicatie en API. De nadruk ligt op rechten, rollen en bedrijfslogica, de fouten die een scanner mist. Elke bevinding komt met bewijs en een oplossing voor je developers.

**Vanaf € 1.950 excl. btw**. Vaste prijs na het afbakenen van de scope

- **Testduur**: 2 tot 7 of meer testdagen
- **Aanpak**: Black, grey of white box
- **Start**: In overleg, meestal binnen twee weken
- **Rapport**: Binnen 10 werkdagen na de test
- **Hertest**: Inbegrepen vanaf Standaard
- **Vooraf**: NDA en schriftelijke toestemming

[Pentest aanvragen](https://hackindex.nl/contact/details?parts=web,api)

## Herken je dit?

- **Een klant vraagt om een pentestrapport.** Je krijgt een rapport met bewijs en ernst per bevinding, dat je kunt delen met je klant.
- **Er gaat iets groots live.** Een nieuwe module, betaalflow of API test je voordat echte gebruikers erbij kunnen.
- **De audit voor ISO 27001 of NEN 7510 komt eraan.** Een recente pentest is vaak onderdeel van het bewijs voor de auditor.
- **Klanten mogen elkaars gegevens nooit zien.** Bij een platform met meerdere klanten krijgt die scheiding extra aandacht.

## Wat er getest wordt

Kies een onderdeel van je applicatie om te zien welke vragen de test beantwoordt.

### Buiten: De publieke kant

Wat ziet iemand zonder account?

- Informatie die per ongeluk openbaar staat
- Foutmeldingen die te veel vertellen
- Formulieren die te misbruiken zijn

### Toegang: Inloggen

Komt iemand binnen zonder het wachtwoord te kennen?

- Wachtwoorden raden of gestolen wachtwoorden gebruiken
- Tweestapsverificatie en wachtwoord vergeten
- Inloggen via Google, Microsoft of single sign-on

### Toegang: Sessies

Kan iemand een ingelogde sessie overnemen?

- Sessies die te lang geldig blijven
- Toegang die blijft na uitloggen of een nieuw wachtwoord

### Applicatie: Rollen en rechten

Kan een gebruiker zien of doen wat niet de bedoeling is?

- Gegevens van andere gebruikers of klanten inzien
- Beheeracties uitvoeren met een gewone rol
- De scheiding tussen klanten op hetzelfde platform

### Applicatie: Bedrijfslogica

Kan de app tegen haar eigen regels in werken?

- Prijzen, kortingen of aantallen aanpassen
- Stappen overslaan, zoals betalen
- Limieten omzeilen

### Applicatie: Uploads en beheer

Wat kan er via uploads en het beheer?

- Bestanden die meer doen dan een document of afbeelding
- Hoe goed de beheeromgeving is afgeschermd

### Achterkant: De API

Wat doet de API als je de app overslaat?

- Rechten die in de app wel en in de API niet gecontroleerd worden
- Meer gegevens terugsturen dan nodig
- Bescherming tegen massaal opvragen

### Achterkant: Koppelingen en data

Wat kan er via gekoppelde systemen?

- Betalingen en koppelingen die je kunt nadoen
- Bestanden, exports en back-ups die bereikbaar zijn

## Zo ziet een bevinding eruit

Per bevinding wat er mis is, het bewijs, wat het betekent en hoe je het oplost.

### HI-OP-2026-M4TX-03: Medewerkers van klant A kunnen facturen van klant B openen

- **Ernst**: Hoog, CVSS 4.0 7.1, CVSS 3.1 7.7

De app controleert of iemand is ingelogd, maar niet of de factuur bij zijn organisatie hoort.

1. Inloggen als medewerker van klant A.
2. Een eigen factuur openen.
3. Het factuurnummer in de adresbalk met één verhogen.
4. De factuur van klant B verschijnt, met naam, adres en bedrag.

Iedere ingelogde gebruiker kan de financiële gegevens van alle klanten van het platform inzien. Dat is een datalek.

```diff
public function show(Invoice $invoice)
{
+    $this->authorize('view', $invoice);

    return view('invoices.show', compact('invoice'));
}
```

Fictief voorbeeld. Echte bevindingen blijven vertrouwelijk.

## Wat er wel en niet in zit

### Onderdeel van de opdracht

- Je webapplicatie, inclusief alles achter de login
- De API die de applicatie gebruikt, vanaf Standaard
- Elke afgesproken gebruikersrol
- Een rapport en een nabespreking

### Valt erbuiten

- **Productie**, er wordt alleen op een testomgeving of kopie getest
- **Infrastructuur**, zoals servers, netwerk en hosting. Kan op aanvraag, met een eigen prijs
- **Belastingtests**, en aanvallen die de omgeving onbereikbaar maken
- **Phishing**, en andere tests op je medewerkers
- **Systemen van anderen**, zonder hun toestemming

## Welk pakket past bij je app?

Beantwoord drie vragen en het pakket dat past, licht op. Na de intake krijg je een vaste prijs.

- **Basis**, vanaf € 1.950: Testdagen 2 tot 3, Geschikt voor Website of webshop met 1 gebruikersrol, Inbegrepen Rapport en nabespreking
- **Standaard**, vanaf € 3.750: Testdagen 5, Geschikt voor Webapplicatie met meerdere rollen en een API, Inbegrepen Rapport, nabespreking en 1 hertest
- **Uitgebreid**, vanaf € 5.500: Testdagen 7 of meer, Geschikt voor SaaS-platform, multi-tenant applicatie of grote API, Inbegrepen Rapport, nabespreking en 1 hertest

## Wat je aanlevert

Hoe beter dit klaarstaat, hoe meer tijd er naar het testen zelf gaat.

- **Een testaccount per rol** (Nodig): Bijvoorbeeld klant, medewerker en beheerder.
- **Een vast aanspreekpunt** (Nodig): Bereikbaar voor vragen en bij een kritieke bevinding.
- **Een testomgeving** (Optioneel): Een kopie van je app, los van echte gebruikers. Geen testomgeving? HackIndex zet een kopie op, voor gangbare sites zonder meerprijs. Beveiliging die testverkeer blokkeert, staat uit voor HackIndex.

## Meer dekking in één opdracht

- **Web- en API-pentest** (vanaf € 1.950): Test van buitenaf wat een aanvaller kan.

- **Security code review** (vanaf € 1.520): Bij white box wordt ook in de code gekeken. Zo komen ook fouten boven die van buitenaf niet zichtbaar zijn.

[Meer over Security code review](https://hackindex.nl/security-code-review)

## Veelgestelde vragen

### Wat is het verschil met een scan?

Een scanner zoekt naar bekende fouten. Fouten in rechten en logica, zoals een medewerker die de facturen van een andere klant opent, vind je alleen handmatig.

### Hebben we een testomgeving nodig?

Nee. Heb je er een, dan wordt daarop getest. Heb je er geen, dan zet HackIndex een kopie van je app op, los van echte gebruikers. Voor gangbare sites zoals WordPress, WooCommerce en Laravel zonder meerprijs. Bij een complexere opzet staat het als vaste post in het voorstel. Op productie wordt niet getest.

### Is Basis genoeg voor mijn webshop of WordPress-site?

Meestal wel, als er één soort gebruiker is, zoals klanten die bestellen. Heb je ook medewerkers met eigen rechten of een API voor een app, dan past Standaard beter. Na de intake hoor je welk pakket past.

### Zit de API erbij?

Vanaf het pakket Standaard wel. In Basis wordt alleen de webapplicatie getest.

### Wat als er iets kritieks wordt gevonden?

Dan hoor je het meteen, niet pas in het rapport.

## Laat je webapp testen.

Beschrijf kort wat er getest moet worden. Je ontvangt een voorstel met een vaste prijs.

- [Pentest aanvragen](https://hackindex.nl/contact/details?parts=web,api)

## Andere diensten

- [App-pentest](https://hackindex.nl/app-pentest): iOS- en Android-apps, inclusief de API erachter
- [Security code review](https://hackindex.nl/security-code-review): Je broncode gelezen op kwetsbaarheden
- [AVG-codecheck](https://hackindex.nl/avg-codecheck): Hoe je code met persoonsgegevens omgaat

## Woordenlijst

- **Gebruikersrol**: Een soort gebruiker met eigen rechten, zoals klant, medewerker of beheerder.
- **Hertest**: Na het oplossen wordt elke bevinding opnieuw getest, zodat vaststaat dat de oplossing werkt.
- **Infrastructuur**: De servers, het netwerk en de hosting onder je applicatie, zoals open poorten en serverinstellingen. Die vallen buiten een test van de applicatie zelf.
- **Multi-tenant**: Eén applicatie voor meerdere klanten of organisaties, waarbij de gegevens van elke klant gescheiden moeten blijven.
- **Nabespreking**: Een gesprek over het rapport: wat er gevonden is, hoe ernstig het is en in welke volgorde je het oplost.
- **Testomgeving**: Een kopie van je applicatie, los van de echte gebruikers en gegevens, waarop veilig getest kan worden.
- **White box**: Je deelt ook de broncode en documentatie. Zo komen fouten sneller en vollediger boven water.

Bron: https://hackindex.nl/web-en-api-pentest
