Principios de vulnerabilidad de falsificación de solicitudes del lado del servidor SSRF y métodos de búsqueda

Principios y métodos de búsqueda.

Introduccion

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

Motivos de formación de SSRF

La razón de la formación de SSRF se debe principalmente a que el servidor proporciona la función de obtener datos de otras aplicaciones de servidor y no filtra ni restringe la dirección de destino. Por ejemplo, obtenga el contenido de texto de la página web de la dirección URL especificada, cargue la imagen, el documento, etc. en la dirección especificada.

En primer lugar, debemos comprender la arquitectura del sitio web de destino. Por ejemplo: el sitio web A es un sitio web externo al que todos pueden acceder, y el sitio web B es un sitio web interno. Nuestros usuarios comunes solo pueden visitar el sitio web a, no el sitio web b. Pero podemos usar el sitio web a como intermediario y visitar el sitio web b para satisfacer las necesidades de atacar el sitio web b

Por lo tanto, el ataque general elige un servidor externo vulnerable al que podemos acceder (como trampolín)

El proceso para que un usuario normal acceda a un sitio web es
ingresar la URL del sitio web A-> enviar una solicitud-> el servidor A acepta la solicitud (sin filtro) y procesa-> devuelve la respuesta del usuario

		假设请求是 www.baidu,com/xxx.php?image=URL

Entonces, ¿dónde está la vulnerabilidad SSRF? Justo después de que el sitio web seguro reciba la solicitud, se detecta
el motivo de la legitimidad de la solicitud : la verificación del lado del servidor no filtra y restringe estrictamente el parámetro (imagen =) de la solicitud para obtener la imagen. Obtenga datos de otros servidores

Por ejemplo: www.oldboyedu.com/xxx.php?image=www.luffycity.com/1.jpg
¿Qué sucede si cambiamos www.luffycity.com/1.jpg a la dirección del servidor de intranet conectado al servidor? Que?
Si la dirección de la intranet existe, devolverá un código de estado de 1xx 2xx o similar, y si no existe, devolverá otro código de estado.

Resumen

La vulnerabilidad de SSRF es alterar la solicitud para obtener recursos y enviarla al servidor, pero el servidor no detecta si la solicitud es legal, y luego el servidor usa su identidad para acceder a los recursos de otros servidores.
Hay cinco tipos principales de ataques que los atacantes SSRF pueden usar ssrf
1. Puede escanear puertos en la red externa, la intranet donde se encuentra el servidor y local para obtener información de banner para algunos servicios;
2. Los ataques se ejecutan en aplicaciones internas o locales ( Por ejemplo, desbordamiento);
3. Identificación de huellas digitales de aplicaciones web de intranet mediante el acceso al archivo predeterminado;
4. Ataques de aplicaciones web de intranet y extranet, principalmente ataques que se pueden lograr utilizando parámetros get (como struts2, sqli, etc.);
5. Use el protocolo de archivo para leer archivos locales, etc.

La ubicación de la vulnerabilidad SSRF

Es probable que todos los parámetros para ajustar los recursos externos tengan vulnerabilidades ssrf,

1) Compartir: compartir contenido web a través de la dirección URL
2) Servicio de transcodificación
3) Traducción en línea
4) Carga y descarga de imágenes:
cargar o descargar imágenes a través de la dirección URL
5) Función de recopilación de imágenes y artículos
6) Implementación de API no publicada y otras llamadas La función de la URL
7) Buscar desde palabras clave URL,
compartir, wap, url, enlace, src, fuente, destino, u, 3g, pantalla, fuenteURL, imagenURL, dominio,

Método de autenticación

	burpsuite抓包分析
	右键打开图片

Bypass

Cambiar la escritura de la dirección IP

		一些开发者会通过对传过来的 URL 参数进行正则匹配的方式来过滤掉内网 IP,如采用如下正则表达式:
			^10(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){3}$
			^172\.([1][6-9]|[2]\d|3[01])(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){2}$
			^192\.168(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){2}$

Para este tipo de filtrado, podemos utilizar la forma de adaptar IP para omitir, por ejemplo, la dirección IP 192.168.0.1
se puede reescribir como:
(1), formato octal: 0300.0250.0.1
(2), formato hexadecimal: 0xC0.0xA8.0.1
(3), formato entero decimal: 3232235521
(4), formato entero hexadecimal: 0xC0A80001 usando el problema de analizar la URL En algunos casos, el programa de fondo puede realizar el acceso URL Resolver, filtrar la dirección de host resuelta. En este momento, los parámetros de URL pueden no analizarse correctamente, lo que puede hacer que se omita el filtrado.
http: //[email protected]/
dirección arbitraria + dirección de ataque Cuando el programa de fondo pasa una expresión regular incorrecta (como el contenido de caracteres después de http a com, que es www.baidu.com, Cuando se considera que es la dirección de host de la solicitud de acceso) Al analizar el contenido de la URL anterior, es probable que el host que accede a la URL sea www.baidu.com, pero en realidad el contenido solicitado por esta URL es 192.168.0.1 Contenido.

Implementación de fondo SSRF comúnmente utilizada

ssrf 攻击可能存在任何语言编写的应用,代码审计中要注意以下函数 		

file_get_contents

Obtenga la imagen de la URL especificada por el usuario, luego guárdela en el disco duro con un nombre de archivo aleatorio y muéstresela al usuario

fsockopen ()

Para obtener los datos (archivo o html) de la URL definida por el usuario. Esta función utilizará un socket para establecer una conexión TCP con el servidor y transferir los datos originales.

curl_exec ()

Utilizado para obtener datos

Publicado 94 artículos originales · elogiado 8 · visitas 5219

Supongo que te gusta

Origin blog.csdn.net/weixin_43079958/article/details/105420123
Recomendado
Clasificación