· 6 years ago · Dec 09, 2019, 05:20 PM
1Reporte de fallos de seguridad para https://www.*********.com el 27 de Noviembre, 04:32 hora española.
2
3Reflected XSS en https://www.*********.com/******.php
4via POST modificando parámetros fecha1 y fecha2.
5
6Usuario y contraseña de administración predecibles en https://www.*********.com/*****.php
7
8CSRF logout/login en https://www.*********/*****.php y www.*********/*****.php via GET (petición a la url) .
9
10
11Se han encontrado 3 fallos de seguridad reseñables en el test de penetración manual no requerido realizado con User-Agent: SM y dirección IP (183.71.717) entre la tarde del día 27 de noviembre y la mañana del 28 de noviembre (hora española). Al sitio web accesible mediante el nombre de dominio https://www.*********.com .
12
13
14-Reflected XSS:
15 Este fallo de seguridad se produce por no realizarse la correcta validación de los datos introducidos por el usuario en la aplicación. La explotación del mismo consiste en la modificación del formulario con nombre:"guardarF" con el objetivo de poder introducir texto y por ende codigo javascript malicioso en campos reservados únicamente para valores numéricos. No se comprueba en el código PHP que el usuario envíe fechas y no código malicioso que pueda ser interpretado por el navegador o el servidor.
16
17
18Réplica por pasos.
191) Loggearse en la página.
20
212) Ir a https://www.*********.com
22
233) Introducir en la barra de direcciones del navegador el siguiente código javascript para crear un formulario que permita enviar texto en campos que estaban pensados para enviar solo fechas y pulsar enter.
24
25javascript:document.write("<div class=\"container\"><div class=\"formT\"><h2>Seleccione <span> Fechas(turno 2)</span></h2></div><form class=\"formR\" name=\"guardarF\" id=\"registro\" method=\"POST\" action=\"*******.php\" ><input class=\"input\" type=\"text\" name=\"fecha1\" id=\"fecha1\" ><input class=\"input\" type=\"text\" name=\"fecha2\" id=\"fecha2\" ><div><input class=\"btnS\" type=\"submit\" value=\"Almacenar\"><input class=\"btnR\" type=\"reset\" value=\"Borrar\"></div></div></form></div>");
26
274) Introducir en el primer campo generado el símbolo
28<
29
30Introducir en el segundo campo generado
31 script>alert("Ejecución arbitraria de javascript");</script>
32
335) Pulsar el botón Almacenar.
34
356) El script es ejecutado en el navegador.
36
37Este fallo de seguridad permite a un usuario malintencionado reflejar código javascript en el navegador de un usuario legítimo de la aplicación. El atacante puede realizar acciones potencialmente peligrosas como el robo de la sesión de un usuario legítimo que tenga su sesión iniciada en la aplicación/web, cuando el usuario visite una página web con código malicioso preparado para explotar este fallo de seguridad. El usuario tan solo tiene que entrar en un página maliciosa/infectada para que le roben la sesión.
38
39Recomendación de seguridad:
40Es necesario validar desde el servidor todos los campos y demás mecanismos que de alguna forma permitan al usuario enviar cualquier tipo del dato al servidor.
41
42Utilizar la función htmlentities() para impedir que el navegador del usuario interprete el código malicioso. https://www.w3schools.com/php/func_string_htmlentities.asp
43
44Información más detallada sobre el fallo de seguridad:
45Explicación general de los fallos de seguridad XSS: https://diego.com.es/ataques-xss-cross-site-scripting-en-php
46
47Explicación detallada del fallo de seguridad encontrado:
48http://itfreekzone.blogspot.com/2009/12/rompiendo-lo-grande-xss-avanzado.html
49
50OMITO EL RESTO DE FALLOS EN EL REPORTE POR NO AGRANDAR EL POST EN EL FORO.
51
52Este test de penetración se realizó de forma aleatoria y altruista con el único objetivo de mejorar la seguridad de los usuarios en la red. EN NINGÚN MOMENTO se accedió a información sensible, NO se han utilizado los fallos de seguridad encontrados con ningún propósito. Y NO se han emitido ni se van a emitir ni públimente, ni a terceros ninguna información del sitio afectado. Cualquier queja, duda o sugerencia, puede redactar un correo electrónico a *******@gmail.com .