Forzare le intestazioni di risposta

1

Sto testando una particolare vulnerabilità da ieri e sono arrivato con uno strano problema che non mi aspettavo. Diciamo che una vulnerabile applicazione web offre il caricamento di file immagine.

L'immagine in realtà non deve essere un'immagine, il back-end accetta qualsiasi estensione di file. Il problema è che lo stesso back-end restituisce sempre *.jpg così invece dello script evil.php caricato, vieni con random_number.jpg .

Naturalmente, la prima cosa che ho provato è ottenere la risposta servita, che in questo caso è costituita da dati immagine codificati in base64.

Guardando oltre, ho trovato che l'applicazione restituisce binary/octet-stream come intestazione di risposta tipo di contenuto , il che significa che quando provo ad accedere all'URL http://localhost/vulnbox/uploaded/random_num.jpg , il browser apre il messaggio di download del file . Il file attuale viene restituito come file binario, pronto per essere scaricato, ma guardando nel file, vedo che il codice rimane.

C'è un modo in cui posso forzare la risposta del tipo di contenuto a qualsiasi altro e ottenere lo script malvagio vero e proprio?

    
posta sensation 16.01.2016 - 01:19
fonte

1 risposta

2

Suppongo che tu voglia sapere se esiste un modo per eseguire il file PHP caricato. Risposta breve: No

Long Anwser: Finché il web server è configurato correttamente, solo i file .php vengono eseguiti come PHP. La maggior parte dei server Web restituirà come tipo di contenuto sempre il tipo mime derivato dall'estensione del file. Il contenuto stesso della risposta HTTP è in genere il contenuto del file. Ad esempio Apache2 ti restituirà il tipo di contenuto "image / jpg" e il testo semplice del file PHP.

    
risposta data 19.01.2016 - 12:46
fonte

Leggi altre domande sui tag