disable_functions=pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_si...
这个其实也是在yangyangwithgnu的那篇 无需sendmail:巧用LD_PRELOAD突破disable_functions 中提及但未复现的一种姿势,这种姿势还是国外的安全研究者最先发现,然后发表并在exploitdb上也留下了验证的poc,在php5时代可以说是曾经火热一时。现在我们来复现一下。 测试环境 操作系统:CentOS Linux release 7.2.1511Apache版...
3. mod_cgi 模式,尝试修改 .htaccess,调整请求访问路由,绕过 php.ini 中的任何限制 4. 利用环境变量 LD_PRELOAD 劫持系统函数,让外部程序加载恶意 *.so,达到执行系统命令的效果 都是非常好的思路,今天我们来复现一下文章中主要提到的第4种思路:使用LD_PRELOAD绕过disable_functions。 环境构造 操作系统:Kali 2019...
无参数rce phpFFI利用绕过disable_functions 限制版本(PHP 7 >= 7.4.0, PHP 8)(本题是7.4) 如果一个类同时实现了Serializable和__Serialize()/__Unserialize(),则序列化将倾向于使用新机制,而非序列化则可以使用其中一种机制,具体取决于使用的是C(Serializable)还是O(Uu unserialize)格式。因此,以C格式编码的...
如果在渗透时,上传了webshell却因为disable_functions禁用了我们函数而无法执行命令的话,这时候就需要想办法进行绕过,突破disable_functions。 常规绕过(黑名单绕过) 即便是通过disable functions限制危险函数,也可能会有限制不全的情况。如果运维人员安全意识不强或对PHP不甚了解的话,则很有可能忽略某些危险函数,常见的有...
四.利用pcntl_exec突破disable_functions pcntl是linux下的一个扩展,可以支持php的多线程操作。(与python结合反弹shell) pcntl_exec函数的作用是在当前进程空间执行指定程序,版本要求:PHP 4 >= 4.2.0, PHP 5 利用代码如下 <?php pcntl_exec("/usr/bin/python",array('-c', 'import socket,subprocess,os;s=...
disable_functions是php.ini中的一个设置选项,可以用来设置PHP环境禁止使用某些函数,通常是网站管理员为了安全起见,用来禁用某些危险的命令执行函数等。(eval并非PHP函数,放在disable_functions中是无法禁用的,若要禁用需要用到PHP的扩展Suhosin。) 绕过方法 1.寻找未禁用的函数 黑名单绕过,难免会有遗漏的函数,我们可以查...
想要利用LD_PRELOAD环境变量绕过disable_functions需要注意以下几点: 能够上传自己的.so文件 能够控制环境变量的值(设置LD_PRELOAD变量),比如putenv函数 存在可以控制PHP启动外部程序的函数并能执行(因为新进程启动将加载LD_PRELOAD中的.so文件),比如mail、imap_mail、mb_send_mail和error_log等 ...
dl():通过加载自定义php扩展突破 disable_fucnitons指令的限制 利用PHP内核变量绕过disable_functions, exec() 该函数默认返回值是执行结果的第一行,并不会有全部的执行结果。如果要打印执行结果,需遍历打印output数组。 string exec ( string command, array &output, int &return_var) ...
PHP中某些函数比如mail()函数调用时,就会调用系统中的sendmail函数,由于LD_PRELOAD中指定加载了恶意的.so文件中覆盖了sendmail函数,所以就会执行重写的sendmail函数中的恶意代码,从而绕过disable_functions,达到任意执行系统命令的效果。 0x02 实践 在这么一个环境中,执行命令的相关函数被禁止 假如直接执行,会报...