Pikachu-----CSRF (falsificación de solicitud entre sitios)

Tabla de contenido

 1. CSRF

1. Introducción

Dos, romper

1.CSRF(obtener)

 2.CSRF(publicación)

 3.CSRF---Token


 1. CSRF

1. Introducción

1.1 Introducción oficial

 sobre estos puntos

¿Qué es CSRF?

El nombre completo de CSRF es Falsificación de solicitud entre sitios (Cross-site request falsificación). Es un método de ataque a la red. En el escenario de ataque CSRF, el atacante falsificará una solicitud (esta solicitud suele ser un enlace) y luego engañará el usuario objetivo para hacer clic Una vez que el usuario hace clic en esta solicitud, todo el ataque está completo. También conocido como ataque con un clic o sesión de conducción.

Principio de ataque CSRF

Los ataques CSRF utilizan la confianza del sitio web en el navegador web del usuario para secuestrar la aplicación web del usuario actualmente conectado para realizar operaciones que no son la intención del usuario. La esencia es usar la autoridad del usuario para completar el ataque, por lo que el éxito del ataque requiere que el usuario haya obtenido la autoridad a través de la verificación y active la solicitud proporcionada por el atacante.

Sentencia de CSRF

Juzgar si un sitio web tiene una vulnerabilidad CSRF es en realidad juzgar si su operación (adición, eliminación, modificación) en información clave (como contraseñas y otra información confidencial) es fácil de falsificar.

Prevención de CSRF

Si un sitio web quiere evitar ataques CSRF, debe implementar las medidas de seguridad correspondientes para las operaciones de información confidencial para evitar que estas operaciones se falsifiquen y den como resultado CSRF. Por ejemplo:
-- Agregar un token seguro para la operación de información sensible;
-- Agregar un código de verificación seguro
para la operación de información sensible; contraseña, etc.

Dos, romper

1.CSRF(obtener)

 Miremos el indicador, hay un nombre de usuario y una contraseña.

 Iniciar sesión en esta página

 Pulsa para modificar la información y cambiar el género a niña

 Se encuentra que la URL superior no ha cambiado.

 Mire la captura de paquetes bp.

Se puede ver en la captura de paquetes que al modificar la información del usuario, no hay información de autenticación impredecible. Bueno, debería ser explotable aquí. 

En el estado de inicio de sesión de allen ( de hecho, este enlace no contiene el nombre de usuario, no importa quién inicie sesión, siempre que alguien inicie sesión, la información del usuario que inició sesión se cambiará a la proporcionada por el url), intente cambiarlo El enlace de arriba, como cambiar el número de teléfono. Introduzca la carga útil en la barra de direcciones del navegador:

http://127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=17867676677&add=nba+76&email=allen%40pikachu.com&submit=submit 

 Ingrese Payload en url, y la modificación es exitosa.

Si el estado de inicio de sesión de la víctima o la cookie/sesión no ha caducado en este momento, la información se modificará. 

Podemos usar enlaces cortos para generar URL, generar enlaces cortos y usarlos.

 El género se cambia con éxito a niño y el ataque tiene éxito.

 2.CSRF(publicación)

 El error se informa porque la versión de php es demasiado alta. Abra el archivo php y agregue una l después de MYSQL.

captura de paquetes bp

Tipo de publicación, la URL ya no muestra los parámetros modificados, por lo que el método anterior (es decir, falsificar la solicitud a través de la URL) ya no se puede usar para modificar, pero la captura de paquetes puede conocer las etiquetas y los nombres en esta página, que es conveniente para su uso posterior al construir el formulario.

El tipo de publicación es más problemático de usar que el tipo de obtención El atacante necesita escribir un archivo html que explote esta vulnerabilidad, ponerlo en su propio servidor y enviar un enlace al usuario para solicitar el archivo html.

Construya csrf.html con información modificada

<html>
    <script>                                                                                                       <!-- 这个script是用来自动提交表单的 -->
        window.onload = function() {
        document.getElementById("submit").click();
        }
    </script>              
    <body>
            <form action="http://127.0.0.1/pikachu/vul/csrf/csrfpost/csrf_post_edit.php" method="POST">    
                <input type="hidden" name="sex" value="girl" />
                <input type="hidden" name="phonenum" value="123456789" />
                <input type="hidden" name="add" value="usa" />
                <input type="hidden" name="email" value="[email protected]" />
                <input type="hidden" name="submit" value="submit" />
              <input id="submit" type="submit" value="Submit request" style="display:none"/>                    
	<!-- style设置为display:none起到隐藏submit按钮的作用 -->
            </form>
    </body>
</html> 

 Ponlo en el directorio de pikachu

desplegado en la piel

 Abra una nueva URL, visite http://127.0.0.1/pikachu/csrf.html

 Si hay un 404, debe ser por la siguiente razón, si el archivo csrf_post.php detecta que el usuario no ha iniciado sesión, saltará al csrf_get_login.php en la misma carpeta (csrfpost), pero en realidad no hay dicho archivo en la carpeta csrfpost, por lo que Devuelve 404 no encontrado.

Abra csrfpost.php, cambie el encabezado ("ubicación: csrf_get_login.php"); al encabezado ("ubicación: csrf_post_login.php"); 

 Ingrese http://127.0.0.1/pikachu/csrf.html, el ataque es exitoso.

 3.CSRF---Token

Modificamos la información y usamos bp para capturar el paquete y encontrar el valor del token.

 Enviar a repetidor

Elimine el token y descubra que no se ha modificado correctamente.

 Después de una captura, no hay regularidad entre fichas.

 Paquete de captura de bp del navegador de Google

Coloque el token capturado en Google Chrome en el paquete del navegador Firefox y descubrió que aún no se puede modificar.

Sin embargo, todavía tenemos una manera Aquí podemos usar el complemento CSRF Token Tracker de bp para evitar la verificación del token.

Abra el complemento del token CSRF, ingrese la IP del host para el host, ingrese el token para el nombre e ingrese el valor del token para el valor.

 Esto es antes de que se active el complemento de token bp, la modificación no tendrá efecto.

 Cuando se enciende el complemento, generará aleatoriamente el valor del token correspondiente a t.

 ¡El ataque fue exitoso! ! !

 Aunque el valor del token no se puede eliminar y no existe ninguna regla, el valor del token modificado desde el navegador de Google aún no está disponible para el navegador Firefox, pero aún podemos usar algunos métodos de omisión para atacar. La validación todavía tiene algunos problemas.

código fuente

Al modificar la información del usuario, el servidor comparará el campo del token en la URL y el campo del token en la sesión, y solo modificará la información del usuario si son iguales.

Luego de modificar la información del usuario, se usará la función set_token() para generar un nuevo token, el cual será devuelto al formulario html y oculto, para que la próxima vez que el usuario modifique la información ingrese la url. 

 

 La función set_token() se muestra en la siguiente figura. Antes de generar un nuevo token, el antiguo token se destruirá primero para evitar la reutilización del token.

Acho que você gosta

Origin blog.csdn.net/m0_65712192/article/details/128363288
Recomendado
Clasificación