How is it possible to use an incorrect type and still get the file loaded by the user?
Se fosse il browser che lo carica, verrebbe effettivamente gestito come GIF e, in generale, fallirà. (Esistono problemi di sniffing dei contenuti nei browser Web, ma non quelli che si attivano qui.)
Tuttavia, quando istanziate un'applet con l'attributo <applet src>
/ <object data>
che punta su di esso, il plug-in Java carica l'indirizzo come una classe / jar dell'applet, indipendentemente dal Content-Type
con cui lo servite.
(Questo non è un buon comportamento, ma è un sintomo del continuo malessere MIME - i browser / plug-in non vogliono essere severi riguardo alla richiesta di tipi di media corretti perché così tanti server sono impostati male, ma UA è permissivo sui tipi di media significa che gli amministratori pigri non devono configurare i loro server giusto ...)
Questo è particolarmente pernicioso dato che la versione bizarro di Java della Same Origin Policy opera principalmente sull'origine della classe / jar piuttosto che sulla pagina del documento contenente - se riesci a mettere un file applet sul server di qualcuno puoi, in una certa misura , cross-site-script in esso. Tuttavia non sembra che l'attacco ne abbia fatto uso: gli exploit funzionano indipendentemente dall'origine.
Spesso è difficile individuarlo perché è (/ era) possibile creare un file poliglotta che sia GIF e JAR validi contemporaneamente ("GIFAR"). Tuttavia, ancora una volta, questo non è stato fatto qui. L'utente malintenzionato può scegliere qualsiasi nome / tipo di file che preferiscono per un'applet e, a quanto pare, hanno pensato che una GIF sarebbe stata meno evidente di una JAR.