Vulnerabilidades en PHP

Iniciado por SnakingMax, 18 Julio 2009, 05:35 AM

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

0x0309

si quieres podrías enviarme un privado con la url para analizar que te puede resultar.

WHK

Recuerdo una ves testeando en imageshack que podías hacerle LFI al log de acceso del apache, entonces le inyectas tu shell en una petición GET para que aparezca en el log y luego le haces LFI para que se ejecute, por ejemplo un test.php?x=<?php phpinfo(); ?>

SnakingMax

#12
Gracias por ofrecerte 0x0309 pero prefiero guardar la URL en privado.
Kamsky muchas gracias, es un buen manual viene todo explicado perfectamente. Lo seguí pero no tengo permiso para acceder a /proc/self/environ
Y gracias también a ti WHK, me informé en un tutorial de cómo se inyecta una shell en los logs y busqué dónde se alojaban en este servidor pero me deniega el acceso a ellos; en este caso estaban en /var/apache2/logs/ o en un directorio similar.

Parece que no se puede sacar mas provecho a esta vulnerabilidad, tengo que buscar otras.
Si consigo algún logro ya os lo comento por aquí  ;D

Por último decir que si a alguien le interesa el videotutorial de lo que me comentó WHK, es decir, el que explica cómo inyectar una shell en los logs de apache puedo subirlo a rapidshare o similares y colocarlo aquí para todos.

Un saludo y gracias por la ayuda

kamsky

Es lo que se comenta en el artículo, que teóricamente está muy bien, pero que en la práctica es raro encontrar un Server con permisos...
----NO HAY ARMA MÁS MORTÍFERA QUE UNA PALABRA BROTADA DE UN CORAZÓN NOBLE, Y UN PAR DE HUEVOS QUE LA RESPALDEN---

                       hack 4 free!!

braulio--


WHK

ah también es una posibilidad inyectando código en una sesion pero tendrias que buscar si puedes establecer algun tipo de dato en alguna variable si es que el sitio web acepta sesiones y si es que la inicia contigo.

CitarEs lo que se comenta en el artículo, que teóricamente está muy bien, pero que en la práctica es raro encontrar un Server con permisos...
En la mayoría de los servidores compartidos el log de acceso no es uno solo de forma global sino que cada host tiene su propio directorio con acceso a los logs y puedes acceder desde php facilmente, solamente retrocedes un directorio desde public_html y buscas un directorio llamado los, log, accesslogs, acceslog, etc y una ves que lo encuentres el log de aceso tiene el mismo nombre que el dominio, o sea si es ejemplo.com asi mismo se llamará el archivo

SnakingMax

#16
Gracias a los tres por la ayuda, aunque no fuí capaz de entrar estoy aprendiendo mucho de todo esto, no sabía que el RFI se podía exprimir tanto  ;D

Estoy viendo lo de envenenar sesiones y parece que es muy similar a envenenar los LOGS.
Os lo explico para ver si lo entendí bien, si estoy equivocado corregidme:
Se trata de aprovechar una variable que uno puede pasar como parámetro para que escriba código PHP dentro de un archivo y postreriormente llamarlo con el RFI, ya sean logs o sesiones, lo entendí como "el mismo truco" para las sesiones que para los logs.

En este caso al archivo de sesiones tengo permiso, pero el problema es que ese archivo almacena solo 3 cosas y por lo que veo en el código, no cuenta conmigo para nada:
fecha     hora     ip

Por ejemplo:
13/04/1877      12:23      127.0.0.1

Así que creo que no puedo inyectar nada en ese archivo.
Os dejo el código de la funcion newSes del codigo fuente PHP por si alguien encuentra algo que yo no soy capaz de ver:

   function newSes()
   {

      $fecha = date('d')."/".date('m')."/".date('Y');
      $hora = date('H').":".date('i').":".date('s');
      if (file_exists("../logses/ses.txt"))
               {
         $archivoLog = fopen ("../logses/ses.txt","a");
      }else{
         $archivoLog = fopen ("../logses/ses.txt","w");
      }
      $line = $fecha." \t".$hora." \t ".$this->getIp()." \r\n";
      fputs ($archivoLog,$line);
      fclose($archivoLog);
            
   }
}

Saludos y gracias por vuestra ayuda