PHP危险函数
部分内容转载
https://www.jianshu.com/p/277294c1a9f8
https://www.cnblogs.com/yewooo00/p/7551083.html
https://www.cnblogs.com/wfzWebSecuity/p/11202512.html
信息泄露
1、phpinfo函数
输出 PHP 当前状态的大量信息,包含了 PHP 编译选项、启用的扩展、PHP 版本、服务器信息和环境变量(如果编译为一个模块的话)、PHP环境变量、操作系统版本信息、path 变量、配置选项的本地值和主值、HTTP 头和PHP授权信息
2、scandir函数
列出指定路径中的文件和目录
<?php
var_dump(scandir('./'))
?>
执行代码函数
1、eval函数
$code
) : mixedeval() 函数把字符串按照 PHP 代码来执行
该字符串必须是合法的 PHP 代码,且必须以分号结尾。
eval('phpinfo();');
在页面输出hello
2、assert函数
$assertion
[, Throwable $exception
] ) : boolassert — 检查一个断言是否为 FALSE
如果 assertion
是字符串,它将会被 assert() 当做 PHP 代码来执行
assert('phpinfo()');
3、preg_replace函数
preg_replace — 执行一个正则表达式的搜索和替换
$pattern
, mixed $replacement
, mixed $subject
[, int $limit
= -1 [, int &$count
]] ) : mixedpreg_replace("/test/e","phpinfo();","test");
4、create_function函数
创造一个匿名函数
<?php
$newfunc = create_function('$a,$b', 'return "$a + $b= " . ($a+$b);');
echo $newfunc(1,2) . "\n";
?>
等价于
<?php function lambda($a,$b){
return "$a+$b = ".($a+$b); }
echo lambda(1,2);
?>
利用
<?php
$cfunc = create_function('$v', 'return system($v);');
echo $cfunc('whoami');
?>
5、call_user_func函数
第一个参数 callback
是被调用的回调函数,其余参数是回调函数的参数
<?php
$callback= 'assert';
$parameter = 'phpinfo()';
call_user_func($callback, $parameter);
?>
6、call_user_func_array()函数
使用参数数组中的参数调用第一个参数给定的回调。
<?php
call_user_func_array('assert', array('phpinfo()'));
?>
7、array_map() 函数
将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
<?php
$array = array(0,1,2,3,4,5);
array_map($_GET[1],$array);
?>
http://localhost/test.php?1=phpinfo
命令执行函数
1、exec函数
执行一个外部程序
<?php
echo exec('whoami');
?>
2、shell_exec函数
通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回(安全模式不能使用)
<?php
echo shell_exec('ls');
?>
3、passthru函数
$command
[, int &$return_var
] ) : voidpassthru — 执行外部程序并且显示原始输出
<?php
echo passthru('ls');
?>
4、escapeshellcmd函数
$command
) : stringescapeshellcmd — shell 元字符转义
5、system()函数
$command
[, int &$return_var
] ) : string执行外部程序,并且显示输出
<?php
echo system('whoami')
?>
4、proc_open函数
$cmd
, array $descriptorspec
, array &$pipes
[, string $cwd
= NULL
[, array $env
= NULL
[, array $other_options
= NULL
]]] ) : resourceproc_open — 执行一个命令,并且打开用来输入/输出的文件指针。
5、popen()函数
$command
, string $mode
) : resource打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生。
文件操作函数
copy----------------------拷贝文件
file_get_contents---------将整个文件读入一个字符串
file_put_contents---------将一个字符串写入文件
file----------------------把整个文件读入一个数组中
fopen---------------------打开文件或者url
move_uploaded_file--------将上传的文件移动到新位置
readfile------------------输出文件
rename--------------------重命名一个文件或目录
rmdir---------------------删除目录
unlink & delete-----------删除文件
其他函数
1、chgrp()
函数改变文件所属的组
2、chown()
函数改变指定文件的所有者
3、ini_set()
可用于修改、设置 PHP 环境配置参数
4、ini_alter()
是 ini_set() 函数的一个别名函数,功能与 ini_set() 相同
5、ini_restore()
可用于恢复 PHP 环境配置参数到其初始值
最新文章
- mac-终端命令
- C++设计模式-Strategy策略模式
- Foundation框架—日期类(NSDate)
- tomcat管理端的页面安全措施
- SQL语句汇总(三)——聚合函数、分组、子查询及组合查询
- Ubuntu14.04 Server amd64 配置 Apache+MySQL+Django
- jQuery Easing动画效果扩展(转)
- java.util 集合框架集合
- 细数Android开源项目中那些频繁使用的并发库中的类
- 有很多10或100开头的IP在频繁访问ECS的原因
- MAC上更新Ruby失败解决办法
- EasyUI - 后台管理系统 - 增加,删除,修改
- 关于FastDBF库读写ArcGis dbf文件的小bug
- JdbcTemplate实体映射
- SlidingMenu第一篇 --- 导入SlidingMenu库
- C# BitArray 二进制处理
- Proxy代理模式
- 菜鸟入门【ASP.NET Core】11:应用Jwtbearer Authentication、生成jwt token
- (白话理解)CAS机制
- html 统一资源定位器(url)和url编码