CTF实战|USV-2017全题解
字数 1359 2025-08-18 11:37:07
USV-2017 CTF靶机全题解教学文档
靶机概述
USV-2017是一个包含5个flag的CTF靶机,flag分别对应以下国家/地区:
- Croatia
- France
- Italy
- Laos
- Philippines
环境搭建
靶机下载和搭建信息未在文中详细说明,但通常CTF靶机可以以虚拟机镜像形式运行。
解题步骤详解
第一步:信息收集
-
端口扫描
- 使用nmap扫描靶机开放端口
- 发现开放端口:21(FTP)、22(SSH)、80(HTTP)、15020(HTTPS)等
-
目录枚举
- 使用dirb或御剑等工具扫描web目录
- 发现重要目录:
- /admin2/
- /shadow
- /blog
- /vault
第二步:Flag 1 - Italy
-
访问/admin2/
- 该页面需要输入密码
- 查看页面源代码,特别是JavaScript部分
-
密码破解
- 发现密码计算逻辑:
(1079950212331060 ÷ 1988 + 234562221224) - 4469 = 77779673 - 计算结果77779673即为密码
- 发现密码计算逻辑:
-
获取flag
- 输入密码后获得第一个flag:
Italy:46202df2ae6c46db8efc0af148370a78
- 输入密码后获得第一个flag:
第三步:Flag 2 - France
-
检查15020端口
- 该端口运行HTTPS服务
- 检查HTTPS证书信息
-
获取flag
- 在HTTPS证书签名中发现第二个flag:
Paris:a51f0eda836e4461c3316a2ec9dad743 - 注意:题目描述为France但flag显示Paris,可能是笔误
- 在HTTPS证书签名中发现第二个flag:
第四步:Flag 3 - Croatia
-
访问/blog目录
- 查看页面源代码发现/download.php
- 访问/download.php发现存在LFI(本地文件包含)漏洞
-
利用LFI漏洞
- 通过多次测试发现靶机多处提示"kevin"用户
- 利用kevin用户相关文件获取flag
-
获取flag
- 成功利用后获得第三个flag:
Croatia:e4d49769b40647eddda2fe3041b9564c
- 成功利用后获得第三个flag:
第五步:Flag 4 - 未完成
文中未提及Laos和Philippines两个flag的获取方法,可能是作者未完成或未记录。
关键技术点总结
-
信息收集
- 端口扫描是CTF基础步骤
- 目录枚举工具的使用(drib、御剑等)
-
密码破解
- 从JavaScript中寻找密码计算逻辑
- 数学运算在密码生成中的应用
-
协议分析
- HTTPS证书信息的检查
- 非标准端口服务的识别
-
Web漏洞利用
- LFI(本地文件包含)漏洞的识别和利用
- 通过上下文线索(如用户名提示)辅助漏洞利用
-
目录遍历
- 大规模目录遍历时的处理方法
- 使用wget批量下载分析
扩展思考
-
文中未提及的两个flag可能涉及:
- FTP或SSH服务的利用
- /shadow目录的深入分析
- /vault目录中大量文件的模式识别
-
可能的其他攻击面:
- 21端口FTP服务的匿名登录或弱密码
- 22端口SSH服务的暴力破解或密钥泄露
- 其他web目录中的隐藏漏洞
总结
本CTF靶机涵盖了多种常见的安全挑战,包括密码破解、协议分析、web漏洞利用等。解题过程展示了从信息收集到漏洞利用的完整思路,特别强调了从页面提示和源代码中寻找线索的重要性。