Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: WHK en 21 Febrero 2010, 07:13 am



Título: Codigo de ejecución PHP y XSS en IPBoard 3.0.5
Publicado por: WHK en 21 Febrero 2010, 07:13 am
Estaba viendo una demostración del IPBoard que pude obtener desde la web oficial y viendo algunas opciones me pude dar cuenta que puedes ejecutar código arbitrario y xss en dos lados diferentes.

Antes de comenzar a explicar debo decir que esto se encuentra solamente en el sistema de administración xD asi que solamente los que tengan acceso podrán ejecutar ambas cosas.

El xss se encuentra al editar el logo:
http://ejemplo/admin/index.php?adsess=[sesion]&app=core&&module=templates&section=easylogo&do=finish

En este lugar encontraremos un input para poner el logo del theme, pero no podemos inyectar código html porque nos filtra las comillas simples y dobles, asi que como lo podemos evadir?
VBulletín utiliza variables de esta forma: {style_image_url}/logo.png asi que dentro de {} no nos filtran nada asi que desde ahi podemos inyectar de la siguiente manera:
Citar
logo.png<{'onerror=alert(0) x='}

Con eso ya puedes ejecutar código arbitrario desde el theme.

El código de ejecución en php se encuentra en la edición del theme.
Por eejmplo si al theme le ponemos <?php echo 'x'; ?> no lo ejecutará sino que lo mostrará solamente ya que lanza un echo completo, pero si ejecuta las variables en php, por ejemplo {$x} ya que el theme completo se procesa en eval y echo.

Si no podemos usar tags de php como escapamos y ejecutamos código?....
así:
Código

Tube que encerrar la variabe en dos llaves diferentes porque vbulletin me filtraba las llaves sin un $.
También reemplaza los puntos a htmlentities y utiliza addslashses xD asi que le aplicamos las funciones inversas.

Demo online:
http://a133.ipsdemo.ipslink.com/index.php?x=echo file_get_contents('../../../../../../../etc/passwd');exit; (http://a133.ipsdemo.ipslink.com/index.php?x=echo file_get_contents('../../../../../../../etc/passwd');exit;)
y
view-source:http://a133.ipsdemo.ipslink.com/index.php?x=system%28%27ls%20-la%27%29;exit;

Ojo que el demo que me dieron dura 24 horas asi que si no ven el enlace se hacen uno nuevo y lo prueban.

PD: a servidores como el del demo que tiene allow url open activo pueden subirse una c99 y hacer full backup :P
PD2: a vbulletín no les aviso de la vulnerabilidad porque ellos ganan dinero vendiendo el sistema y tienen el suficiente dinero como para contratar a auditores, yo no les hago el trabajo porque ellos nunca me han dado nada, no así los de libre pago como smf, ellos si aportan muchisimo a la gente asi que a ellos si les reportamos primero :P.


Título: Re: Codigo de ejecución PHP y XSS en IPBoard 3.0.5
Publicado por: Castg! en 21 Febrero 2010, 07:23 am
Qué buen metodo este!
Código

no lo conocia y puede ser muy practioco ;)! como siempre, impecable... te felicito, un saludo garnde ;)


Título: Re: Codigo de ejecución PHP y XSS en IPBoard 3.0.5
Publicado por: ~ Yoya ~ en 21 Febrero 2010, 14:35 pm
Bien hecho, se nota que tienes unas ganas de auditar algun otro CMS xD.


Título: Re: Codigo de ejecución PHP y XSS en IPBoard 3.0.5
Publicado por: invisible_hack en 21 Febrero 2010, 20:05 pm
Muy cierto, VBulletin es de pago, y como tal, debería poner más empeño en reparar y revisar mas a menudo su código para intentar fixear nuevos bugs...y no lo han hecho...

Poco a poco se va desmoronando el lema ese de que los sistemas de pago, por el simple hecho de ser de pago son intocables  :xD

Saludos.