Your favourite tool to bypass disable_functions and open_basedir in your pentests.
PHP in Linux calls a binary (sendmail) when the mail() function is executed. If we have putenv() allowed, we can set the environment variable "LD_PRELOAD", so we can preload an arbitrary shared object. Our shared object will execute our custom payload (a binary or a bash script) without the PHP restrictions, so we can have a reverse shell, for example.
The syntax is pretty straightforward:
$ python2 chankro.py --arch 64 --input rev.sh --output chan.php --path /var/www/html
Note: path is the absolute path where our .so will be dropped.
$ git clone https://github.com/TarlogicSecurity/Chankro.git
$ cd Chankro
$ python2 chankro.py --help
# pacman -S chankro
$ chankro --help