This seems to be useless since the output will be printed to stdout and not returned as a server response?
Dipende dalla vulnerabilità che viene sfruttata. A volte, un utente malintenzionato può determinare se un sistema è vulnerabile a un attacco in base al codice di stato HTTP o il tempo necessario per la risposta da restituire. Se l'attaccante può inviare un attacco e apprendere che il sistema è vulnerabile, potrebbe inviare degli attacchi di follow-up, ma se non ha funzionato, vai avanti per provare un altro exploit.
Non vi è alcun motivo tecnico per cui un server non possa elaborare GET /c/winnt/system32/cmd.exe?/c+dir HTTP/1.0
come eseguendo il file cmd.exe e passando '/ c dir' come argomenti, catturando l'output e inviandolo come risposta all'utente. Tutto dipende dal design del server con cui si interagisce. Con il senno di poi, questo design è sciocco, in quanto consente agli aggressori di sfruttare un sistema, ma nei primi anni del web, consentire questo tipo di accesso sarebbe stato auspicabile.
Also, why is it even possible to request files outside of the www directory? Should this not be forbidden per default?
I server Web sono complicati e gli ingegneri commettono errori. Tieni presente che questo tipo di attacco è caratteristico della rete nella sua infanzia.
What are the user privileges such an attacker has when he issues those commands in a self created shell? I guess the privileges of the running server.
Se un utente malintenzionato può sfruttare tale exploit, è probabile che l'autore dell'attacco ottenga il privilegio del server in esecuzione. Ma l'esecuzione avverrà secondo il programma scritto. È anche possibile che il server possa abbassare i privilegi prima di passare all'esecuzione. Non è probabile, ma il punto è che dipende sempre dal contesto del sistema che viene sfruttato.
Could a firewall prevent this attack and if not, are there other measures which could have prevented this?
Sì e no. Il firewall è un termine un po 'obsoleto, quindi alcuni firewall avranno questa capacità e altri no. Alcuni firewall si concentrano solo sul traffico di rete nel senso di IP sorgente: porta, destinazione ip: porta e non guardano il messaggio effettivo inviato. Altri firewall includono un Sistema di prevenzione delle intrusioni o IPS. Questa è un'applicazione che confronta il traffico con le firme di traffico cattivo noto. Quindi se il firewall ha un IPS e c'è una regola per questo traffico, sarebbe bloccato.