归纳php中执行命令、读文件的函数
这部分主要设置及代码审计,要先了解一些php函数
PHP中常见的敏感函数列表
PHP-代码执行函数-命令执行函数
执行命令的函数
system()
执行系统命令,输出执行结果
exec()
执行系统命令,不输出结果,echo只返回最后一行
exec()函数可以执行系统命令, 但它不会直接输出结果, 而是将执行的结果保存到数组中
passthru()
执行系统命令,输出执行结果,它支持二进制的数据,更多的用于文件, 图片等操作
shell_exec()
执行系统命令,不输出结果,echo返回所有
反引号 ``
和shell_exec等价
执行系统命令,不输出结果,echo返回所有
popen()/proc_open()
该函数也可以将字符串当作OS命令来执行,但是该函数返回的是文件指针而非命令执行结果。该函数有两个参数。
$ cmd = $ _POST['cmd'].">> 1.txt";
//此时的$ cmd=ipconfig >> 1.txt
popen("$ cmd",'r'); //实际上就是 popen("ipconfig >> 1.txt", "r"),把执行结果放入1.txt文件,通过访问1.txt文件查看
pcntl_exec()
读文件的小tips
如果使用的命令没有回显,可以使用重定向
例如exec("ls >> 1.txt");
>
是覆盖,>>
是追加
读文件的函数
file_get_contents()
读一个文件,没有回显,echo以流的形式在源代码中
highlight_file()
读一个文件高亮显示,直接回显,不用echo
show_source()
读文件,直接回显
readfile()
以流的形式回显,在源代码中