Vulnerabilidades Web
Transcripción
Vulnerabilidades Web
LABORATORIO DE APLICACIONES WEB VULNERABLES EDYTED BY 4TF3 La idea de crear este laboratorio me viene de varias ideas. Y muchas horas tras la pantalla. De que me sirve a mi escribir : <script>alert(“xss”)</script> O poner una ' despues de un id= Si no entiendo el xk sucede ! Tenemos 2 opciones: 1 : Insertar codigos a lo loco que no entendemos 2 : O dedicar nuestro tiempo para aprender a programar, y crearlas nosotros mismos. La satisfaccion es enorme Se que para profesionales de la seguridad todo lo aquí expuesto No les aporte nada nuevo. Pero pienso en esa persona que empieza en todo esto y de verdad le apasiona pero no sabe por donde tirar. En este manual mostrare imagenes con ejemplos de codigos fuente Para que se entienda mejor. Lenguajes que debemos conocer o aprender: HTML, PHP, SQL XSS REFLEJADO Un formulario basico. Aqui la pagina que recibe, procesa y ejecuta las 2 Variables Como se ve en la imagen las variables no tienen filtro alguno. Probando a introducir un nombre y contraseña cualquiera. Ya vemos que las muestra Pero si pusieramos ejemplo : <script>alert(“xss”)</script> Porque hemos podido introducir este script? Porque las variables no tienen ningun filtro XSS PERSISTENTE Este no solo se refleja en el codigo fuente si no que se incrusta en el Debido a no estar filtrado Y con la instrucción: INSERT INTO de SQL que lo que hace es insertar Las variables recibidas del formulario en un tabla de la Base de Datos. Veamos primero como crear la tabla llamada xss Que contiene 2 columnas usuario y comentario La Base de Datos llamada Web Insertar los registros en la tabla El codigo fuente del formulario Y el que procesa el formulario Este codigo recibe los datos del formulario y los almacena en las variables user y cmd Se conecta a la Base de Datos y inserta las variables en la tabla xss El siguiente script nos muestra los resultados que hay en dicha tabla Probando el formulario Viendo los resultados Vemos que se inserta el codigo y nos muestra lo que hay incluido en la tabla Pero si insertariamos <script>alert(“4tf3”)</script> Pues cada vez que visitemos la pagina o actualizemos Veriamos esto Porque ? Por que las variables estan sin filtrar y ademas el codigo esta incluido en la tabla de forma permanente SQL INJECTION Crear la tabla sqli En este caso con 5 columnas Rellenar las columnas Preparando el codigo Vemos como mediante un enlace a sqli.php le pasamos el id=1 Codigo php En esta parte del codigo decimos si existe una variable $_GET[“id”] La almacenamos en la variable $id Si no existe con el header le redirecciona a sqli.html De haber pinchado en el enlace se conectara a la Base de Datos Y realizara una consulta almacenada en la variable $sel Que quiere decir Seleccioname todos los registros de la tabla sqli Donde el identificador sea 1 Una vez pinchado en el enlace nos lleva a sqli.php y si ponemos una comilla simple ' Vemos que es vulnerable a sql injection Como dice la imagen de arriba no continuo ya que realize un manual para tal Si quieres verlo aquí lo tienes: http://highsec.es/wp-content/uploads/2013/12/TALLER-SQL-INJECTION.pdf RFI Remote file inclusion Para poder cargar archivos remotos debemos de cambiar allow_url_fopen y allow_url_include De off a on en php.ini Codigo de la pagina 1 Vemos que mediante un enlace hacia el propio index incluye la pagina videos.php Entonces si existe un $_GET[“pagina”] La almacena en la variable $rfi Y la incluye con include($rfi) Sin ningun filtro Veamos la pagina videos.php Y ahora el index con el enlace Pinchamos en el enlace Vemos que carga el index y incluye la pagina videos.php Ahora quitando del enlace videos.php Y cargar la pagina de google Vemos como la incluye THE END Al que lea este manual espero que le guste y sirva de alluda Un saludo 4tf3