viernes, 18 de octubre de 2013

Porqué no debes validar datos en el lado del cliente

Es medio día en mi país y me dio ganas de escribir algo y ya que Arthusu me dio espacio en su blog aprovecho el momento.

Una noche en las que uno piensa que rayos soy en la vida y luego para fortalecer el espíritu de vida y de decir soy único en la vida me decido por visitar una web y divertirme, así que vamos al acto.

INFORMACION:

Descripción: Web de institución en donde enseñan redes inalámbricas (te enseñan a robar el wi-fi del vecino), administración, configuración de linux entre otros.

Ingreso a la web y lo primero que veo es "cursos.php?curso=1". en mí paso una clásica comilla simple (') y el error que recibi fue este:

Warning: file(libro/1\'.html) [function.file]: failed to open stream: No such file or directory in /home/xxxxxxxx/public_html/php/capacita.php on line 109

revise el robots.txt de la web y me dio información valiosa:
User-agent: Googlebot
Disallow: /admin/
Disallow: /banner/
Disallow: /css/
Disallow: /fonts/
Disallow: /images/
Disallow: /img/
Disallow: /js/
Disallow: /php/
 
Ya se imaginan ingrese a /admin/ encontre lo que esperaba un panel de login.
Cuando ingrese texto basura para ver que onda, emite un mensaje 
"el usuario xxxx no existe en la base de datos"
Al revisar en el código fuente rápidamente veo:
<script language="javascript" src="js/login.js"></script>, ingreso y pues 
como ya era de esperarse código javascript encontraría, era una redireccion
segun la respuesta del servidor 200 OK me lleva a: admin00.php, asi que
ingreso directamente a admin00.php y ya estoy logueado como administrador.
Hora de subir shell
Busque uploader para subir la shell y encontré algunos pero hechos en
flash, tenia seguridad o al menos parecía tenerla pues solo me dejaba
seleccionar archivos de imágenes.Con ayuda de Firebug pude ver y editar
el código fuente:
 
fileExt=*jpg;*.gif;*.png. Solo quedó agregar la extensión .php para 
que el uploader lo tome y listo shell online.

RECOMENDACIONES
-Validen del lado del servidor (no se debe validar en el lado del cliente 
a menos que sea como seguridad extra). 
-si usaran un uploader en flash tomen sus precauciones.

1 comentario: