Operación de archivos de habilidades de prueba de penetración de PHP y uso de pcntl_exec para romper funciones de desactivación

A veces, después de obtener un shell temporal a través de vulnerabilidades de inclusión de archivos u otras vulnerabilidades, se descubre que el servidor ha realizado configuraciones más anormales para disable_functions. Nos hace imposible escribir shell o exp local en otros directorios.

#print_r(ini_get('disable_functions'));
putenv,chdir,dl,shell_exec,exec,system,passthru,popen,fopen,
fputs,mkdir,rmdir,rename,move_uploaded_file,unlink,copy,chgrp,
chown,lchgrp,lchown,chmod,touch,symlink,link,apache_request_headers,
highlight_file,show_source,highlight_string,parse_ini_file,mail,tempnam,
tmpfile,file_put_contents,error_log,proc_open,stream_socket_server,phpinfo,phpversion

Como se muestra arriba, el servidor prohíbe funciones tales como operaciones de escritura de archivos y ejecución de comandos, pero se pueden lograr funciones similares usando algunas características de php. En primer lugar, pensé en las funciones que se pueden usar son gzopen, imagejpeg, session_save_path, etc., que son básicamente suficientes para escribir webshell, pero si escribe una exp local, habrá algunos datos que no quiero Afortunadamente, PHP 5. Una clase de operación de archivo SplFileObject, debido a que SplFileObject es utilizado por menos personas, la configuración de seguridad del servidor generalmente se pasa por alto.

<?php
    $file = new SplFileObject("/var/www/html/hispy/b4dboy.php", "w");
    $written = $file->fwrite('shellcode');
    echo "Wrote $written bytes to file";
    #print_r(glob('/var/www/html/hispy/*'));
?>

Utilice pcntl_exec para romper la
descripción de disable_functions :
pcntl es una extensión bajo linux, que puede admitir el funcionamiento multiproceso de php.
La función de pcntl_exec es ejecutar el programa especificado en el espacio de proceso actual. Requisitos de la versión: PHP> 4.2.0. Es
común ser bloqueado por disable_functions cuando se infiltra y no se pueden ejecutar comandos. Cuando se ejecuta phpinfo (); , parpadea –activa- pcntl. En ese momento, me reí y no había nada que decir, siempre enfaticé que la infiltración debe hacerse con cuidado.

#exec.php
<?php pcntl_exec(“/bin/bash”, array(“/tmp/b4dboy.sh”));?>

#/tmp/b4dboy.sh
#!/bin/bash
ls -l /

Supongo que te gusta

Origin blog.csdn.net/weixin_45682070/article/details/107897461
Recomendado
Clasificación