hackweb
appunti di hacking e tecnologia
IT EN
menù principale
menù utente
non sei loggato

Upload di file: dalla foto profilo alla webshell

21 novembre 2024 · 1 min di lettura · #web #file-upload #rce

Accettare file dagli utenti è rischioso se il file può essere eseguito o servito. Il caso peggiore: caricare shell.php in una cartella servita dal web server.

I bypass comuni

Controllo della sola estensione: si aggira con shell.php.jpg, doppie estensioni, .phtml, o maiuscole. Controllo del solo Content-Type: è impostato dal client. Controllo dei magic bytes: si mette un header GIF valido davanti a codice PHP (GIF89a;<?php...). Path traversal nel nome per uscire dalla cartella upload.

Content-Type: image/jpeg
filename="a.php"
GIF89a;<?php system($_GET['c']); ?>

Difesa

Whitelist rigida delle estensioni, rinomina i file con nomi generati, salva fuori dalla webroot o in storage che non esegue codice, servi con Content-Disposition: attachment. Disabilita l'esecuzione nella cartella upload (nginx: nessun handler PHP lì). Valida il contenuto reale, limita dimensione e tipo.


« torna alla home

ultimi post
 
il tuo indirizzo IP:
216.73.216.108
visitatore #1
MOTD:
Ogni astrazione perde da qualche parte.
Qui guardiamo dove.
argomenti