PHP无eval后门技巧解析
需积分: 0 197 浏览量
更新于2024-08-05
收藏 440KB PDF 举报
"这篇文章主要探讨了PHP中无eval的代码执行后门方法,包括assert、create_function、preg_replace以及mb_ereg_replace等函数的使用。虽然PHP 7对某些函数进行了限制,但仍然存在绕过的方式。"
在PHP中,进行任意代码执行的常见手段是使用`eval`函数,它允许将字符串作为PHP代码执行。然而,`eval`因其安全性问题常常受到质疑,同时也容易被防火墙或安全策略所限制。文章提到了另一种常用的替代方法——`assert`,它同样可以执行用户输入的代码。虽然有人认为`assert`在PHP 7.0及以上版本被禁用,实际上只是禁止了直接的字符串拆分使用。
此外,文章介绍了两种在PHP 5中可以执行任意代码的技巧:
1. `create_function`:这是一个可以创建匿名函数的构造器,它允许将字符串作为执行的代码。尽管有传言称PHP 7中不再支持,但实际并非如此,它仍然可以工作。
2. 使用`/e`修饰符的`preg_replace`和`preg_filter`函数:这两个函数在PHP 5中可以执行代码,但在PHP 7中已被废弃。
在PHP 7中,由于`/e`修饰符的安全问题,它被弃用,但文章指出可以通过`mb_ereg_replace`和`mb_eregi_replace`以及它们的别名`mbereg_replace`和`mberegi_replace`,在`ee`模式下模拟`/e`修饰符的功能,达到代码执行的目的。
然而,这些技术在现代PHP环境中可能不太适用,因为安全防护措施已经发展得更加完善。文章提醒读者,这些方法在绕过防御系统时可能并不足够有效,建议使用更复杂的方法,如创建混淆的自定义类,并根据PHP版本(5使用assert,7使用create_function)进行不同的代码拆分,以提高绕过检测的可能性。
文章提供了一些关于PHP中无`eval`的代码执行方法,但同时也强调了这些方法在当前环境中的局限性和不安全性。在实际应用中,应尽量避免直接执行用户输入的代码,而是采用安全的编程实践和过滤机制来保护系统免受潜在攻击。
206 浏览量
2019-08-28 上传
2020-10-26 上传
2021-04-29 上传
2023-07-22 上传
2010-04-09 上传
2021-10-10 上传
2021-01-20 上传
2020-10-28 上传
林书尼
- 粉丝: 28
- 资源: 315
最新资源
- R语言中workflows包的建模工作流程解析
- Vue统计工具项目配置与开发指南
- 基于Spearman相关性的协同过滤推荐引擎分析
- Git基础教程:掌握版本控制精髓
- RISCBoy: 探索开源便携游戏机的设计与实现
- iOS截图功能案例:TKImageView源码分析
- knowhow-shell: 基于脚本自动化作业的完整tty解释器
- 2011版Flash幻灯片管理系统:多格式图片支持
- Khuli-Hawa计划:城市空气质量与噪音水平记录
- D3-charts:轻松定制笛卡尔图表与动态更新功能
- 红酒品质数据集深度分析与应用
- BlueUtils: 经典蓝牙操作全流程封装库的介绍
- Typeout:简化文本到HTML的转换工具介绍与使用
- LeetCode动态规划面试题494解法精讲
- Android开发中RxJava与Retrofit的网络请求封装实践
- React-Webpack沙箱环境搭建与配置指南