> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jaspervanzeir.be/llms.txt
> Use this file to discover all available pages before exploring further.

# HOWEST Web Pentesting Fundamentals

> Sanity map voor web pentesting lesnotities, signalen en vervolgchecks.

<Note>
  Dit is mijn startpunt voor de HOWEST Web Pentesting Fundamentals-notities. Het is geen strikte volgorde, maar een sanity map: eerst breed kijken, daarna doorklikken naar de notitie die past bij het signaal dat opduikt.
</Note>

<Card title="HOWEST overzicht" icon="arrow-left" href="/howest">
  Terug naar alle HOWEST-vakken en hubs.
</Card>

## Start hier

<Steps>
  <Step title="Baseline">
    Open de applicatie, klik de normale flow door en laat Burp of DevTools de requests verzamelen.
  </Step>

  <Step title="Recon">
    Kijk naar broncode, JavaScript, headers, cookies, storage, `robots.txt`, `sitemap.xml`, errors en verborgen paden.
  </Step>

  <Step title="State en identity">
    Let op sessies, rollen, user IDs, order IDs, basket IDs, hidden fields en client-side waarden.
  </Step>

  <Step title="Input">
    Verzamel plekken waar input verwerkt wordt: login, search, filters, URL-parameters, JSON bodies, uploadvelden en file parameters.
  </Step>

  <Step title="Signaal volgen">
    Koppel wat je ziet aan de juiste notitie hieronder. Dat voorkomt tunnelvisie.
  </Step>
</Steps>

## Eerste checks

<CardGroup cols={2}>
  <Card title="Wat draait hier?" icon="fingerprint" href="/web-fingerprinting-recon#bronnen-in-detail">
    Broncode, JS-bestanden, headers, cookies, storage, file extensions, errors en encoded waarden.
  </Card>

  <Card title="Hoe werkt login/state?" icon="key" href="/broken-authentication-fuzzing#technieken-in-detail">
    Loginflow, username enumeration, resetflow, 2FA, default credentials en fuzzing-signalen.
  </Card>

  <Card title="Wie mag welke data zien?" icon="lock-open" href="/broken-access-control-info-disclosure#technieken-in-detail">
    IDOR, hidden fields, role cookies, adminroutes, directory listing, traversal en `.git`.
  </Card>

  <Card title="Vertrouwt de app client-side data?" icon="compass-drafting" href="/insecure-design#patronen-uit-de-les">
    Cookies, roles, tokens, session IDs, outdated components, exposed files en CORS.
  </Card>

  <Card title="Praat input met een database?" icon="syringe" href="/sql-injection-sqlmap#technieken-in-detail">
    SQL errors, boolean verschillen, login bypass, UNION, blind SQLi en SQLmap.
  </Card>

  <Card title="Komt input terug in HTML of JS?" icon="code" href="/xss-dom-based#analyse-van-de-context">
    HTML-context, attributen, DOM sources, sinks, filters en payloadkeuze.
  </Card>

  <Card title="Raakt input files of commands?" icon="terminal" href="/csrf-code-injection-rce#koppeling-tussen-input-en-kwetsbaarheid">
    Command injection, LFI, upload-bypass, web shell, HTTP PUT en CSRF.
  </Card>
</CardGroup>

## Signaal naar notitie

| Als ik dit zie                                                      | Dan kijk ik hier                                                                               |
| ------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| Geen idee welke technologie draait                                  | [Web fingerprinting & recon](/web-fingerprinting-recon#bronnen-in-detail)                      |
| Interessante comments, routes of API-paden in JavaScript            | [JavaScript en verborgen paden](/web-fingerprinting-recon#bronnen-in-detail)                   |
| Custom headers, `Server`, `X-Powered-By` of opvallende cookies      | [Headers en cookies](/web-fingerprinting-recon#bronnen-in-detail)                              |
| Lange encoded waarde, BASE64, hex of rare cookie                    | [Encoding herkennen](/insecure-design#encoding-herkennen)                                      |
| Cookie bevat `role`, `admin`, user ID of leesbare velden            | [Client-side trust](/insecure-design#technieken-in-detail)                                     |
| Session ID lijkt oplopend, time-based of voorspelbaar               | [Voorspelbare session IDs](/insecure-design#technieken-in-detail)                              |
| Loginresponse verschilt tussen bestaande en niet-bestaande user     | [Broken authentication](/broken-authentication-fuzzing#technieken-in-detail)                   |
| Veel directories, users of passwords om te proberen                 | [ffuf-parameters](/broken-authentication-fuzzing#handige-ffuf-parameters)                      |
| Resetflow of 2FA lijkt te vertrouwen op parameters/cookies          | [Reset en 2FA checks](/broken-authentication-fuzzing#technieken-in-detail)                     |
| URL/body bevat `id`, `orderID`, `basket`, `profile` of `user`       | [Broken access control](/broken-access-control-info-disclosure#technieken-in-detail)           |
| Adminwaarde staat in cookie, hidden field of URL-parameter          | [Client-side controls](/broken-access-control-info-disclosure#technieken-in-detail)            |
| Directory listing, backup file, `.git`, `.bak`, `.old`              | [Info disclosure bronnen](/broken-access-control-info-disclosure#bronnen-voor-info-disclosure) |
| Een quote geeft SQL error of true/false verschil                    | [SQL injection detectie](/sql-injection-sqlmap#technieken-in-detail)                           |
| Queryresultaten lijken uitbreidbaar met extra data                  | [UNION en database-enumeratie](/sql-injection-sqlmap#technieken-in-detail)                     |
| Volledige request is makkelijker dan losse parameters               | [SQLmap parameters](/sql-injection-sqlmap#handige-sqlmap-parameters)                           |
| Input verschijnt terug in HTML, attribuut of JavaScript             | [XSS testplekken](/xss-dom-based#handige-testplekken)                                          |
| DOM code gebruikt `innerHTML`, `document.write` of `eval`           | [DOM sources en sinks](/xss-dom-based#goed-om-te-weten)                                        |
| Parameter heet `file`, `page`, `template` of lijkt een pad te laden | [LFI en file parameters](/csrf-code-injection-rce#technieken-in-detail)                        |
| Input gaat naar ping, lookup, grep of een shellachtig commando      | [Command injection](/csrf-code-injection-rce#koppeling-tussen-input-en-kwetsbaarheid)          |
| Upload controleert extensie, MIME type of filename                  | [Upload-bypass](/csrf-code-injection-rce#technieken-in-detail)                                 |
| Actie gebeurt via link, knop of request met bestaande sessie        | [CSRF](/csrf-code-injection-rce#technieken-in-detail)                                          |
| CMS/libraryversie is zichtbaar                                      | [Outdated components](/insecure-design#technieken-in-detail)                                   |
| `Origin` en CORS headers vallen op                                  | [CORS misconfiguratie](/insecure-design#technieken-in-detail)                                  |

## Toolkeuze

<CardGroup cols={3}>
  <Card title="Burp Suite" icon="shield" href="/broken-access-control-info-disclosure#burp-suite-setup">
    Baseline requests, HTTP history, Repeater, cookies, hidden fields en requestvergelijking.
  </Card>

  <Card title="DevTools" icon="code" href="/web-fingerprinting-recon#bronnen-in-detail">
    Broncode, Console, Network, Sources, Application, cookies en Local/Session Storage.
  </Card>

  <Card title="ffuf" icon="bolt" href="/broken-authentication-fuzzing#handige-ffuf-parameters">
    Wordlists voor directories, users, passwords, parameters en response-size filtering.
  </Card>

  <Card title="CyberChef / Decoder" icon="utensils" href="/insecure-design#encoding-herkennen">
    BASE64, hex, URL encoding, HTML entities, Unicode en dubbele encoding.
  </Card>

  <Card title="SQLmap" icon="database" href="/sql-injection-sqlmap#handige-sqlmap-parameters">
    Database-enumeratie wanneer SQLi-signalen duidelijk genoeg zijn.
  </Card>

  <Card title="curl" icon="terminal" href="/csrf-code-injection-rce#handige-curl-parameters">
    Handmatige headers, cookies, PUT-requests en snelle HTTP-tests.
  </Card>
</CardGroup>

## Onderwerpen

<CardGroup cols={2}>
  <Card title="Mockexamen" icon="list-check" href="/mockexamen">
    Overzicht van de mockexamen vragen met telkens dezelfde zoekstructuur per oplossing.
  </Card>

  <Card title="Web fingerprinting & recon" icon="fingerprint" href="/web-fingerprinting-recon">
    Technologie, routes, headers, cookies, verborgen bestanden en encoded waarden.
  </Card>

  <Card title="Broken authentication & fuzzing" icon="key" href="/broken-authentication-fuzzing">
    Zwakke logins, username enumeration, password reset-fouten, 2FA-bypasses en ffuf.
  </Card>

  <Card title="Broken access control & info disclosure" icon="lock-open" href="/broken-access-control-info-disclosure">
    IDOR, client-side bypasses, cookies, directory listing, traversal, backups en `.git`.
  </Card>

  <Card title="Insecure design" icon="compass-drafting" href="/insecure-design">
    Client-side trust, cookies, tokens, outdated components en CORS.
  </Card>

  <Card title="SQL injection & SQLmap" icon="syringe" href="/sql-injection-sqlmap">
    SQLi, UNION-payloads en database-enumeratie met SQLmap.
  </Card>

  <Card title="XSS & DOM-based attacks" icon="code" href="/xss-dom-based">
    HTML-context, filters, DOM sources, gevaarlijke sinks en payloadkeuze.
  </Card>

  <Card title="CSRF, code injection & RCE" icon="terminal" href="/csrf-code-injection-rce">
    CSRF, command injection, LFI, upload-bypasses, web shells en HTTP PUT.
  </Card>
</CardGroup>
