Mostrando entradas con la etiqueta vulnerabilidad. Mostrar todas las entradas
Mostrando entradas con la etiqueta vulnerabilidad. Mostrar todas las entradas

viernes, 21 de marzo de 2014

Prevenir ataques XSS con input-filter php


Vídeo explicativo ...



Bienvenid@s, hoy vamos a ver como usar una clase PHP que nos permitirá evitar ataques XSS, esta clase se llama input-filter y la podéis descargar en el siguiente enlace: descargar.

¿Por qué utilizar input-filter y cuando?

Por ejemplo, tenemos un sistema de comentarios en el cual sólo queremos permitir determinadas etiquetas HTML, supongamos que las etiquetas: b,i,p,img y además queremos permitir tan sólo el atributo src para img, pues con input-filter lo vamos a poder lograr, en este caso la función strip_tags() de PHP se convierte en vulnerable, ¿por qué?, veamos un ejemplo:

<?php
$comentario = strip_tags($_POST["comentario"], "<b><i><p><img>");
...

En la línea anterior estamos utilizando strip_tags() para permitir sólo las etiquetas que estamos indicando en el segundo parámetro "<b><i><p><img>" pero, ¿que ocurriría si un atacante incluyese el siguiente código en el campo del comentario? ...

<b onmouseover="window.location=\'http://atacante.com/te-robo.php\'">Haz click sobre mi para ver una mujer hermosa</b>

Estaría inyectando código javascript a través del evento onmouseover de Javascript, como podemos ver el atacante podría redireccionar a cualquier usuario a un script en su servidor para tratar, por ejemplo, de robar las credenciales del usuario simulando la pagina de inicio de sesión de la web atacada.

Así que strip_tags() no es seguro para permitir determinadas etiquetas html, de lo contrario si no quieres permitir ninguna etiqueta html opcional, puedes utilizar htmlspecialchars() o htmlentities() en este caso no te sería necesario el uso de input-filter ya que estás funciones se encargarán de convertir los caracteres especiales a sus respectivas entidades HTML.

En el caso de que queramos incluir determinadas etiquetas HTML utilizaremos input-filter del siguiente modo ...

<?php 
require "input-filter/class.inputfilter.php";
/* Sólo las etiquetas b,i,p,img y sólo el atributo src para la imagen */
$filter = new InputFilter(array('b', 'i', 'b', 'img'), array('src'));
 /*Filtrar el campo comentario*/
$comentario = $filter->process($_POST["comentario"]);
...

Con este filtro ya estamos evitando que cualquier atacante pueda hacer uso de otro atributo que no sea src para las imagenes, impidiendo la ejecución de código javascript en algún método javascript.


Encontrar vulnerabilidades en joomla con joomscan


Bienvenid@s, hoy vamos a conocer una herramienta llamada joomscan  desarrollada por OWASP para saber cuanto de segura es nuestra aplicación de Joomla, sobre todo en versiones más antiguas hay plugins, componentes o módulos en los que han sido detectadas vulnerabilidades, aunque esto no significa que lo presente no lo sea, ya que joomla es un gran almacen donde participan terceros y es imposible llevar un control absoluto del mismo.

joomscan está desarrollada con Perl, así que para usar esta herramienta es necesario tener Perl instalado en la máquina, una de las grandes ventajas de joomscan es que escaneará cada parte de tu aplicación Joomla automáticamente con la acción que necesites realizar y pudiendo guardar el reporte para su posterior analisis del auditor.

Las posibles vulnerabilidades puedes ser varias como XSS, inyección SQL, RFI, LFI, ...

Para descargar joomscan puedes ir al siguiente enlace ... Descargar

A continuación veremos como realizar un scanner con joomscan en el servidor local. Para ello abriremos una consola e iremos a la ruta donde se encuentra joomscan ...

cd C:\joomscan

Ok, a continuación podremos ver las distintas opciones que nos ofrece joomscan a través del comando -h ...

joomscan.pl -h


Bien, ahora vamos a realizar una exploración de nuestro sitio Joomla y guardaremos el reporte en un archivo html ...

joomscan.pl -u localhost/joomla -oh joomla.htm


Empezará a escanear el sitio web en busca de posibles vulnerabilidades, que finalmente podremos ver en el reporte html ...


Bien, ahora podremos saber que posibles agujeros de seguridad tiene nuestro CMS de Joomla y corregirlos, otra cosa importante es mantener actualizado joomscan para ello introduciremos el siguiente comando ...

joomscan.pl update

Bien, pues aquí acabamos este pequeño tutorial de como encontrar posibles vulnerabilidades en Joomla, espero que les haya servido de ayuda, saludos.