Buenas señores, hace mucho que no asomo la cabeza por aquí, pero creo que hoy es necesario. He encontrado una vulnerabilidad en el upload, tanto como en el de golden como en el de bigsat (el mio) con un error de ejecución de código remoto, que si bien después de probar cosillas no ha sido demasiado peligroso, el problema de seguridad que presenta el cómo están guardadas las contraseñas en el upload si plantea más peligro.
Vulnerabilidad 1º ejecución de código remoto en el servidor. Upload php.
Simplemente se trata de subir un archivo con contenido php al servidor con la extensión php4.
Ejemplo:
De paso para probar la vulnerabilidad 2, he usado la cuenta de kipo para subirla al upload (no te enfades hombre
).
ponemos : http://uploadgolden.iespana.es/files/v1.php4 et voilá.
Realmente esto no entraña problemas, por lo qué he probado, ya que comandos de php como escritura y lectura o creación de ficheros/carpeas están protegidas por SAFE MODE. Aunque no me dío tiempo a probar más, quizá algo se me escape.
Solución:
Editar el conf.php que está en include ( creo ) . en concreto:
No sé si habrá algún tipo de archivo que ejecute el servidor sería cuestión de probar.
Vulnerabilidad 2: Problemas con las contraseñas en md5.
Sin extenderme porque no tengo tiempo, el sistema de md5 se basa en generar a partir de cualquier cadena de texto una ristra de 32 números en hex que debe de ser "única". Digo "única" y no única porque esto no es así, existen las llamadas colisiones de hash que dadas dos entradas diferentes hay un mismo hash ( esos 32 números ), bueno esto es otra historia... a lo que voy. En el upload guardan las contraseñas en http://uploadgolden.iespana.es/****s/nombre_usuario
por ejemplo: para kipo ( otra vez te uso de ejemplo )
En la primera línea está el hash md5 que se crea usando md5(cadena) en php. lo cual da un hash "único" que se almacena ahi. cada vez que kipo mete su pass, se hace $hash = md5(pass_que_ha_metido_kipo) y si coincide con esa linea es que la contraseña es correcta.
Bien, a lo que importa... actualmente con la potencia de los pcs y demás historias se han ido haciendo posible que existan bases de datos con hashes. En Internet encontramos a porrillo. Incluso especificas para buscar passwords. Otras eran para buscar colisiones, pero ya de paso, se quedaron para pass... no sé.
El caso que :
y lo mismo para otros usuarios tales como nasky, honestcute ...
Solución. Más compleja. Poner un directorio arbitrario dónde se guarden las
contraseñas... o cambiarte a una contraseña más larga.
Espero kipo que no te incomodes, y cambia tú pass. únicamente subí el archivo v1.php4 así que tranquilo.
He utilizado * para no poner ni ****** ni hashes ni nada comprometido. Si algún administrador o afectado quiere saber más detalles, por privado.
Saludos.
Por cierto descubrí esto porque en mi upload, alguien había hecho pruebas con la extensión phtml pero sin exito... Saludos.
Vulnerabilidad 1º ejecución de código remoto en el servidor. Upload php.
Simplemente se trata de subir un archivo con contenido php al servidor con la extensión php4.
Ejemplo:
PHP:
<?php
$tuip = "Tú ip es: ".$_SERVER['REMOTE_ADDR'];
echo $tuip;
?>
De paso para probar la vulnerabilidad 2, he usado la cuenta de kipo para subirla al upload (no te enfades hombre
ponemos : http://uploadgolden.iespana.es/files/v1.php4 et voilá.
Realmente esto no entraña problemas, por lo qué he probado, ya que comandos de php como escritura y lectura o creación de ficheros/carpeas están protegidas por SAFE MODE. Aunque no me dío tiempo a probar más, quizá algo se me escape.
Solución:
Editar el conf.php que está en include ( creo ) . en concreto:
PHP:
$rejectedfiles = "^index\.|\.desc$|\.dlcnt$|\.php$|\.php\..*|\.php3$|\.php3\..*|\.php4$|\.php4\..*\.cgi\..*|\.cgi$|\.pl$\.pl\..*";
// mala $rejectedfiles = "^index\.|\.desc$|\.dlcnt$|\.php$|\.php\..*|\.php3$|\.php3\..*\.cgi\..*|\.cgi$|\.pl$\.pl\..*";
No sé si habrá algún tipo de archivo que ejecute el servidor sería cuestión de probar.
Vulnerabilidad 2: Problemas con las contraseñas en md5.
Sin extenderme porque no tengo tiempo, el sistema de md5 se basa en generar a partir de cualquier cadena de texto una ristra de 32 números en hex que debe de ser "única". Digo "única" y no única porque esto no es así, existen las llamadas colisiones de hash que dadas dos entradas diferentes hay un mismo hash ( esos 32 números ), bueno esto es otra historia... a lo que voy. En el upload guardan las contraseñas en http://uploadgolden.iespana.es/****s/nombre_usuario
por ejemplo: para kipo ( otra vez te uso de ejemplo )
Código:
5b1b68a9abf4d2cd155c81a9*******
XXXXXXXXXXXXXXXXXXXXXXXXXXXX
MXXXXXXXXXXXXXXX
0
1
0
1150042196
es
En la primera línea está el hash md5 que se crea usando md5(cadena) en php. lo cual da un hash "único" que se almacena ahi. cada vez que kipo mete su pass, se hace $hash = md5(pass_que_ha_metido_kipo) y si coincide con esa linea es que la contraseña es correcta.
Bien, a lo que importa... actualmente con la potencia de los pcs y demás historias se han ido haciendo posible que existan bases de datos con hashes. En Internet encontramos a porrillo. Incluso especificas para buscar passwords. Otras eran para buscar colisiones, pero ya de paso, se quedaron para pass... no sé.
El caso que :
Código:
hash pass
5b1b68a9abf4d2cd155c81a9******* ***5**
y lo mismo para otros usuarios tales como nasky, honestcute ...
Solución. Más compleja. Poner un directorio arbitrario dónde se guarden las
contraseñas... o cambiarte a una contraseña más larga.
Espero kipo que no te incomodes, y cambia tú pass. únicamente subí el archivo v1.php4 así que tranquilo.
He utilizado * para no poner ni ****** ni hashes ni nada comprometido. Si algún administrador o afectado quiere saber más detalles, por privado.
Saludos.
Por cierto descubrí esto porque en mi upload, alguien había hecho pruebas con la extensión phtml pero sin exito... Saludos.
