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靶机可以以虚拟机镜像形式运行。

解题步骤详解

第一步:信息收集

  1. 端口扫描

    • 使用nmap扫描靶机开放端口
    • 发现开放端口:21(FTP)、22(SSH)、80(HTTP)、15020(HTTPS)等
  2. 目录枚举

    • 使用dirb或御剑等工具扫描web目录
    • 发现重要目录:
      • /admin2/
      • /shadow
      • /blog
      • /vault

第二步:Flag 1 - Italy

  1. 访问/admin2/

    • 该页面需要输入密码
    • 查看页面源代码,特别是JavaScript部分
  2. 密码破解

    • 发现密码计算逻辑:
      (1079950212331060 ÷ 1988 + 234562221224) - 4469 = 77779673
    • 计算结果77779673即为密码
  3. 获取flag

    • 输入密码后获得第一个flag:
      Italy:46202df2ae6c46db8efc0af148370a78

第三步:Flag 2 - France

  1. 检查15020端口

    • 该端口运行HTTPS服务
    • 检查HTTPS证书信息
  2. 获取flag

    • 在HTTPS证书签名中发现第二个flag:
      Paris:a51f0eda836e4461c3316a2ec9dad743
    • 注意:题目描述为France但flag显示Paris,可能是笔误

第四步:Flag 3 - Croatia

  1. 访问/blog目录

    • 查看页面源代码发现/download.php
    • 访问/download.php发现存在LFI(本地文件包含)漏洞
  2. 利用LFI漏洞

    • 通过多次测试发现靶机多处提示"kevin"用户
    • 利用kevin用户相关文件获取flag
  3. 获取flag

    • 成功利用后获得第三个flag:
      Croatia:e4d49769b40647eddda2fe3041b9564c

第五步:Flag 4 - 未完成

文中未提及Laos和Philippines两个flag的获取方法,可能是作者未完成或未记录。

关键技术点总结

  1. 信息收集

    • 端口扫描是CTF基础步骤
    • 目录枚举工具的使用(drib、御剑等)
  2. 密码破解

    • 从JavaScript中寻找密码计算逻辑
    • 数学运算在密码生成中的应用
  3. 协议分析

    • HTTPS证书信息的检查
    • 非标准端口服务的识别
  4. Web漏洞利用

    • LFI(本地文件包含)漏洞的识别和利用
    • 通过上下文线索(如用户名提示)辅助漏洞利用
  5. 目录遍历

    • 大规模目录遍历时的处理方法
    • 使用wget批量下载分析

扩展思考

  1. 文中未提及的两个flag可能涉及:

    • FTP或SSH服务的利用
    • /shadow目录的深入分析
    • /vault目录中大量文件的模式识别
  2. 可能的其他攻击面:

    • 21端口FTP服务的匿名登录或弱密码
    • 22端口SSH服务的暴力破解或密钥泄露
    • 其他web目录中的隐藏漏洞

总结

本CTF靶机涵盖了多种常见的安全挑战,包括密码破解、协议分析、web漏洞利用等。解题过程展示了从信息收集到漏洞利用的完整思路,特别强调了从页面提示和源代码中寻找线索的重要性。

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 2 - France 检查15020端口 该端口运行HTTPS服务 检查HTTPS证书信息 获取flag 在HTTPS证书签名中发现第二个flag: Paris:a51f0eda836e4461c3316a2ec9dad743 注意:题目描述为France但flag显示Paris,可能是笔误 第四步:Flag 3 - Croatia 访问/blog目录 查看页面源代码发现/download.php 访问/download.php发现存在LFI(本地文件包含)漏洞 利用LFI漏洞 通过多次测试发现靶机多处提示"kevin"用户 利用kevin用户相关文件获取flag 获取flag 成功利用后获得第三个flag: Croatia:e4d49769b40647eddda2fe3041b9564c 第五步:Flag 4 - 未完成 文中未提及Laos和Philippines两个flag的获取方法,可能是作者未完成或未记录。 关键技术点总结 信息收集 端口扫描是CTF基础步骤 目录枚举工具的使用(drib、御剑等) 密码破解 从JavaScript中寻找密码计算逻辑 数学运算在密码生成中的应用 协议分析 HTTPS证书信息的检查 非标准端口服务的识别 Web漏洞利用 LFI(本地文件包含)漏洞的识别和利用 通过上下文线索(如用户名提示)辅助漏洞利用 目录遍历 大规模目录遍历时的处理方法 使用wget批量下载分析 扩展思考 文中未提及的两个flag可能涉及: FTP或SSH服务的利用 /shadow目录的深入分析 /vault目录中大量文件的模式识别 可能的其他攻击面: 21端口FTP服务的匿名登录或弱密码 22端口SSH服务的暴力破解或密钥泄露 其他web目录中的隐藏漏洞 总结 本CTF靶机涵盖了多种常见的安全挑战,包括密码破解、协议分析、web漏洞利用等。解题过程展示了从信息收集到漏洞利用的完整思路,特别强调了从页面提示和源代码中寻找线索的重要性。