Laboratorio: carga de shell web mediante omisión de la lista negra de extensiones
Last updated
Last updated
💡 Pista: Debe cargar dos archivos diferentes para resolver esta práctica de laboratorio.
Después de darle bastante analisis, he llegado a algo que puede ser la solución basandonos en la pista.
Este archivo de configuración nos indica lo siguiente:
LoadModule php_module /usr/lib/apache2/modules/libphp.so: Esta línea carga el módulo PHP en Apache. Los módulos son extensiones de Apache que añaden funcionalidades específicas. En este caso, el módulo PHP permite la ejecución de scripts PHP en el servidor. La ruta "/usr/lib/apache2/modules/libphp.so" indica la ubicación del archivo del módulo.
AddType application/x-httpd-php .php: Aquí se establece el tipo MIME para archivos con extensión .php. MIME (Multipurpose Internet Mail Extensions) es un estándar que indica el tipo de contenido de un archivo. En este caso, se define que los archivos con extensión .php serán tratados como contenido de tipo "application/x-httpd-php", indicando a Apache que deben ser procesados como scripts PHP.
En resumen, estas líneas son esenciales para habilitar y configurar la ejecución de scripts PHP en el servidor Apache. Aseguran que los archivos con extensión .php sean procesados adecuadamente para su interpretación como código PHP en lugar de ser tratados como simples archivos de texto o HTML estático.
Esto signfica que debemos crear ese archivo para subirlo y probablemte la aplicacion por defecto lo tomará luego intentaremos subir el archivo .php y tal vez nos deje solo tal vez.
Tenemos ambos.
Vamos a modificar la solicitud de mandar el exploit.php y lo vamos a cambiar por .htaccess junto con el content-type: text/php a content-type: text/plain
Y veremos la respuesta que nos da:
Vemos el .htaccess en la pagina del browser.
Nos devuelve esto:
Entonces con ello, ¿Qué podemos hacer? Vamos a pasar lo que antes teniamos en apache2.conf
al valor de donde antes estaba el code php y lo reemplazamos pero solo esta linea:
AddType application/x-httpd-php .133t
Como muestra la imagen de arribita el .133t nos indica que queremos dejar como una extension desconocida los archivos scripts de PHP, y así es como lo queremos ya que queremos bypasear la lista negra de la aplicación.
Lo cambiamos.
Esto asigna una extensión arbitraria ( .l33t
) al tipo MIME ejecutable application/x-httpd-php
. Como el servidor usa el mod_php
módulo, ya sabe cómo manejarlo
Y lo mandamos claro que si.
Y testeamos…
Pero lo que debemos hacer antes, es cambiar el exploit.php
a exploit.133t
Ahora, aqui hicimos el mismo proceso de enviar el .htaccess y a la vez cuando enviamos la solicitud y funcionó, lo cambiamos para poder enviar el exploit.133t
y enviar el codigo PHP en la misma solicitud.
Vamos a modificar este y a enviarlo con el exploit.133t a ver:
Efectivamente aqui si nos retornó el secreto, que era lo que buscabamos.