Bueno pues explicaré lo poco que sé sobre este tema de las inyecciones de codigo por XSS con palabras sencillas, primero que nada el significado de las siglas es Cross Site Scripting, no se escribe CSS porque normalmente llegaba a confundirse con "Cascade Style Sheet", que es el lenguaje con el que se le da estilo a una página web...

Una inyeccion XSS puede ser inyectada de distintas maneras, la mas común aunque ya obsoleta es inyectarla mediante formularios en sistemas como los famosos libros de visita, donde cualquiera puede llegar a dejar un comentario, ahora, veamos el ejemplo de un input de texto, el input se compone asi

<input type="text" />

Ahora imaginemos que suedería si rompemos el flujo del script original, cerrando la etiqueta antes para poder defacear la página, bastaría con cerrar la etiqueta del input e inyectar el código haciendo algo similar a esto:

<input type="text""><a href="#">Esto es un codigo inyectado</a>">

De igual manera con un textarea seria cortar el flujo del script

<textarea></textarea><h1>hola</h1></textarea>

De esta manera logramos inyectar cualquier tipo de código a la página...
Ahora, si se nos impide romper el flujo, otra vulnerabilidad que muchas webs cometen es no filtrar los caracteres especiales como son "<" y ">", comillas dobles y comillas simples, entonces si en un libro de visitas se postea el texto plano sin filtrarlo sería muy facil defacear simplemente inyectando el codigo directamente en el textarea o en el input haciendo algo similar a esto:

<textarea><h1>Es vulnerable</h1></textarea>

al momento de procesarlo con php o asp sin ser filtrado, el codigo se interpretara como HTML y no como texto, defaceando asi el flujo normal de la página web...

Ahora esto es muy básico, fue una pequeña introducción para la gente que no sabe nada sobre deface, con esto pueden entender almenos un poco de cómo se pueden romper flujos mas complicados como lo son para las inyecciones SQL, ahora para protegerse de estos ataques es muy fácil... Solamente hay que filtrar los caracteres especiales, por ejemplo al procesar los datos en PHP sería algo similar a esto:

Código: Seleccionar todo

$texto=$_POST['texto'];//texto plano
$texto=htmlentities($texto);//funcion que filtra los caracteres
//proceso del programa
Espero les sirva un poco esta pequeña introducción, un saludo!
//mHmm..
Está muy bueno como introducción ! , gracias bro !
Imagen

http://img844.imageshack.us/img844/8088/mujerrara.jpg
http://img715.imageshack.us/img715/5813/tigree.png
http://img830.imageshack.us/img830/6484/camaleon.png

http://img839.imageshack.us/img839/4944/tigrev2.jpg
http://img843.imageshack.us/img843/443/spidermanxn.png

http://www.youtube.com/watch?v=wHYYkciIKE0
¡Esta buenísimo! Yo no se nada de estos temas, con esta introducción algo e entendido y me a gustado ;D

Saludos.
http://www.freundt-esta-aburrido.blogspot.com
BRAVO LINKG una iniciativa maginifica para aquellos ke flipamos en colores cuando leemos los post mas avanzados. Toda cultura empieza por una buena transmision de las bases. Invito a algun admin a poner una seccion especial para novatos como yo
Bueno no está mal, pero cuando dices lo de <h1> hola </h1> es vulnerable, no debe ser asín siempre
por que alomejor solo deja que se ejecute una javascript, en vez de XSS pondria el titulo de HTML Injection
por que basicamente es lo que has hecho.. solo se podrá conseguir un redireccionamiento si no lo
explicas más a fondo el XSS.


Basicamente el XSS es como un HTML a fondo.


Un saludo!
Muy bien explicado bro, admeas que estoy aprendiendo html me parece familiar y he entendido alguna etiqueta ;)
¿Por que tanta gente vive en el pasado?. No era mejor ser joven antes,debes crear tus propios iconos,tu propia manera de vivir.

Lo hecho,hecho esta. Mirar hacia atras para buscar la inspiracion,es copiar el pasado.Eso no es ser indetectable xD
Se tu mismo,haz algo nuevo. ¿Sabes lo que quiero decir no?
Skillmax escribió:Bueno no está mal, pero cuando dices lo de <h1> hola </h1> es vulnerable, no debe ser asín siempre
por que alomejor solo deja que se ejecute una javascript, en vez de XSS pondria el titulo de HTML Injection
por que basicamente es lo que has hecho.. solo se podrá conseguir un redireccionamiento si no lo
explicas más a fondo el XSS.


Basicamente el XSS es como un HTML a fondo.


Un saludo!
Tengo entendido que el XSS no tiene que ser javascript o PHP afuerzas, basta con romper el flujo original del sitio y eso lo puedes hacer hasta con un lenguaje etiquetado como lo es HTML, XML XHTML, además de que no solamente puedes hacer una redireccion, puedes defacear fácilmente el sitio web incluso hacer includes sí el servidor lo soporta algo como... <!--#include file="ruta absoluta del archivo"-->

//mHmm..
El XSS no, si no el HTML,XML o el XHTML

Con un simple HTML solo se puede hacer un redirrecionamiento.


Lo que has puesto de <!--#include file="ruta absoluta del archivo"--> es si el archivo
está subido, por entonces necesitarias un upload, pero para que.. si hay un upload
se intenta subir una shell.

El javascript no tiene nada que ver, me referia a que da un aviso de posible vulneabilidad.


Un saludo!
Skillmax escribió:El XSS no, si no el HTML,XML o el XHTML

Con un simple HTML solo se puede hacer un redirrecionamiento.


Lo que has puesto de <!--#include file="ruta absoluta del archivo"--> es si el archivo
está subido, por entonces necesitarias un upload, pero para que.. si hay un upload
se intenta subir una shell.

El javascript no tiene nada que ver, me referia a que da un aviso de posible vulneabilidad.


Un saludo!
Mmmm, insisto, a mí parecer con HTML inyectado directamente no solo puedes hacer un redireccionamiento, puedes romper el flujo de la web, cortando la tabla o div actual, y despues crear un div flotante de algún color, para que así tape la web y se vea defaceada y sobre el include, por eso dije ruta absoluta, la subes la shell a un host aparte y la incluyes desde aquel hosting o estoy mal?
//mHmm..
linkgl escribió:
Skillmax escribió:El XSS no, si no el HTML,XML o el XHTML

Con un simple HTML solo se puede hacer un redirrecionamiento.


Lo que has puesto de <!--#include file="ruta absoluta del archivo"--> es si el archivo
está subido, por entonces necesitarias un upload, pero para que.. si hay un upload
se intenta subir una shell.

El javascript no tiene nada que ver, me referia a que da un aviso de posible vulneabilidad.


Un saludo!
Mmmm, insisto, a mí parecer con HTML inyectado directamente no solo puedes hacer un redireccionamiento, puedes romper el flujo de la web, cortando la tabla o div actual, y despues crear un div flotante de algún color, para que así tape la web y se vea defaceada y sobre el include, por eso dije ruta absoluta, la subes la shell a un host aparte y la incluyes desde aquel hosting o estoy mal?

Claro que puedes tapar el index, pero, no se va a quedar bién, si solo quieres
que de un aviso de bug sí.

Código: Seleccionar todo

La parte que dices "subes la shell a un host aparte y la incluyes desde aquel hosting"
Estás muy equivocado por que si yo subo mi shell a mi host como php se ejecutará en mi host
y yo quiero que se ejecute en el host de la otra web, asin como no puedes incluirla desde
tu hosting, por que no serviria nada.


Sí a lo del deface de tapar el index era a lo que me refería inyectando el html, entonces, en esa parte quedó aclarado a lo que me refería.

Sobre la shell, pues, dependerá de los permisos que tenga el servidor de la página a la que quieres atacar, si el servidor está configurado con allow_url_include activado, la shell se ejecutará en el servidor donde sea incluida, eso es básico, si yo incluyo un archivo en una pagina externa se ejecuta en su servidor por que lo estoy incluyendo, amenos que yo lo abra en el servidor local se ejecutara en mi servidor además de que claro, debes verificar las rutas que usas en la shell si son absolutas y apuntan a tu sitio web obviamente deberás cambiarlas por rutas relativas o absolutas atacando a el otro sitio web.
//mHmm..
que buena introducción linkgl muchas gracias bro estaré esperando un manual completo

SALUDOS!!
Soy un camaleón, en tu cama, leona ♪
Responder

Volver a “Auditoria Web”