Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >php执行系统外部命令函数:exec()、passthru()、system()、 shell_exec()

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

作者头像
Yiiven
发布于 2022-12-15 05:44:58
发布于 2022-12-15 05:44:58
1.1K00
代码可运行
举报
文章被收录于专栏:怡文菌怡文菌
运行总次数:0
代码可运行

php提供4种方法执行系统外部命令:exec()、passthru()、system()、 shell_exec()

先检查配置文件php.ini中是否有禁止这是个函数。找到 disable_functions,配置如下:

disable_functions =

如果“disable_functions=”后面有接上面四个函数,则将其删除。

方法一:exec()

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

知识点:

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

方法二:passthru()

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

知识点:

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

方法三:system()

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

知识点:

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

方法四:间隔符号 ` 和shell_exec()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
shell_exec ( string $cmd ) : string

注:shell_exec() 函数实际上仅是间隔符号 `  操作符的变体。

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
header("Content-type:text/html;charset=gb2312");
/**
* exec()
*/
echo "
<pre>";
$content1 = exec("ver");
echo $content1;
echo "</pre>";
echo "<hr>";
/**
* passthru()
*/
echo "
<pre>";
passthru("cd");
echo "</pre>";
echo "<hr>";
/**
* system()
*/
echo "
<pre>";
system("ipconfig");
echo "</pre>";
echo "<hr>";
/**
* shell_exec()
*/

$content2 = `arp -a`;
echo "<pre>";
echo $content2;
echo "</pre>";
?>

执行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Microsoft Windows [版本 6.1.7601]
-----------------------------------------------------------------------------------
D:\vhosts\www
-----------------------------------------------------------------------------------
Windows IP 配置
无线局域网适配器 无线网络连接 2:
媒体状态 . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :
以太网适配器 本地连接:
媒体状态 . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :
无线局域网适配器 无线网络连接:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::9da7:d495:5d7:efd7%13
IPv4 地址 . . . . . . . . . . . . : 192.168.0.109
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.0.1
以太网适配器 Bluetooth 网络连接:
媒体状态 . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :
-----------------------------------------------------------------------------------
接口: 192.168.0.109 --- 0xd
Internet 地址 物理地址 类型
192.168.0.1 8c-a6-df-d0-df-78 动态
192.168.0.3 28-3a-4d-7d-0e-73 动态
192.168.0.255 ff-ff-ff-ff-ff-ff 静态
224.0.0.2 01-00-5e-00-00-02 静态
224.0.0.22 01-00-5e-00-00-16 静态
224.0.0.252 01-00-5e-00-00-fc 静态
255.255.255.255 ff-ff-ff-ff-ff-ff 静态

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:

原文出处:Yiiven https://cloud.tencent.com/developer/article/2193125

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PHP执行系统外部命令函数:exec()、passthru()、system()、shell_exec()
php提供4种方法执行系统外部命令:exec()、passthru()、system()、 shell_exec()。 在开始介绍前,先检查下php配置文件php.ini中是有禁止这是个函数。找到 disable_functions,配置如下:
全栈程序员站长
2022/07/08
1.5K0
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.1K0
PHP命令执行学习总结
最近学习了PHP命令执行,内容比较多,把自己学到的总结下来,加深理解,水平有限,欢迎大佬斧正。
雪痕@
2020/09/27
1.1K0
PHP命令执行学习总结
PHP实现执行外部程序的方法详解
在一些特殊情况下,会使用PHP调用外部程序执行,比如:调用shell命令、shell脚本、可执行程序等等,今天在源码中了解了一下PHP执行外部程序的方法,借此机会顺便整理一下。
用户8826052
2021/07/13
1K0
命令执行与代码执行漏洞原理
命令执行定义 当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system,exec,shell_exec等,当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常命令中,造成命令执行攻击。
天钧
2020/03/12
2.5K0
PHP建议禁用的危险函数
PHP配置文件中的disable_functions选项能够在PHP中禁用指定的函数。PHP中有很多危险的内置功能函数,如果使用不当,可造成系统崩溃。禁用函数可能会为研发带来不便,但禁用的函数太少又可能增加研发人员写出不安全代码的概率,同时为黑客非法获取服务器权限提供遍历。
Petrochor
2022/06/07
1.1K0
超详细讲解命令执行漏洞
命令执行漏洞是指服务器没有对执行的命令进行过滤,用户可以随意执行系统命令,命令执行漏洞属于高危漏洞之一
网络安全自修室
2022/09/01
6K0
超详细讲解命令执行漏洞
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.5K0
php输出命令_php怎么调用函数
以上方法是命令执行完才可执行后面程序,如果你的逻辑复杂,会影响用户体验,这时可以提供一个,异步执行的方法,通知服务器执行,不占用主程序进程的方法
全栈程序员站长
2022/11/11
15.1K0
PHP建议禁用的危险函数
PHP配置文件中的disable_functions选项能够在PHP中禁用指定的函数。PHP中有很多危险的内置功能函数,如果使用不当,可造成系统崩溃。禁用函数可能会为研发带来不便,但禁用的函数太少又可能增加研发人员写出不安全代码的概率,同时为黑客非法获取服务器权限提供遍历。
行云博客
2020/08/11
2.4K0
聊一聊代码、命令执行
php官方在php7中更改了assert函数。在php7.0.29之后的版本不支持动态调用。
重生信息安全
2020/04/26
1.4K0
php命令执行
php操纵计算机执行命令之后,获取所有结果,但是不会自动输出,需要配合echo使用
kam1
2022/03/08
6.7K0
php命令执行
RCE命令执行/代码执行
RCE英文全称:remote command/code execute 分为远程命令执行ping和远程代码执行evel。 漏洞出现的原因:没有在输入口做输入处理。 我们常见的路由器、防火墙、入侵检测等设备的web管理界面上
wuming
2021/01/21
2.1K0
RCE命令执行/代码执行
禁用危险函数-PHP安全
PHP配置文件中的disable_functions选项能够在PHP中禁用函数,PHP内置函数中存在很多危险性极高的函数,在生成环境上一定要注意使用。如果设置不当,严重可能造成系统崩溃。
申霖
2020/04/17
1.3K0
PHP命令执行漏洞初探
PHP提供如下函数用于执行外部应用程序;例如:system()、shell_exec()、exec()、passthru()
Mirror王宇阳
2020/11/12
1.7K0
Python 执行系统命令
Python 编程过程中经常会用到系统命令,本文记录实现方法。 系统命令 作为胶水语言,Python可以很方便的执行系统命令,Python3中常用的执行操作系统命令有以下方式 os.system() os.popen() subprocess 模块 os.system 执行命令但无法获取取命令输出时,可以使用 os.system os.system() 是C语言 system() 函数的封装,返回命令的退出状态码,命令执行结果输出到标准输出(stdout/窗口)。 system函数可以将
为为为什么
2022/08/10
1.7K0
socket编程进阶
1、   动态导入模块 第一种方法(python解释器自己内部用的): 上图是我程序的目录结构 下面代码是动态导入模块3.py的源码: 1 #AUTHOR:FAN 2 lib_dir = __impo
coders
2018/01/04
1.8K0
socket编程进阶
干货 | 突破disable_functions限制执行命令·上
disable_functions是php.ini中的一个设置选项。相当一个黑名单,可以用来设置PHP环境禁止使用某些函数,通常是网站管理员为了安全起见,用来禁用某些危险的命令执行函数等。
HACK学习
2022/02/17
5.5K0
干货 | 突破disable_functions限制执行命令·上
网站安全防护公司渗透测试执行命令漏洞
哈喽大家好,近期我们Sine安全对客户平台进行渗透测试的时候,发现有一些命令执行的漏洞测试语句和函数,导致服务器被提权被入侵,上一节提到XSS跨站脚本攻击检测方法,本章来总和一下脚本执行命令的详细检测手段,以及绕过waf的办法,只有这样详细的对平台进行安全测试才能保障整个平台安全稳定。
网站安全专家
2019/10/12
1.2K0
网站安全防护公司渗透测试执行命令漏洞
渗透测试实战
在看白帽子们的漏洞的时候总有一种感觉就是把web渗透简单地理解成了发现web系统漏洞进而获取webshell。其实,个人感觉一个完整的渗透(从黑客的角度去思考问题)应该是以尽一切可能获取目标的系统或者服务器的最高权限,尽可能的发现足够多的敏感信息。这个过程应该包括但不限于以下几个方面:
HACK学习
2019/08/07
3.7K1
相关推荐
PHP执行系统外部命令函数:exec()、passthru()、system()、shell_exec()
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档