Serie DVWA-Fuerza bruta
Introducción a la fuerza bruta
El principio de la fuerza bruta es utilizar el propio diccionario de nombre de usuario y contraseña del atacante para enumerar uno por uno, porque teóricamente, siempre que el diccionario sea lo suficientemente fuerte, la enumeración siempre tendrá éxito.
Entorno: java
preparación del diccionario de
contraseñas débiles diccionario en línea muchos gratuitos para descarga
herramienta de
navaja suiza (Brupsuite)
bajo nivel de
nombre de usuario abierta DVWA simplemente abierta de bajo nivel y la contraseña y luego abrir el agente navegador con Brupsuite corte
Envíe al módulo de intrusos porque desea utilizar el nombre de usuario y la contraseña al mismo tiempo, seleccione Bomba de racimo para
limpiar otros objetivos, seleccione el nombre de usuario y la contraseña de dos objetivos
Seleccione el modo de archivo en tiempo de ejecución y seleccione el diccionario del objetivo 1 y 2 respectivamente, y luego comience a disparar. La
contraseña y el nombre de usuario se obtienen por la longitud diferente del valor de retorno. La explosión es exitosa
Puedes ver el efecto en render
Nivel medio
Este nivel se puede ver a través del código fuente que solo se inyectan el nombre de usuario y la contraseña sin ninguna protección contra explosiones, por lo que aún puede usar el método de nivel bajo para volar el
nivel alto.
A través del código fuente, podemos ver que este nivel es correcto. Hay
una verificación de token adicional para la prevención de explosiones sin cerebro.
Echemos un vistazo al Broupsuit
El valor de toma obtenido por el truncamiento de dos envíos es diferente, por lo que no podemos usar este método.
Esto requiere la escritura de
código Python, la instalación de bibliotecas de terceros, solicitudes de instalación de pip,
análisis de proceso de instalación de pip bs4 :
1 solicitud página 2 obtener token de usuario 3 enviar solicitud Obtenga la respuesta
4 Busque la contraseña correspondiente con diferente longitud de respuesta, verifique el
nivel de prueba imposible.
El código fuente puede ver la diferencia de los primeros tres niveles. El
nombre de usuario y la contraseña se envían mediante POST, que es más seguro, y la entrada del usuario se filtra.
if( isset( $_POST[ 'Login' ] ) && isset ($_POST['username']) && isset ($_POST['password']) ) {
// Check Anti-CSRF token
checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );
El token Anti-CSRF se utiliza para evitar el craqueo por fuerza bruta sin cerebro.
Al mismo tiempo, se establece el número de fallos de inicio de sesión, el craqueo por fuerza bruta es limitado y tres errores se bloquean durante 15 minutos.
$total_failed_login = 3;
$lockout_time = 15;
$account_locked = false;