CTFer成长之路之举足轻重的信息搜集
字数 1585 2025-08-11 17:40:29
CTF信息搜集技术详解
一、信息搜集在CTF中的重要性
信息搜集是CTF比赛中最基础也是最重要的环节之一,通过有效的信息搜集可以发现目标系统的脆弱点,获取隐藏的flag。本文将通过两个典型CTF题目案例,详细讲解常见的信息搜集技术和方法。
二、基础信息搜集案例解析
题目1:三部分flag组合
题目描述:
- flag由三部分组成
- 使用docker-compose.yml配置环境
- 运行在80端口
解题步骤详解:
-
敏感目录扫描
- 访问robots.txt文件:
http://<target_ip>/robots.txt - 发现敏感目录:
/flag1_is_her3_fun.txt - 访问该目录获取flag第一部分:
flag1:n1book{info_1
- 访问robots.txt文件:
-
编辑器备份文件泄露
- Linux下gedit编辑器会生成带"~"后缀的备份文件
- 访问:
http://<target_ip>/index.php~ - 获取flag第二部分:
flag2:s_v3ry_im
-
vim交换文件恢复
- vim异常退出会生成.swp文件
- 下载交换文件:
http://<target_ip>/.index.php.swp - 恢复步骤:
touch index.php vim -r index.php cat index.php - 获取flag第三部分:
flag3:p0rtant_hack}'
-
组合flag
- 将三部分组合:
n1book{info_1s_v3ry_imp0rtant_hack}
- 将三部分组合:
关键技术点:
- robots.txt文件通常包含网站不希望被爬取的目录
- 编辑器备份文件(.bak, ~等)可能泄露源代码
- vim交换文件(.swp)可以通过特定方法恢复
题目2:Git信息泄露
题目描述:
- 考察git信息泄露
- 同样使用docker-compose环境
- 运行在80端口
解题步骤详解:
-
Git仓库探测
- 使用工具扫描:
git clone https://github.com/denny0223/scrabble.git - 执行扫描:
./scrabble http://<target_ip>/
- 使用工具扫描:
-
访问泄露的Git信息
- 发现并下载
.git目录 - 检查历史记录和文件变更
- 发现并下载
-
获取flag
- 在历史版本或配置文件中找到flag:
n1book{git_looks_s0_easyfun}
- 在历史版本或配置文件中找到flag:
关键技术点:
- 不当配置可能导致.git目录可被访问
- Git历史记录可能包含敏感信息
- 使用专用工具如scrabble可以自动化发现Git泄露
三、信息搜集技术总结
1. 常见信息泄露点
| 泄露类型 | 示例文件 | 风险 |
|---|---|---|
| 编辑器备份 | .bak, ~, .swp | 源代码泄露 |
| 版本控制 | .git, .svn | 版本历史泄露 |
| 配置文件 | .env, config.php | 敏感配置泄露 |
| 临时文件 | .tmp, .temp | 临时数据泄露 |
2. 自动化工具推荐
-
目录扫描工具
- DirBuster
- Dirsearch
- Gobuster
-
Git泄露扫描
- GitHacker
- scrabble
- GitTools
-
综合扫描工具
- Nikto
- OWASP ZAP
3. 防御措施
- 在生产环境禁用编辑器自动备份功能
- 确保.git等版本控制目录不可被外部访问
- 定期检查网站可访问的文件和目录
- 使用robots.txt限制爬虫访问敏感区域
四、实战技巧
-
顺序检查:
- 从robots.txt开始
- 检查常见备份文件扩展名
- 扫描隐藏目录和文件
-
文件恢复:
- 对于.swp文件,使用
vim -r恢复 - 对于.git泄露,使用
git log查看历史
- 对于.swp文件,使用
-
组合利用:
- 将多个信息片段组合分析
- 注意flag可能分散在不同位置
通过系统化的信息搜集方法,可以大大提高CTF解题效率,这些技能在实际渗透测试中同样适用。