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

Documentos relacionados