Posible inclusión remota de archivos en MKPortal

Iniciado por WHK, 7 Septiembre 2008, 20:24 PM

0 Miembros y 1 Visitante están viendo este tema.

WHK

Estaba mirando el sitio oficial de mkportal y pude ver que para visualizar una sección utiliza inclusiones hacia el archivo con el nombre de la variable "show" + .php
Por ejemplo:
http://www.mkportal.es/mkportal/modules/docs/index.php?show=copyright

En realidad está haciendo una inclusión hacia:
http://www.mkportal.es/mkportal/modules/docs/content/copyright.php

En el cual no verifica si realmente puede ser incluido o existe aquella página como se ve en el siguiente ejemplo:
http://www.mkportal.es/mkportal/modules/docs/index.php?show=fuck
CitarWarning: require_once(content/fuck.php) [function.require-once]: failed to open stream: No such file or directory in /home/mkportal/domains/mkportal.es/public_html/mkportal/modules/docs/index.php on line 150

Fatal error: require_once() [function.require]: Failed opening required 'content/fuck.php' (include_path='.:/usr/local/lib/php') in /home/mkportal/domains/mkportal.es/public_html/mkportal/modules/docs/index.php on line 150

Y si hacemos una petición GET directamente a un archivo nos resulta..
http://www.mkportal.es/mkportal/modules/docs/content/copyright.php
CitarFatal error: Class 'module' not found in /home/mkportal/domains/mkportal.es/public_html/mkportal/modules/docs/content/copyright.php on line 6

Aumentando las probabilidades de una inclusión remota o talves solo local. Probé inyectando null bytes para evadir la extensión pero no fue posible, si ingresas un punto, slqsh o algún caracter que no sea número o letra te lo toma como nó válido, a exepción de un byte nulo como "%00" asi que el resto será solo cosa de imaginación.

REFERENCIA:
http://www.jccharry.com/fake/1.txt

Eazy

#1
Creo qe no es explotable, al menos yo ya probe de todo. ahora, como sabe la funcion que si llama de
http://www.mkportal.es/mkportal/modules/docs/index.php?show=copyright
a
http://www.mkportal.es/mkportal/modules/docs/content/copyright.php

Como sabe la funcion que Copyright.php esta en el directorio Content?
Otra cosa, qe son los nullbytes?
[/url]

WHK

Referencia:
http://www.jccharry.com/fake/1.txt

Se sabe que el archivo está ahí por el error que arroja:
CitarWarning: require_once(content/fuck.php) [function.require-once]: failed to open stream: No such file or directory in /home/mkportal/domains/mkportal.es/public_html/mkportal/modules/docs/index.php on line 150

Fatal error: require_once() [function.require]: Failed opening required 'content/fuck.php' (include_path='.:/usr/local/lib/php') in /home/mkportal/domains/mkportal.es/public_html/mkportal/modules/docs/index.php on line 150

por lo cual el archivo que está tratando de incluir "show=fake" "content/fuck.php" falla, si hacemos un "show=copyright" entonces suponemos que está en "content/copyright.php"

Un null byte es un byte nulo, por ejemplo en un explordor se escribe %00 o simplemente un cero para bases de datos y en algunos casos proboca que un filtro no funcione adecuadamente ya que un byte nulo significa el término del buffer pero nosotros continuamos mas allá, te explico mejor...

"hola, como estás"
Para algunas funciones eso significa una palabra completa

"hola, %00 como estás"
Para algunas funciones la palabra termina hasta donde no haya bytes, o sea un byte nulo, eso significa que para la función la palabra termina después de la coma y no hay nada mas, eso significa que después de eso no es filtrado y podemos ejecutar sentencias mysql o de inclusiones debido a filtros diseñados con explode, eregi, preg, etc.

Estyo sucede muy a menudo al no deshabilitar el ingreso de bytes nulos desde el mismo script.

En la programación de visual basic se escribe "chr(0)", en C++ se escribe "\x00", en php, perl es lo mismo y en exploradores es en urlencode, o sea "%00".

http://www.google.cl/search?hl=es&q=null+byte+vulnerability&btnG=Buscar+con+Google&meta=

Eazy

ahhhhh graciias :) probaste hacer un directory trasversal?
[/url]