disable_functions
为了安全,运维人员会禁用PHP的一些“危险”函数,例如:
1 |
dl,eval,exec,system,passthru,popen,proc_open,pcntl_exec,shell_exec,mail,imap_open,imap_mail,putenv,ini_set,apache_setenv,symlink,link 等 |
将其写在php.ini
配置文件中,就是我们所说的disable functions
了。
Bypass disable_functions Shell
Bypass涉及禁用函数列表:
1 |
dl,exec,system,passthru,popen,proc_open,pcntl_exec,shell_exec,mail,imap_open,imap_mail,putenv,ini_set,apache_setenv,symlink,link |
shell绕过已实现的方式:
- 常规绕过: exec、shell_exec、system、passthru、popen、proc_open
- ld_preload绕过: mail、imap_mail、error_log、mb_send_mail
- pcntl_exec
- imap_open
- fastcgi
- com
- apache mod-cgi
目录结构:
- env - docker环境, 用于测试各类绕过exp
- papar - bypass原理
- exp - bypass脚本
仓库:https://github.com/l3m0n/Bypass_Disable_functions_Shell
PHP 7.1-7.3 disable_functions bypass
利用php json序列化漏洞,以绕过disable_functions
并执行系统命令。
适用版本
- 7.1 - all versions to date
- 7.2 < 7.2.19 (released: 30 May 2019)
- 7.3 < 7.3.6 (released: 30 May 2019)
仓库:https://github.com/mm0r1/exploits/tree/master/php-json-bypass
扩展
原文连接:disable_functions Bypass:突破disable_functions达到命令执行的Shell
所有媒体,可在保留署名、
原文连接
的情况下转载,若非则不得使用我方内容。