Skip to main content
In dit onderdeel kwamen kwetsbaarheden aan bod waarbij input acties, bestanden of commando’s op de server kan beinvloeden. CSRF zat daarbij aan de client-side kant: acties uitvoeren via een bestaande sessie.

In een oogopslag

Technieken in detail

Slachtoffer voert ongewild een actie uit. 3 voorwaarden: relevante actie ; sessie via cookies ; geen CSRF-token.
  • Zoek de action-URL van een knop (de X om iets te verwijderen, “change email”)
  • GET-CSRF via onzichtbare afbeelding:
  • POST-CSRF = verborgen auto-submit form op je eigen pagina
  • Moderne blocker: SameSite-cookie (Lax/Strict)
Gebruikersinput belandt in een shell-commando (shell_exec("ping " . $input)).Voorbeelden: 127.0.0.1 ; cat /etc/passwd ; 127.0.0.1 | cat /etc/passwd ; & echo KoenK &Argument-injectie (variant): input gaat naar grep <input> file -> a /etc/.../natas11 dictionary.txt
Een param bepaalt welk bestand geladen wordt.
  • Normaal: show.php?file=poem.txt -> misbruik: show.php?file=../../../etc/passwd
  • Doel: configfiles, credentials, SSH-keys (../root/.ssh/id_ed25519)
  • Met een private key -> ssh -i id_ed25519 root@<ip> = RCE
Krijg een server-side script (.php) geupload:
  • Geen restrictie: upload gewoon shell.php
  • MIME-check: upload .php, wijzig in Burp Content-Type: image/jpeg
  • Extensie-obfuscatie: exploit.jpg.php ; exploit.php.jpg ; exploit.pHp ; exploit.php. ; exploit%2Ephp
  • Client-side variant: geen PHP mogelijk? upload HTML/SVG met <script> -> stored XSS
De inhoud van je geuploade .php:
Daarna gewoon opvragen: GET /uploads/shell.php?command=whoami
Geen uploadformulier? Server staat soms PUT toe:
Antwoord 201 Created -> bezoek daarna de nieuwe URL.
In PowerShell is curl.exe nodig, anders pakt PowerShell zijn eigen curl-alias.

Handige curl parameters

Recon-commando’s

Zodra je command injection hebt:

Koppeling tussen input en kwetsbaarheid

1

Veld dat iets uitvoert (ping, lookup)

OS command injection hangt vaak samen met separators zoals ; & && |.
2

Param met bestandsnaam (?file=, ?page=)

LFI / directory traversal.
3

Upload-functie

Upload-bypasses draaiden in de les rond .php, MIME-types, extensie-obfuscatie en web shells.
4

Geen uploadform, wel schrijfrechten

HTTP PUT.
5

Actie-knop in een ingelogde app

CSRF-link bouwen.

Tools

curl

Terminaltool voor PUT-requests en handmatige HTTP-calls.

Burp Suite

Proxytool voor Content-Type, filenames, cookies en request bodies.

Browser DevTools

Referentie voor action-URL’s, hidden inputs en client-side uploadchecks.

PortSwigger Web Security Academy

Labs en referentie voor CSRF, upload bugs, traversal en command injection.

PayloadsAllTheThings

Payloadreferentie voor RCE, LFI, upload-bypasses en web shells.