首页 > 编程语言 >php危险函数

php危险函数

时间:2022-11-25 00:12:40浏览次数:43  
标签:fp 执行 函数 exec command 危险 array 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;
?>

 

标签:fp,执行,函数,exec,command,危险,array,php
From: https://www.cnblogs.com/jihejihe/p/16923914.html

相关文章

  • JS的函数式编程范式
    一、认识函数式编程为什么学习函数式编程?学吧,不学干啥,js太原始了,得接收新事物,就很帅,里面的概念,学的晕乎乎,最直观的感受就是,套娃函数式编程是随着React的流行受到关注的......
  • SystemFunction032函数的免杀研究
    什么是SystemFunction032函数?虽然BenjaminDelphi在2013年就已经在Mimikatz中使用了它,但由于我之前对它的研究并不多,才有了下文。这个函数能够通过RC4加密方式对内存区域......
  • 第11节-MySQL存储函数
    11.1、函数介绍1、函数是存储在服务器端的SQL语句的集合2、函数分为MySQL提供的内部函数和用户自定义医数两大类.MySQL提供了很丰富的内部函数·数学函数·字符串医......
  • C++学习笔记——友元函数
    //#include<iostream>//usingnamespacestd;////classStu//{//protected://private://intage;//voidfun()//{//age=12;//......
  • C++学习笔记——构造函数
    //#include<iostream>//usingnamespacestd;////classStu//{//public://intage;//floatf;////构造函数,可由系统自动调用//Stu()//......
  • C++学习笔记——析构函数
    //#include<iostream>//usingnamespacestd;////classFive//{//public://intn;//Five()//定义一个构造函数//{//cout<<"调用......
  • C++学习笔记——带参构造函数
    //#include<iostream>//usingnamespacestd;////classStu//{//public://intage;//floatf;////构造函数,可由系统自动调用//Stu()//......
  • C++学习笔记——常函数
    //#include<iostream>//usingnamespacestd;////classSeven//{//public:////构造函数和析构函数不能定义为常函数//inta;////Seven()//{//......
  • Arduino Wire.requestFrom 函数读取没有反应
    目录前言过程参考文章前言在读取DA217传感器ID的时候,发现把需要读取的寄存器地址写过去之后,再用Wire.requestFrom去读取就没有反应了(程序不会继续运行,会卡死到此处)......
  • C语言学习:【函数】
    C语言中的函数名是一个指向函数方法地址,这意味着可以将函数名作为值传递给指针,在这两个的前提下于是就有了指针函数和函数指针1.指针函数指针函数既是返回值为指针的函数......