PHP系统命令函数
来源:互联网 发布:阿里云免费虚机 编辑:程序博客网 时间:2024/05/21 12:00
<?php
//PHP调用cmd参数
//代码审计命令注入
////PHP执行系统命令可以使用的函数
$action=$_GET['cmd'];
echo "<pre>";
//查询ipconfig信息
/*system()
原型:string system (string command [, int return_var])
system()函数很其它语言中的差不多,它执行给定的命令,输出和返回结果。第二个参数是可选的,用来得到命令执行后的状态码。
返回结果:
成功返回0,
失败(命令不存在等原因) 返回 非0值*/
//echo system($action);
//exec只能获取最后一行数据,shell_execu则可以获取全部数据。
//echo exec($action);
//passthru() 跟system差不多 输出结果
//passthru($action);
//也是获取系统信息 不会直接输出
//echo shell_exec($action);
//反引号也可以输出系统命令
//echo `$action`;
echo popen($action,'r');
//void pcntl_exec(string$path[,array$args [,array$envs]])
//popen 打开进程文件指针 r: 只读。w: 只写 (打开并清空已有文件或创建一个新文件) 和
// proc_open()
//主进程文件,输出时间(子父进程会sleep的关系,所以可能不会和当前时间相同,差距 2s 以内)
$child_file = "child.php";
$descriptorspec = array(
0 => array("pipe", "r"), // 标准输入,子进程从此管道中读取数据
1 => STDOUT, // 标准输出,重定向子进程输入到主进程STDOUT
2 => array("file", "error-output.txt", "a") // 标准错误,写入到一个文件
);
$child_process = proc_open("php {$child_file}", $descriptorspec, $pipes);
while(1){
$time = date("Y-m-d h:i:s");
fwrite($pipes[0], "main say {$time}\n");
sleep(2);
}
proc_close($child_process);
//防御函数
//当用户提供的数据传入此函数,使用 escapeshellarg() 或 escapeshellcmd() 来确保用户欺骗 系统从而执行任意命
escapeshellarg($action);
//可以用到 php 的安全中,会过滤掉 arg 中存在的一些特殊字符。在输入的参数中如果包含中 文传递给 escapeshellarg,会被过滤掉。
escapeshellcmd($action);
//escapeshellcmd()函数会转义命令中的所有 shell 元字符来完成工作。这些元字符包括: #&;` , |*?~ <>^()[]{}$\\。
//这两个函数可以配合着shell_exec()的函数使用 用get传值的时候会把特殊符号给过滤掉 否则执行shell_exec()函数时用户用get
//传输过来的是特殊符号会被执行 这样可以防止注入
//PHP调用cmd参数
//代码审计命令注入
////PHP执行系统命令可以使用的函数
$action=$_GET['cmd'];
echo "<pre>";
//查询ipconfig信息
/*system()
原型:string system (string command [, int return_var])
system()函数很其它语言中的差不多,它执行给定的命令,输出和返回结果。第二个参数是可选的,用来得到命令执行后的状态码。
返回结果:
成功返回0,
失败(命令不存在等原因) 返回 非0值*/
//echo system($action);
//exec只能获取最后一行数据,shell_execu则可以获取全部数据。
//echo exec($action);
//passthru() 跟system差不多 输出结果
//passthru($action);
//也是获取系统信息 不会直接输出
//echo shell_exec($action);
//反引号也可以输出系统命令
//echo `$action`;
echo popen($action,'r');
//void pcntl_exec(string$path[,array$args [,array$envs]])
//popen 打开进程文件指针 r: 只读。w: 只写 (打开并清空已有文件或创建一个新文件) 和
// proc_open()
//主进程文件,输出时间(子父进程会sleep的关系,所以可能不会和当前时间相同,差距 2s 以内)
$child_file = "child.php";
$descriptorspec = array(
0 => array("pipe", "r"), // 标准输入,子进程从此管道中读取数据
1 => STDOUT, // 标准输出,重定向子进程输入到主进程STDOUT
2 => array("file", "error-output.txt", "a") // 标准错误,写入到一个文件
);
$child_process = proc_open("php {$child_file}", $descriptorspec, $pipes);
while(1){
$time = date("Y-m-d h:i:s");
fwrite($pipes[0], "main say {$time}\n");
sleep(2);
}
proc_close($child_process);
//防御函数
//当用户提供的数据传入此函数,使用 escapeshellarg() 或 escapeshellcmd() 来确保用户欺骗 系统从而执行任意命
escapeshellarg($action);
//可以用到 php 的安全中,会过滤掉 arg 中存在的一些特殊字符。在输入的参数中如果包含中 文传递给 escapeshellarg,会被过滤掉。
escapeshellcmd($action);
//escapeshellcmd()函数会转义命令中的所有 shell 元字符来完成工作。这些元字符包括: #&;` , |*?~ <>^()[]{}$\\。
//这两个函数可以配合着shell_exec()的函数使用 用get传值的时候会把特殊符号给过滤掉 否则执行shell_exec()函数时用户用get
//传输过来的是特殊符号会被执行 这样可以防止注入
阅读全文
0 0
- PHP系统命令函数
- php中使用exec,system等函数调用系统命令
- php中使用exec,system等函数调用系统命令
- php中使用exec,system等函数调用系统命令
- php中使用exec,system等函数调用系统命令
- php中使用exec,system等函数调用系统命令
- PHP执行linux系统命令的几个基本函数
- php中使用exec,system等函数调用系统命令
- php中使用exec,system等函数调用系统命令
- php中使用exec,system等函数调用系统命令
- php中使用exec,system等函数调用系统命令
- php中使用exec,system等函数调用系统命令
- php中使用exec,system等函数调用系统命令
- PHP执行系统外部命令函数:exec()、passthru()、system()、shell_exec()
- PHP执行系统外部命令函数:exec()、passthru()、system()、shell_exec()
- php执行系统命令
- PHP 执行系统命令
- php执行系统命令
- python合并ts视频
- 设计模式之桥接模式
- Java高并发秒杀API(一)之业务分析与DAO层
- SQLAlchemy外键约束
- 冒泡排序法函数
- PHP系统命令函数
- 洛谷P1268 树的重量(构造法)
- 【electron】electron入门 教你如何创建第一个electron应用 并进行打包【超详细】
- adb push、adb pull、adb install 命令用法
- 学习C语言的第1天
- webservice初探
- 2017年中秋节随笔
- 弗洛伊德最短路径算法
- Boolan c++笔记_1