Autor
|
Tema: Bug en php 5.2.9 y versiones anteriores (Path disclosure) (Leído 8,107 veces)
|
WHK
|
Estaba en mi servidor local y pude percatarme de un bug bién raro. Enciende tu servidor local y haz un nuevo directorio con cualquier nombre que contenga la letra "ñ" y pon dentro un archivo php o html con cualquier contenido. Si lo intentas visualizar verás que php lanza un error y da el path disclosure: Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0
Fatal error: Unknown: Failed opening required 'C:/wamp/www/portal_foro/diseño/index.php' (include_path='.;C:\php5\pear') in Unknown on line 0 Nakp me ayudó y pudo verificar que esto también funciona en servidores Linux y con casi cualquier carácter especial como por ejemplo acentos. Esto puede dificilmente pero posible transformarse en una vulnerabilidad como por ejemplo en el mod My_Uploads de phpnuke donde se crea un nuevo directorio dependiendo del nombre de usuario, claramente esto tiene un filtro de no incluir slashses y puntos pero estos filtros no consideran carácteres especiales haciendo el directorio lo mas fiél posible al nick del usuario pero sin contar que php no está preparado para eso lanzando este tipo de errores y mostrando la ruta total del directorio dando información a un posible atacante. Ya lo avisé.
|
|
« Última modificación: 31 Mayo 2009, 08:49 am por WHK »
|
En línea
|
|
|
|
isseu
Desconectado
Mensajes: 325
°º¤ø,¸¸,El conocimiento es poder°º¤ø,¸¸,ø¤º°`°º¤ø,
|
interesante.. esto podria ser mucho mas grande que solo phpnuke, ¿seguro que no habia sido descubierto antes?
|
|
|
En línea
|
|
|
|
WHK
|
Que yo sepa no, busqué info en gogole y no encontré nada relacionado además si alguien mas lo hubiera dicho ya estarían en una versión de php que no tuviera ese bug
|
|
|
En línea
|
|
|
|
lipman
|
Hmm interesante la verdad. Tenia idea de preparar algo, y la verdad que saber esto me ayuda bastante.
Alguna idea de como verificar todas las letras del contenido de una variable?
|
|
|
En línea
|
|
|
|
WHK
|
Atraves de un script en php no se puede evitar si el directorio ya está hecho pero si puedes evitar crear directorios así, puedes usar la función de wordpress seo_permalink(): http://cl2.php.net/manual/es/function.preg-replace.php<?php function seo_permalink($value) { "ş","Ş","ı","(", ")","'","ü","Ü", "ö","Ö","ç","Ç", " ","/","*","?", "ş","Ş","ı","ğ", "Ğ","İ","ö","Ö", "Ç","ç","ü","Ü"); "s","S","i","", "","","u","U", "o","O","c","C", "","-","-","", "s","S","i","g", "G","I","o","O", "C","c","u","U"); return $value; } echo seo_permalink('nick o url maligno "xÑoàöd"'); ?>
Me fijé también que seo no contempla la letra eñe , de todas formas se filtra al final y no aparecerá en la conversión. Nota: el geshi del foro no deja ver bién los carácteres especiales asi que si usas el código haz click en citar tema y vee como está posteada la función.
|
|
« Última modificación: 31 Mayo 2009, 09:53 am por WHK »
|
En línea
|
|
|
|
lipman
|
Es una idea lo de sustituir, pero no me referia a eso, y weno, por no abrir un tema en PHP, aprovecho. Lo que digo es lo siguiente: Tienes una variable con un cierto contenido como "azúcar". Entonces podrias pasar ese contenido a una matriz, poniendo en cada contenido de la matriz una letra: matriz[0] = a matriz[1] = z matriz[2] = ú .... .. Y luego con un foreach, recorrer toda la matriz y comprobar que cada carácter se encuentra entre el 97 y 122 (ASCII) (bueno aqui serian solo letras minusculas pero podriamos incluir mayúsculas y numeros) La cuestion seria, como pasar el contenido de una variable a una matriz de la forma que he dicho (que además, no tiene porque ser una palabra, podria ser una frase, y en este caso habria que incluir el espacio en blanco) Un saludo
|
|
|
En línea
|
|
|
|
Azielito
no es
Colaborador
Desconectado
Mensajes: 9.188
>.<
|
Tambien en mi version [PHP Version 5.2.5 ] da error Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0
Fatal error: Unknown: Failed opening required 'G:/Desarrollo/web/www/azi/ñoño/hola.php' (include_path='.;g:\Desarrollo\web\php5') in Unknown on line 0 Tal vez serán todas las versiones de php?
|
|
|
En línea
|
|
|
|
WHK
|
Bueno ya me enviaron una respuesta desde php y me dijeron que el estado de reportes de errores no debe producir estados del sistema en sistemas publicos o sea que yo debería configurar mi php.ini para no mostrar este tipo de errores. De todas formas en un hosting de pago es muy raro tener acceso a este tipo de configuracionesy para que decir de los hostings gratuitos. De todas formas para mi no deja de ser un bug porque puede aprobecharse en hostings donde el propio administrador no tenga acceso a los archivos de configuraciones (la única exepción sería tener un dedicado).
|
|
|
En línea
|
|
|
|
s E t H
Desconectado
Mensajes: 152
Ha tenido un sueño donde todos los pollos eran libres de cruzar una carretera sin tener que justificar sus actos.
|
apache me lo muestra asi al listar el directorio:
Index of /diseño
Icon Name Last modified Size Description[DIR] Parent Directory - [ ] poc.php 09-jun-2009 20:23 3
pero el archivo se ve bien uso xampp seth@debian:~$ sudo lampp phpstatus 5.2.9
si ponen "error_reporting(0);" que pasa?
|
|
|
En línea
|
|
|
|
WHK
|
Obiamente no te da error porque no se está ejecutando php sino el apache, pero y si le haces click al archivo poc.php? o en ves de poc lo renombras a index.php?
si le pones error_reporting(0) al php igual te dará el error ya que se produce antes de la interpretación del script a menos que lo hagas desde el php.ini directamente.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Windows 8 podrá utilizarse en versiones anteriores del sistema operativo
Noticias
|
wolfbcn
|
0
|
1,507
|
11 Julio 2012, 14:40 pm
por wolfbcn
|
|
|
Windows 8 soluciona los problemas de anteriores versiones en la instalación de..
Noticias
|
wolfbcn
|
0
|
1,535
|
26 Julio 2012, 14:11 pm
por wolfbcn
|
|
|
Compatibilidad de proyectos con versiones anteriores del Visual Studio
.NET (C#, VB.NET, ASP)
|
snakeboy8
|
4
|
9,899
|
23 Julio 2015, 05:33 am
por MrCuLeR
|
|
|
Ayuda para encontrar un Full Path Disclosure
Nivel Web
|
Sp3ctr3
|
2
|
3,510
|
31 Julio 2015, 19:03 pm
por Collider
|
|
|
Microsoft no dará soporte a versiones anteriores a IE11, despues del 12 de enero
Noticias
|
EFEX
|
0
|
1,336
|
25 Noviembre 2015, 19:06 pm
por EFEX
|
|