当前位置: 首页 > 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.xdnf.cn/news/1238149.html

相关文章:

  • 第N个泰波那契数
  • Spring lookup-method实现原理深度解析
  • e2studio开发RA4M2(6)----GPIO外部中断(IRQ)配置
  • 信创及一次ORACLE到OB的信创迁移
  • 图像、视频、音频多模态大模型中长上下文token压缩方法综述
  • 使用 Vuepress + GitHub Pages 搭建项目文档
  • 【Bluetooth】【Transport层篇】第四章 基于基础UART的蓝牙硬件发送协议 UART H4 Transport详解
  • Docker 国内可用镜像
  • 关于 xrdp远程桌面报错“Error connecting to sesman on 127.0.0.1:3350“的解决方法
  • [自动化Adapt] 录制引擎
  • 计算机视觉CS231n学习(2)
  • 第六章第三节 TIM 输出比较
  • Java 大视界 -- Java 大数据在智能教育学习资源个性化推荐与学习路径动态调整中的深度应用(378)
  • ARPO:让LLM智能体更高效探索
  • 三角洲行动ACE反作弊VT-d报错?CPU虚拟化如何开启!
  • 嵌入式学习-(李宏毅)机器学习(5)-day32
  • 苍穹外卖项目学习——day1(项目概述、环境搭建)
  • 音视频学习(五十):音频无损压缩
  • 力扣-437.路径总和III
  • 深度学习中的模型知识蒸馏
  • 关于Web前端安全之XSS攻击防御增强方法
  • 广东省省考备考(第六十五天8.3)——判断推理:图形推理(数量规律题目总结)
  • C的运算符与表达式
  • C的数据类型与变量
  • lumerical——锥形波导偏振转换
  • 《前端无障碍设计的深层逻辑与实践路径》
  • JavaWeb学习------SpringCloud入门
  • Web 开发 11
  • JavaScript:编程世界中的“语盲”现象
  • CCF-GESP 等级考试 2025年6月认证C++一级真题解析