当前位置: 首页 > news >正文

关于assert()函数,eval()函数,include

一.assert()函数

例子

assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");assert("file_exists('$file')") or die("That file doesn't exist!");

第一个是会检验$file是否有.. ,如果有strpos会返回true,true和false不相等会返回false,最后会终止程序返回Detected hacking attempt!

assert()函数是 PHP 中的一个调试函数,用于在代码中设置断言检查。

assert中的参数要是字符串很可能会被当做php代码进行执行

二.eval()函数

eval()函数在php中会将参数中的字符串当作php代码执行。

但是开发中很少使用,他的用法很多都会被其他替代,常见的用法是我们去上传具有该函数的文件,进而去渗透。像我们在面对ssti漏洞(模板注入漏洞)中会去找子类的eval,但是这边的是python的,而不是php的,但是python中的可以仅限单个表达式,所以还要配合其他函数进行,而php中的可以任意执行。

三.include()函数

内容:include 是 PHP 中用于包含并运行指定文件的重要函数,它在动态网页开发中非常常用,但也存在一些安全风险需要注意。

include()的参数一般都是:文件名或者文件路径(url),常常利用协议去进行渗透

关系对比:

函数构造命令执行代码执行PHP 5.xPHP 7.2+
assert(system()')双重执行仅执行命令
eval('system()')执行命令仅表达评估
特性eval($_REQUEST['cmd'])include()
执行方式直接执行字符串中的PHP代码包含并执行指定文件内容
输入要求需要输入完整PHP代码需要文件路径或可解析的URI
利用复杂度高(需构造有效PHP语法)中(需控制文件路径或利用协议)
隐蔽性高(无文件落地)低(需存在可访问的恶意文件)
PHP版本影响全版本有效allow_url_include配置影响
特性eval($_GET['cmd'])assert($_GET['cmd'])
执行机制直接执行字符串中的PHP代码在传统模式下会执行字符串代码
PHP 5.x行为执行代码执行代码
PHP 7.0-7.1行为执行代码默认执行代码(传统模式)
PHP 7.2+行为执行代码默认不执行代码(表达式模式)
返回值返回执行结果返回布尔值(断言是否成功)
设计用途动态代码执行调试断言
危险等级🔴 极高风险PHP <7.2: 🔴 极高风险
PHP ≥7.2: 🟡 中风险
http://www.dtcms.com/a/313517.html

相关文章:

  • Java中手动床架一个线程池
  • 【OD机试题解法笔记】文件缓存系统
  • 第 10 篇:深度学习的“军火库”——CNN、RNN与Transformer,AI如何看懂世界?
  • pod的创建流程
  • [Linux入门] 从 iptables 到 nftables:初学者入门指南
  • 大数据之路:阿里巴巴大数据实践——元数据与计算管理
  • 【分析学】Hilbert 空间的分离性
  • 分布式事务Seata AT模式设计分析篇
  • 41.安卓逆向2-frida hook技术-过firda检测(五)-利用ida分析app的so文件中frida检测函数过检测
  • 关于Manus AI与多语言手写识别的技术
  • Linux驱动学习(六)一些函数
  • 【canvas】
  • 从WebShell 与 ShellCode 免杀技术 打造适合自己的免杀技术链
  • 设计模式 - 组合模式:用树形结构处理对象之间的复杂关系
  • 攻防世界-web-csaw-mfw
  • 【C++】封装,this指针
  • C++高阶笔记第四篇:STL-函数对象
  • 【Leetcode】2106. 摘水果
  • Yakit热加载魔术方法模版插件语法JSRpc进阶调用接口联动
  • 【Bluedroid】btif_av_handle_event 流程源码解析
  • 更换KR100门禁读头&主机
  • UART串口常用库函数(STC8系列)
  • LLM大模型开发-SpringAI:ChatClient、Ollama、Advisor
  • greenfoot主要api
  • 广东省省考备考(第六十五天8.3)——判断推理:图形推理(数量规律题目总结)
  • 使用C++实现日志(3)
  • sqli-labs:Less-23关卡详细解析
  • C的数据类型与变量
  • 2025 Java开发真实试题-阿里面试题分析
  • C语言与数据结构:从基础到实战