pikachu - SSRF

SSRF (falsificación de solicitudes del lado del servidor: falsificación de solicitudes del lado del servidor) es una vulnerabilidad de seguridad construida por un atacante para formar una solicitud iniciada por el servidor. En general, el objetivo de los ataques SSRF son los sistemas internos a los que no se puede acceder desde la red externa. (Es porque es iniciado por el servidor, por lo que puede solicitar un sistema interno conectado a él y aislado de la red externa). 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 del servidor y Filtre y restrinja la dirección de destino. Por ejemplo, obtenga el contenido del texto de la página web de la dirección URL especificada, cargue la imagen en la dirección especificada, descargue, etc.

A continuación, estudiaremos más a través del ejemplo SSRF en la plataforma pikachu.

1. SSRF (curl) Antes que nada, echemos un vistazo a para qué se utiliza la función curl en PHP. curl es una biblioteca que le permite comunicarse con muchos tipos diferentes de servidores a través de URL, y también es compatible con muchos protocolos. curl puede admitir autenticación https, publicación http, carga ftp, proxy, cookies, autenticación de contraseña simple, etc.

Echemos un vistazo al código en esta parte de pikachu:

A partir del código anterior, podemos ver que el cliente puede utilizar el método GET para enviar los parámetros y el contenido de la URL. El siguiente párrafo es devolver la URL enviada por el usuario al cliente para su ejecución. Aquí asumimos que el envío es este: aquí enviamos los parámetros y el contenido de la url, el servidor lo ejecuta con la función curl_exec () y muestra el resultado con echo $ RES.

Entonces podemos usar la función curl_exec () para realizar algunas operaciones maliciosas. Por ejemplo, nuestra máquina también está equipada con sqli-lab, suponemos que no se requiere acceso externo. Y aquí podemos construir dicha URL para acceder: localhost / pikachu / vul / ssrf / ssrf_curl.php? Url = http: //127.0.0.1/sqli/

Segundo, SSRF (file_get_content) La función de la función file_get_content () es leer archivos locales y remotos. Echemos un vistazo al código en esta parte de pikachu: aquí podemos ver que se puede leer un archivo. Si se trata de una ruta directa local, el nombre remoto debe agregarse al nombre de dominio.

Aquí hay una demostración de lectura local. Ahora creamos un archivo 1.txt bajo la unidad D, el contenido es el siguiente

Luego ingrese en el navegador del cliente: localhost / pikachu / vul / ssrf / ssrf_fgc.php? File = file: /// D: //1.txt Aquí podemos ver que se lee el contenido del archivo local. Si lee la información del servidor en la intranet, siempre que el servidor web tenga permiso, es muy probable que la lea.

Supongo que te gusta

Origin www.cnblogs.com/tangjf10/p/12673947.html
Recomendado
Clasificación