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“.

Documentos relacionados