php执行函数吗_PHP代码执行函数

危险函数

mixed eval (string $code) 把字符串作为PHP代码执行

bool assert (mixed $assertion [,string $description]) 替代eval函数。相同功能。

mixed preg_replace(mixed $pattern,mixed $replacement,mixed $subject[,int $limit=-1 [,int&$count]])

/e修正符使preg_replace()将replacement参数当作PHP代码

preg_replace("/test/e",$_GET["V"],"jutst test");

提交?h=phpinfo(),phpinfo()将会被执行

string create_function(string $args,string $code)

创建一个匿名函数,并返回独一无二的函数名

$newfunc = create_funciton('$v','return system($v);')

$newfunc('whoami');就相当于system('whoami')

call_user_func(callable $callback [,mixed $parameter [,mixed $....]])

第一个参数callback 是被调用的回调函数,其余参数是回调函数的参数

function test($var){echo "callable test $var";}

call_user_func('system','whoami')

call_user_func_array(callable $callback,array $param_arr)

把第一个参数作为回调函数(callback)调用,把参数数组作(param_arr)为回调函数的参数传入

复制代码

包含函数

include $file;

变量$file 可控的情况下我们就可以包含任意文件。从而getshell目的

另外再不同的配置环境,可以包含不同的文件,因此分为远程文件包含和本地文件包含。

包含函数可以读取任意文件内容,这就需要用到【支持的协议和封装的协议】以及【过滤器】

include($_GET['file']);

?file=php://file/convert.base64-encode/resource=index.php

file是协议 convert.base64-encode 是过滤器

include_once

require

require_once

复制代码

命令执行函数

exec():执行一个外部程序

passthru():执行外部程序并且显示原始输出

proc_open() :执行一个命令,并且打开用来输入/输出的文件指针

shell_exec():通过shell环境,并且将完整的输出以字符串方式返回

system():执行外部程序,并且返回输出

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

复制代码

文件操作函数

copy : 拷贝文件

file_get_contents:将整个文件读入为一个字符串

file_put_contents:将字符串写入文件

file:把整个文件读入一个数组中

fopen:打开文件或者url

move_uploaded_file:将上传的文件移动到新位置

readfile:输出文件

rename:重命名一个文件或目录

rmdir:删除目录

unlink&delete :删除文件

复制代码

特殊函数

信息泄露

bool phpinfo([int $what = INFO_ALL]):输出php当前状态的大量信息包含启用的扩展php版本服务器信息

软链接-读取文件内容(liunx)

bool symlink(string $target ,string $link)

symlink()对于已有的target 建立一个名为link的符号链接

string readlink(string $path)

readlink()和同名的C函数做同样的事情,返回符号连接的内容

环境变量

string getenv(string $varname)

获取一个环境变量的值

bool putenv(string $setting)

添加setting 到服务器环境变量。环境变量仅存活与当前请求期间,再请求结束时恢复初始状态

加载扩展

bool dl(string $library)

载入指定参数library的php扩展

配置相关

string ini_get():成功时返回配置选项的值

string ini_set():设置指定配置选项的值,这个选项会在脚本运行时保持新的值,并且脚本结束恢复

string ini_alter:同上

string ini_restore:恢复指定配置选项到它的原始值

数字判断

bool is_numeric(mixed $var)

如果var时数字和数字字符串则返回TRUE,否则返回FALSE

*仅用is_numeric判断而不用intval转换有可能插入16进制字符串到数据库,进而可能导致sql二次注入

数组相关

bool in_array($needle,array $haystack[,bool $strict=FALSE]):该函数比较会自动进行类型转换

$a='1abc'

inarray($a,array(1,2,3))返回为真

复制代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值