TOP16 CSRF: explicación súper detallada de Xiaohei + explicación del caso <Artículo del tesoro>

              CSRF: la falsificación de solicitudes entre sitios, que es fácil de entender, consiste en robar la identidad de otra persona y falsificar una solicitud al servidor y realizar operaciones dentro de la protección de permisos sin autorización. Debido a que todos los procesos de solicitud son operaciones normales, esto también es común Comportamiento vulnerable que no será detectado.

             ¡Hola chicos, arremangarse y trabajar duro! ! !

Tabla de contenido

Comprensión CSRF

Una base simple para determinar si existe una vulnerabilidad CSRF

 Caso 1 (DVWA-bajo):

burpsuite genera rápidamente CSRF poc

 Copie el poc y cambie el texto a formato html.

Principio de prueba:

Resumen:

Caso 2  (medio):

    Método de derivación uno:

    Método de derivación dos:

Caso 3 (Nivel ALTO):

   La primera forma de evitarlo:

   Segundo método de derivación:


Comprensión CSRF

           Por ejemplo, cuando inicia sesión en QQ u otro sitio web con permiso de inicio de sesión de QQ en un navegador, navega por un sitio web incorrecto mientras está conectado y hace clic en un enlace incorrecto del sitio web, el atacante puede usar la información de las cookies existentes para robar su QQ. información., cambiar la contraseña de QQ, enviar mensajes de texto, correos electrónicos, espacios en su nombre... [tos, tos, tos.... Sin embargo, generalmente se verá el cambio de la contraseña de la cuenta, por lo que hay un conjunto de operaciones como recopilar información más tarde. Debe hacerse rápidamente】

          Ampliación de ideas : falsificar solicitudes entre sitios puede ser una forma de recopilar información del usuario, como recopilar automáticamente la contraseña de la cuenta del usuario después de hacer clic en un enlace en lugar de modificarlo, etc. CSRF puede eludir los firewalls porque no contiene código malicioso. o los personajes confidenciales solo roban los permisos del atacante para realizar operaciones dentro del alcance del cumplimiento.

Una base simple para determinar si existe una vulnerabilidad CSRF

1. Obtenga un paquete de solicitud con datos normales, como una solicitud de página de inicio de sesión u otros paquetes de solicitud con permisos de operación del usuario. Si no hay un campo de referencia, existe una alta posibilidad de que se produzca una vulnerabilidad CSRF.

2. Si hay un campo de referencia, y si el envío aún es válido si se elimina el campo de referencia, básicamente se puede determinar que existe CSRF.

3. Utilice herramientas para detectar si existe CSRF

 Caso 1 (DVWA-bajo):

burpsuite genera rápidamente CSRF poc

            A través de la captura de paquetes de bajo nivel en el primer nivel, se genera un script CSRF POC.

 Copie el poc y cambie el texto a formato html.

Principio de prueba:

                               El nivel bajo no tiene ninguna medida de protección. Solo necesita verificar si la cuenta y la contraseña son las mismas y se cambiará la contraseña. Simplemente abra el script en el mismo navegador y haga clic en el enlace para realizar el salto para cambiar la cuenta. y contraseña. (Desventaja: El usuario debe utilizar el mismo navegador para abrir el enlace, de lo contrario no tendrá ningún efecto).

                             El principio aquí es que CSRF monta el enlace a la página web mediante montaje en caballo, el usuario saltará automáticamente al hacer clic en el enlace y luego ejecutará el contenido del script POC de CSRF.

Resumen:

Los ataques CSRF son fáciles de detectar y deben realizarse sin saberlo.

1. Utilice enlaces cortos para ocultar la URL que desea redirigir y modificar. Inicio del webmaster: herramienta de generación de enlaces cortos https://tool.chinaz.com/tools/dwz.aspx (Desventaja: sin embargo, la página con la contraseña cambiada aparecer)

2. Sitio web de phishing, cargue una red trampa en la Internet pública (pero si el enlace predeterminado no se abre en el mismo navegador, no se puede robar)

3. Combinado con el xss almacenado, escriba el código CSRF en el punto de inyección xss para lograr el estado de suspensión de la página web.

Caso 2:

        DVWA (medio):

                   El parámetro de referencia del encabezado http filtrado y verificado debe contener el nombre del host y no se puede utilizar el archivo html generado original.

Método de derivación uno:

          Nombra el archivo POC generado como nombre de host IP.html (la dirección del servidor del atacante) y cárgalo en una ruta determinada en el servidor del atacante.

El formato es http://dirección del servidor del atacante/xxx/archivo html atacado [ idea, saltar al servidor del atacante en el sitio web atacado y acceder al archivo html para lograr el propósito del ataque ]

 Método de derivación dos:

              Al descubrir que no hay un campo de referencia en el método de envío de URL de la contraseña de la cuenta, podemos cambiar el campo de referencia a voluntad para lograr el propósito del ataque. De hecho, esto debe considerarse como una vulnerabilidad lógica.

               Al tomar el paquete de URL, encontramos que no hay ningún campo de referencia, luego podemos personalizar el campo de referencia, pero debe ser el mismo que el encabezado del host. La cuenta original es 123456, la cual fue modificada a admin [Desde aquí puedes pensar, ¿cómo usarla? Generalmente, get no enviará la cuenta y la contraseña. Incluso si se envía el get y el backend realiza la verificación de datos, no hay forma de modificar la cuenta y la contraseña....]

 

Caso 3 (Nivel ALTO):

            La primera forma de evitarlo:

         Después de la verificación del token, el servidor devolverá un token aleatoriamente y el token se verificará primero antes de procesar la solicitud del cliente. Aquí, la vulnerabilidad xss almacenada se combinará para capturar el token y luego se puede formar un csrf para modificar el usuario. contraseña de la cuenta [cuando se inyecta xss en la página de modificación, cuando el usuario accede a la página de modificación, se activará XSS, el valor del token enviado por el servidor será interceptado y luego se utilizará CSRF para modificar la contraseña ]

CSRF combina vulnerabilidades de almacenamiento XSS y obtiene el valor del token a través de La ruta del punto de vulnerabilidad del CSRF que debe interceptarse.

xss_s (nivel alto): txtName=<iframe src="../CSRF" οnlοad=alert(frames[0].document.getElementsByName('user_token')[0].value)>(Hay un límite para la entrada longitud de entrada, puede omitir la captura de paquetes de burpsuite)

   Segundo método de derivación:

omisión del complemento burpsuite:

El primer paso es encontrar el complemento e identificar automáticamente el valor del token a través del complemento CSRF Token Tracker de burpsuite.

 El segundo paso es establecer el valor de IP del host y el campo del token.

Paso 3: Capture el paquete y libérelo. DVWA verifica el valor del token. Solo puede liberar el paquete una vez y el token se volverá a verificar.

 CSRF-Token Tracker verificará automáticamente el valor de tongken después de abrirlo.

Supongo que te gusta

Origin blog.csdn.net/G_WEB_Xie/article/details/129861582
Recomendado
Clasificación