[Pruebas de penetración] Postura del lado web-Uso de la parte frontal

Tabla de contenido

Interfaz

Hay un problema

Acerca del restablecimiento de contraseña

ataque jwt

jwt introducción

uso de herramientas

fuente de aprendizaje


Interfaz

Hay un problema

Cualquier registro de usuario

Acceso no autorizado, acceso directo al enlace correspondiente, puede obtener permisos del sistema
Nombre de usuario de Blasting
Nombre de usuario de Blasting, contraseña
Inyección de nombre de usuario
Contraseña maestra
Nombre de usuario Xss
Modificar información del paquete de devolución, iniciar sesión en otras cuentas
Modificar parámetros en cookies, como usuario, adminid y otros
antecedentes Los parámetros de inicio de sesión se cambian a parámetros de registro /reg, /register, /sign, etc.

Después de que se envía el código de verificación, se repite en el paquete de datos de retorno
Si el inicio de sesión falla, el paquete de retorno se modifica, por ejemplo, "falso" se cambia a "verdadero", y el valor de respuesta "0" se cambia a "1", y el fondo de inicio de sesión. Si existen estas situaciones, los Js y Html de front-end generales también pueden encontrar directamente las diversas interfaces de acceso no autorizado correspondientes a los
Js y Html de back-end, que tienen información de anotación como el nombre de usuario y la contraseña
. la contraseña de cuenta predeterminada correspondiente al sistema para iniciar sesión.
Algunos sistemas tienen contraseñas vacías. , deje la contraseña en blanco o envíela en blanco después de capturar el paquete. Si
hay fuga de información, puede ir a la base de datos de ingeniería social para encontrar la correspondiente contraseña No hay función de registro en la página, y el código de verificación no se realiza cuando
encuentra la interfaz de registro oculta a través de Js o Html para código de verificación no está vinculado, el código de verificación se envía pero el backend recibe cualquier código de verificación, puede registrarse, explotar, restablecer la contraseña, etc.

Generador de contraseñas de diccionario de ingeniería socialGitHub - zgjx6/SocialEngineeringDictionaryGenerator: Generador de contraseñas de ingeniería social, una herramienta que utiliza información personal para generar contraseñas (lado html)

GitHub - Mebus/cupp: Perfilador de contraseñas de usuario comunes (CUPP) (Linux工具)

Acerca del restablecimiento de contraseña

El código de verificación no es válido: voladura del código de verificación

Restablezca una cuenta, no envíe un código de verificación, configure el código de verificación para que esté vacío y envíe una solicitud.

Envíe el código de verificación, verifique el paquete correspondiente y vea el código de verificación en el paquete
Explosión de la vida útil del código de verificación Modifique el
paquete correspondiente como un paquete correspondiente exitoso y envíelo
Omita el paso de verificación: primero modifique la contraseña normalmente, y ingrese la contraseña después de registrar el código de verificación La información de la página, como la URL, y luego vuelva a ingresar el nombre de usuario, ingrese la URL en la página del código de verificación para ir a la página de modificación de la contraseña para su modificación.
El código de verificación no está vinculado al usuario: dos cuentas, al restablecer la contraseña de otra persona, reemplace el código de verificación con su propio código de verificación correcto
Al restablecer la contraseña de otra persona, capture el paquete y reemplace el número de teléfono móvil con su propio número de teléfono móvil o dirección de correo electrónico
para restablecer el suyo Cuando tenga éxito, acepte que el navegador restablezca el de otras personas, sin enviar un código de verificación.
Reemplace el nombre de usuario, ID, cookie, parámetros de token y otros parámetros de autenticación.
Restablezca modificando la información recuperada de otras personas, como el teléfono móvil/correo electrónico sin autoridad 

Ocultación de parámetros: capture paquetes al ingresar el nombre de usuario, copie los parámetros del usuario, ingrese la contraseña correcta para proteger y salte a la página de modificación de contraseña, ingrese la contraseña para modificar el paquete de datos de intercepción y descubra que los parámetros del usuario no son visibles, agregue los parámetros de usuario delante de la contraseña y modificar el valor del parámetro Si establece el valor del parámetro para otros, puede modificar las contraseñas de otras personas.

Referencia de: (3 mensajes) Vulnerabilidad lógica: restablecimiento de contraseña_Blog de J0hnson666-CSDN Blog_vulnerabilidad de restablecimiento de contraseña

ataque jwt

jwt introducción

JSON Web Token (JWT) es un estándar abierto (RFC 7519) para representar de forma segura reclamos entre dos partes.
JWT es un mecanismo de autenticación sin estado, generalmente utilizado para la autorización y el intercambio de información. JWT solo usa algoritmos para verificar la validez del Token y no depende de bases de datos, Memcached y otros sistemas de almacenamiento, por lo que se puede lograr la verificación entre servidores Siempre que las claves y los algoritmos sean los mismos, los Tokens son generados por diferentes programas de servidor pueden verificarse entre sí Una vez que dominamos Una vez que se construye el token, cualquier usuario conocido puede ser imitado para operar .

estructura jwt: encabezado (encabezado), carga útil (carga útil), firma (firma). La forma habitual es: xxxxx.yyyyy.zzzzz.

Encabezado : el encabezado se utiliza para describir la información más básica sobre el JWT y, por lo general, consta de dos partes: el tipo de token (es decir, JWT) y el algoritmo de firma utilizado. Por ejemplo: { "alg": "HS256", "tipo": "JWT" ​​​​}. Alg representa el método de cifrado, modifica el nombre de usuario y otros lugares de autenticación de identidad, establece HS256 en ninguno para generar una solicitud de envío de token y usa el módulo pyjwt de python

Carga útil : la segunda parte del token es la carga útil, que coloca información básica sobre el token para ayudar al servidor que lo acepta a comprender el token. Al mismo tiempo, también puede contener información personalizada, intercambio de información de usuario. Por ejemplo: { "sub": "1234567890", "name": "John Doe", "admin": true }

Firma : para crear la parte de la firma, debe tomar el encabezado codificado, la carga útil codificada, la clave, el algoritmo especificado en el encabezado y firmarlo.
Por ejemplo, si desea utilizar el algoritmo HMAC SHA256, la firma será creada por:

HMACSHA256(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret)

La firma se usa para verificar que el mensaje no ha sido alterado en todo momento, y en el caso de tokens firmados con una clave privada, también verifica que el remitente del JWT es quien dice ser.

Tokens web JSON - jwt.io

 

Para jwt sin firmar: después de decodificar la cadena JWT original, modifique el nombre de usuario y otros lugares de autenticación de identidad, y genere un nuevo token para enviar la solicitud

uso de herramientas

jwt_herramientas:

GitHub - ticarpi/jwt_tool: un conjunto de herramientas para probar, ajustar y descifrar tokens web JSON

Descargar y configurar:

$ git clone https://github.com/ticarpi/jwt_tool
$ python3 -m pip install termcolor cprint pycryptodomex requests
$ cd jwt_tool
$ python3 jwt_tool.py -h
$ python3 jwt_tool.py eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwicm9sZSI6InVzZXIiLCJpYXQiOjE1MTYyMzkwMjJ9.1rtMXfvHSjWuH6vXBCaLLJiBghzVrLJpAQ6Dl5qD4YI -d /usr/share/wordlists/dirb/common.txt -C

Hay ejercicios de vulnerabilidad en el campo de tiro webgoat correspondiente, que se pueden probar.

fuente de aprendizaje

Resumen de vulnerabilidades de autenticación de inicio de sesión web | Selección técnica 0137 (qq.com)

Manual de ataque JWT - Bypass - Blog Garden (cnblogs.com)

Supongo que te gusta

Origin blog.csdn.net/weixin_52450702/article/details/128725266
Recomendado
Clasificación