首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PHP执行系统外部命令函数:exec()、passthru()、system()、shell_exec()

PHP执行系统外部命令函数:exec()、passthru()、system()、shell_exec()

作者头像
全栈程序员站长
发布于 2022-07-08 05:04:57
发布于 2022-07-08 05:04:57
2.2K02
代码可运行
举报
运行总次数:2
代码可运行

php提供4种方法执行系统外部命令:exec()、passthru()、system()、 shell_exec()。 在开始介绍前,先检查下php配置文件php.ini中是有禁止这是个函数。找到 disable_functions,配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
disable_functions =

如果“disable_functions=”后面有接上面四个函数,将其删除。 默认php.ini配置文件中是不禁止你调用执行外部命令的函数的。

方法一:exec()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function exec(string $command,array[optional] $output,int[optional] $return_value)

php代码:

1 2 3 4 5

<?php echo exec("ls",$file); echo "</br>"; print_r($file); ?>

执行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
test.php
Array( [0] => index.php [1] => test.php)

知识点: exec 执行系统外部命令时不会输出结果,而是返回结果的最后一行,如果你想得到结果你可以使用第二个参数,让其输出到指定的数组,此数组一个记录代表输出的一行,即如果输出结果有20行,则这个数组就有20条记录,所以如果你需要反复输出调用不同系统外部命令的结果,你最好在输出每一条系统外部命令结果时清空这个数组,以防混乱。第三个参数用来取得命令执行的状态码,通常执行成功都是返回0。

方法二:passthru()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function passthru(string $command,int[optional] $return_value)

代码:

1 2 3

<?php passthru("ls"); ?>

执行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
index.phptest.php

知识点: passthru与system的区别,passthru直接将结果输出到浏览器,不需要使用 echo 或 return 来查看结果,不返回任何值,且其可以输出二进制,比如图像数据。

方法三:system()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function system(string $command,int[optional] $return_value)

代码:

1 2 3

<?php system("ls /"); ?>

执行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
binbootcgroupdevetchomeliblost+foundmediamntoptprocrootsbinselinuxsrvsystmpusrvar

知识点: system和exec的区别在于system在执行系统外部命令时,直接将结果输出到浏览器,不需要使用 echo 或 return 来查看结果,如果执行命令成功则返回true,否则返回false。第二个参数与exec第三个参数含义一样。

方法四:反撇号`和shell_exec() shell_exec() 函数实际上仅是反撇号 (`) 操作符的变体 代码:

1 2 3

<?php echo `pwd`; ?>

执行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/var/www/html

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/112291.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年11月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
php执行系统外部命令
提供4种方法: - exec()、passthru()、system()、 shell_exec()。 在开始介绍前,先检查下php配置文件php.ini中是有禁止这是个函数。找到 disable_functions,配置如下: disable_functions = 如果"disable_functions="后面有接上面四个函数,将其删除。 默认php.ini配置文件中是不禁止你调用执行外部命令的函数的。 方法一:exec() function exec(string $command,array
猿哥
2019/08/01
1.3K0
php执行系统外部命令函数:exec()、passthru()、system()、 shell_exec()
php提供4种方法执行系统外部命令:exec()、passthru()、system()、 shell_exec()
Yiiven
2022/12/15
1.3K0
PHP实现执行外部程序的方法详解
在一些特殊情况下,会使用PHP调用外部程序执行,比如:调用shell命令、shell脚本、可执行程序等等,今天在源码中了解了一下PHP执行外部程序的方法,借此机会顺便整理一下。
用户8826052
2021/07/13
1.2K0
php输出命令_php怎么调用函数
以上方法是命令执行完才可执行后面程序,如果你的逻辑复杂,会影响用户体验,这时可以提供一个,异步执行的方法,通知服务器执行,不占用主程序进程的方法
全栈程序员站长
2022/11/11
16K0
超详细讲解命令执行漏洞
命令执行漏洞是指服务器没有对执行的命令进行过滤,用户可以随意执行系统命令,命令执行漏洞属于高危漏洞之一
网络安全自修室
2022/09/01
6.5K0
超详细讲解命令执行漏洞
PHP命令执行学习总结
最近学习了PHP命令执行,内容比较多,把自己学到的总结下来,加深理解,水平有限,欢迎大佬斧正。
雪痕@
2020/09/27
1.3K0
PHP命令执行学习总结
PHP敏感函数关闭参考
搜索disable_functions 然后改为=disable_functions=phpinfo,dl, exec, system,passthru,popen, pclose, proc_open, proc_nice, proc_terminate, proc_get_status, proc_close, leak, apache_child_terminate, escapeshellcmd, shell-exec, crack_check, crack_closedict, crack_get
苦咖啡
2018/05/07
2.1K0
RCE命令执行/代码执行
RCE英文全称:remote command/code execute 分为远程命令执行ping和远程代码执行evel。 漏洞出现的原因:没有在输入口做输入处理。 我们常见的路由器、防火墙、入侵检测等设备的web管理界面上
wuming
2021/01/21
2.4K0
RCE命令执行/代码执行
PHP建议禁用的危险函数
PHP配置文件中的disable_functions选项能够在PHP中禁用指定的函数。PHP中有很多危险的内置功能函数,如果使用不当,可造成系统崩溃。禁用函数可能会为研发带来不便,但禁用的函数太少又可能增加研发人员写出不安全代码的概率,同时为黑客非法获取服务器权限提供遍历。
Petrochor
2022/06/07
1.3K0
干货 | 突破disable_functions限制执行命令·上
disable_functions是php.ini中的一个设置选项。相当一个黑名单,可以用来设置PHP环境禁止使用某些函数,通常是网站管理员为了安全起见,用来禁用某些危险的命令执行函数等。
HACK学习
2022/02/17
5.8K0
干货 | 突破disable_functions限制执行命令·上
命令执行与代码执行漏洞原理
命令执行定义 当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system,exec,shell_exec等,当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常命令中,造成命令执行攻击。
天钧
2020/03/12
2.6K0
PHP建议禁用的危险函数
PHP配置文件中的disable_functions选项能够在PHP中禁用指定的函数。PHP中有很多危险的内置功能函数,如果使用不当,可造成系统崩溃。禁用函数可能会为研发带来不便,但禁用的函数太少又可能增加研发人员写出不安全代码的概率,同时为黑客非法获取服务器权限提供遍历。
行云博客
2020/08/11
2.6K0
绕过Disable Functions来搞事情
多半是disable_functions惹的祸。查看phpinfo发现确实设置了disable_functions:
FB客服
2021/03/25
4.9K0
Windows下ThinkPHP与Linux互通之exec或shell_exec问题
最近在做一个项目需要用到PHP调用Linux命令行脚本,在服务器执行命令是可以的,但是当放在项目代码中,在web中执行命令就不行了,调试了一天,终于可以了!
php007
2019/11/07
2.1K0
Windows下ThinkPHP与Linux互通之exec或shell_exec问题
PHP 执行 Shell 命令
主要有 exec() shell_exec() system()。 exec() string exec ( string $command [, array $output [, int $return_var ]] ) 返回最后一条结果。 如果使用了 output 参数,shell 命令的每行结果会填充到该数组中。 shell_exec() string shell_exec(string $cmd) 以 字符串 形式返回执行的全部结果。 system() string system(string $c
康怀帅
2018/02/28
3.8K0
php源码审计_静态代码审计
1、安装相关软件,如Sublime text、 Notepad++、editplus、 Seay源代码审计系统等
全栈程序员站长
2022/11/09
10.4K0
php源码审计_静态代码审计
禁用危险函数-PHP安全
PHP配置文件中的disable_functions选项能够在PHP中禁用函数,PHP内置函数中存在很多危险性极高的函数,在生成环境上一定要注意使用。如果设置不当,严重可能造成系统崩溃。
申霖
2020/04/17
1.4K0
看我深夜如何绕过disable_functions拿到主机权限
事情的起因是这样的 昨天晚上还在和女朋友聊天的时候,突然一个好兄弟发了一个连接给我们,说他的朋友被骗了钱,我们拿到主站的时候大概是这样的 :sun_with_face:这种站点一看就知道是那种骗人的站点,也不知为啥有这么多人相信天上掉馅饼。
WgpSec
2021/02/04
2.1K0
看我深夜如何绕过disable_functions拿到主机权限
php 安全设置总结。
打开php.ini,查找disable_functions,按如下设置禁用一些函数
用户7657330
2020/08/14
3.3K0
哥斯拉Godzilla PHP Webshell分析与检测特征提取
冰蝎v3.0 Beta 2放出来没多久,就被找到了固定长度的特征,过两天又更新了,加了一些随机字符,固定长度特征消失。
用户1423082
2024/12/31
2710
哥斯拉Godzilla PHP Webshell分析与检测特征提取
相关推荐
php执行系统外部命令
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验