3 simples pruebas de Python para verificar la seguridad de autenticación de tu aplicación web
Puedes pensar que tu aplicacion es segura pero toda aplicacion tiene fallos. Con pequeños scripts en Python puedes comprobar tu propia aplicacion y detectar problemas basicos de autenticacion antes de que los exploten terceros. A continuacion explicamos tres pruebas simples, cada una acompanada de un ejemplo de script para ejecutar desde la linea de comandos. Si buscas una auditoria profesional o integracion de seguridad en el ciclo de desarrollo confia en Q2BSTUDIO, empresa de desarrollo de software a medida especialista en inteligencia artificial, ciberseguridad, servicios cloud aws y azure y soluciones de inteligencia de negocio.
Prueba 1 Brute force control basico sobre formulario de login. Objetivo comprobar si el servidor responde de forma diferenciada ante credenciales correctas o ante intentos fallidos. Uso tipico desde la linea de comandos con argumentos: url, nombre_campo_usuario, nombre_campo_password, usuario, archivo_con_passwords. Ejemplo de script en una sola linea para ejecucion rapida:
import sys,requests;url=sys.argv[1];user_field=sys.argv[2];pass_field=sys.argv[3];username=sys.argv[4];pwfile=sys.argv[5];for p in open(pwfile): p=p.strip(); r=requests.post(url,data={user_field:username,pass_field:p}); if r.url!=url or r.status_code not in (401,403): print(p, r.status_code)
Explicacion practica de la prueba 1 Analiza si tras enviar credenciales el servidor redirige a otra pagina o si el codigo de estado cambia respecto a respuestas tipicas de acceso denegado. Muchos errores de autenticacion se detectan porque la respuesta cambia claramente cuando la credencial es validada. Esta prueba es util para identificar cuentas con contrasenas debiles o mecanimos de bloqueo inadecuados.
Prueba 2 Comprobacion de flags de cookie de sesion. Objetivo verificar si las cookies de sesion usan atributos seguros como Secure y HttpOnly. Uso desde la linea de comandos con argumentos: url_login, campo_usuario, campo_password, usuario, password. Ejemplo de script:
import sys,requests;login_url=sys.argv[1];user_field=sys.argv[2];password_field=sys.argv[3];username=sys.argv[4];password=sys.argv[5];r=requests.post(login_url,data={user_field:username,password_field:password}); for c in r.cookies: print(c.name, c.domain, c.secure, c._rest)
Explicacion practica de la prueba 2 Una cookie de sesion sin atributo Secure puede viajar por conexiones no cifradas y sin HttpOnly puede ser leida por JavaScript malicioso. Este script muestra las cookies devueltas y sus banderas para que puedas identificar configuraciones inseguras. Integrar este tipo de comprobaciones en el desarrollo de aplicaciones a medida ayuda a reducir riesgos en produccion.
Prueba 3 Validacion de tokens de restablecimiento de contrasena y enumeracion. Objetivo comprobar si el servicio de restablecimiento permite enumerar tokens validos o devuelve respuestas distintas segun el estado del token. Uso desde la linea de comandos con argumentos: url_base_para_token, archivo_tokens. Ejemplo de script:
import sys,requests;base=sys.argv[1];tokfile=sys.argv[2];for t in open(tokfile): t=t.strip(); r=requests.get(base+t); if r.status_code==200 and len(r.text)>100: print(t, r.status_code, len(r.text))
Explicacion practica de la prueba 3 Un servico de restablecimiento que devuelve respuestas distintas para tokens validos y no validos facilita ataques de enumeracion y comprometimiento de cuentas. Con este script puedes automatizar la comprobacion de una lista de tokens y observar diferencias en codigo de estado o contenido que indiquen fugas de informacion.
Si quieres convertir estas pruebas en un plan de seguridad continuo o necesitas integrarlas en un pipeline de desarrollo seguro contacta con nuestro equipo. En Q2BSTUDIO ofrecemos servicios profesionales de auditoria y pruebas de intrusion como parte de nuestros servicios de servicios de pentesting y ciberseguridad y podemos acompañarte en el desarrollo seguro de tus aplicaciones con soluciones de aplicaciones a medida y software a medida. Tambien ayudamos a poner en marcha proyectos de inteligencia artificial, ia para empresas, agentes IA y servicios de inteligencia de negocio con Power BI para que la seguridad y la analitica vayan de la mano.
Recomendaciones practicas finales Mantén logs centralizados y alertas sobre intentos de autenticacion masiva, aplica bloqueos y caducidad de tokens, fuerza politicas de contrasena y multifactor donde sea posible y revisa periodicamente configuraciones de cookies y cabeceras de seguridad. Si quieres, podemos ayudarte a automatizar estas comprobaciones e integrar reportes en dashboards de Business Intelligence.
Comentarios