PHP无eval后门技巧解析
需积分: 0 159 浏览量
更新于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 上传
林书尼
- 粉丝: 27
- 资源: 315
最新资源
- 开源通讯录备份系统项目,易于复刻与扩展
- 探索NX二次开发:UF_DRF_ask_id_symbol_geometry函数详解
- Vuex使用教程:详细资料包解析与实践
- 汉印A300蓝牙打印机安卓App开发教程与资源
- kkFileView 4.4.0-beta版:Windows下的解压缩文件预览器
- ChatGPT对战Bard:一场AI的深度测评与比较
- 稳定版MySQL连接Java的驱动包MySQL Connector/J 5.1.38发布
- Zabbix监控系统离线安装包下载指南
- JavaScript Promise代码解析与应用
- 基于JAVA和SQL的离散数学题库管理系统开发与应用
- 竞赛项目申报系统:SpringBoot与Vue.js结合毕业设计
- JAVA+SQL打造离散数学题库管理系统:源代码与文档全览
- C#代码实现装箱与转换的详细解析
- 利用ChatGPT深入了解行业的快速方法论
- C语言链表操作实战解析与代码示例
- 大学生选修选课系统设计与实现:源码及数据库架构