{'xhtml:p': 'An adversary exploits improper input validation by submitting maliciously crafted input to a target application running on a server, with the goal of forcing the server to make a request either to itself, to web services running in the server\u00e2\u0080\u0099s internal network, or to external third parties. If successful, the adversary\u00e2\u0080\u0099s request will be made with the server\u00e2\u0080\u0099s privilege level, bypassing its authentication controls. This ultimately allows the adversary to access sensitive data, execute commands on the server\u00e2\u0080\u0099s network, and make external requests with the stolen identity of the server. Server Side Request Forgery attacks differ from Cross Site Request Forgery attacks in that they target the server itself, whereas CSRF attacks exploit an insecure user authentication mechanism to perform unauthorized actions on the user's behalf.'}
Description
Attack Execution Flow
Step 1
Explore[Find target application] Find target web application that accepts a user input and retrieves data from the server
[Trova applicazione target] Trova l'applicazione web target che accetta un input utente e recupera dati dal server
Step 2
Experiment[Examine existing application requests] Examine HTTP/GET requests to view the URL query format. Adversaries test to see if this type of attack is possible through weaknesses in an application's protection to Server Side Request Forgery
Attempt manipulating the URL to retrieve an error response/code from the server to determine if URL/request validation is done.
Use a list of XSS probe strings to specify as parameters to known URLs. If possible, use probe strings with unique identifiers.
Create a GET request with a common server file path such as /etc/passwd as a parameter and examine output.
Sperimentazione
[Esaminare le richieste dell'applicazione esistente] Esaminare le richieste HTTP/GET per visualizzare il formato delle query URL. Gli adversary testano per verificare se questo tipo di attacco è possibile attraverso vulnerabilità nella protezione dell'applicazione contro Server Side Request Forgery
Tentare di manipolare l'URL per ottenere una risposta/errore dal server al fine di determinare se viene effettuata una validazione dell'URL/richiesta.
Utilizzare una lista di stringhe di probe XSS da specificare come parametri a URL noti. Se possibile, usare stringhe di probe con identificatori unici.
Creare una richiesta GET con un percorso di file server comune come /etc/passwd come parametro ed esaminare l'output.
Attack Techniques
-
Attempt manipulating the URL to retrieve an error response/code from the server to determine if URL/request validation is done.
-
Use a list of XSS probe strings to specify as parameters to known URLs. If possible, use probe strings with unique identifiers.IT: Tentare di manipolare l'URL per ottenere una risposta/errore dal server al fine di determinare se viene effettuata una validazione dell'URL/ richiesta.
-
Create a GET request with a common server file path such as /etc/passwd as a parameter and examine output.IT: Tentare di manipolare l'URL per ottenere una risposta/errore dal server al fine di determinare se viene effettuata una validazione dell'URL/ richiesta.
Step 3
Exploit[Malicious request] Adversary crafts a malicious URL request that assumes the privilege level of the server to query internal or external network services and sends the request to the application
[Richiesta dannosa] L'avversario crea una richiesta URL dannosa che assume il livello di privilegio del server per interrogare servizi di rete interni o esterni e invia la richiesta all'applicazione