Práctica 3 Vulnerabilidades Web y uso de modsecurity
Transcripción
Práctica 3 Vulnerabilidades Web y uso de modsecurity
Práctica 3 Vulnerabilidades Web y uso de modsecurity Alexandre Ramilo Conde Pablo Prol Sobrado XSS Tenemos un foro que es vulnerable a ataques XSS. Para comprobarlo, entraremos al foro desde el navegador de internet, y accederemos con usuario ana y contraseña ssi. Creamos un nuevo contenido en el foro con la cadena “<script> alert(''esto admite XSS'') </script>”. Esta cadena, en vez de interpretarse posteriormente como una simple cadena, se insertará en el HTML al mostrarlo de la base de datos como si de código HTML se tratará, por lo que se ejecutará el script y saltará una ventana diciendo “esto admite XSS”). SQL Entramos en el foro con el usuario “ ‘ OR 1=1; # ” y sin contraseña. Esta cadena, al introducirla en la sentencia SQL, evitará que se haga la comprobación de la contraseña y devolverá un resultado positivo (Porque 1=! siempre es cierto), de tal manera que obtendremos acceso. Wordpress En este caso, atacaremos insertando directamente el código SQL en la URL, de esta manera “http://192.168.100.33/wordpress/index.php? cat=999%20UNION%20SELECT%20null,CONCAT(CHAR(58),user_pass,CHAR(58),user_login ,CHAR(58)),null,null,null%20FROM%20wp_users”. La consulta, nos devolverá la contraseña del usuario admin en md5, que resulta ser “e201994dca9320fc94336603b1cfc970”. Se podría probar a buscar en servicios online si existe registrado el texto claro de esta cadena md5, en este caso tenemos suerte y resulta que la cadena md5 anterior, en texto claro, es “secreto”. Modsecurity Necesitamos instalar los paquetes necesarios, y descargamos las reglas de OWASP, descomprimiendolas en el directorio “/etc/modsecurity/owasp_rules”. Editamos el fichero de configuración, añadiendo : “ Include "/etc/modsecurity/owasp_rules/modsecurity_crs_10_setup.conf" Include "/etc/modsecurity/owasp_rules/activated_rules/*.conf" “ Enlazar en el directorio base_rules los ficheros con las reglas a utilizar (En este caso el conjunto de reglas básico completo), habilitamos el módulo mod-security en Apache y reiniciamos el servidor. Comprobaremos los ataques vistos anteriormente de nuevo, viendo como funcionan igualmente, así que configuramos modsecurity en el modo rechazo (Ya que estaba en el modo detección). De esta manera, al repetir las pruebas, obtenemos “ Forbidden You don't have permission to access /foro/login.php on this server. Apache/2.2.16 (Debian) Server at modsecurity.ssi.net Port 80“ con el ataque SQL, y de una manera similar al realizar el ataque de wordpress “Forbidden You don't have permission to access /wordpress/index.php on this server. Apache/2.2.16 (Debian) Server at modsecurity.ssi.net Port 80“.