在CTF比赛中,许多路径与敏感文件、系统配置、Web应用源码或Flag存储直接相关。以下是CTF中最常见的路径及其典型利用场景:
1. Web应用相关路径
-
Web根目录:
-
/var/www/html
:Apache默认Web根目录(存放PHP/HTML源码、配置文件)。 -
/usr/share/nginx/html
:Nginx默认Web根目录。 -
/app
:Docker或自定义Web应用的常见目录。 -
利用场景:源码泄露、文件包含、上传Webshell。
-
-
配置文件:
-
/var/www/html/config.php
:数据库连接信息、密钥。 -
/var/www/html/.env
:环境变量(可能含数据库密码、API密钥)。 -
/etc/apache2/apache2.conf
:Apache主配置(可能暴露目录遍历或错误日志路径)。 -
/etc/nginx/nginx.conf
:Nginx主配置(可能泄露反向代理规则)。
-
-
备份文件:
-
/var/www/html/index.php.bak
、index.php~
:编辑器备份文件。 -
/var/www/html/.git/
:Git仓库(通过git dump
恢复源码)。
-
2. 系统敏感文件路径
-
用户与权限:
-
/etc/passwd
:用户列表(确认可登录用户)。 -
/etc/shadow
:用户密码哈希(需root权限读取,可尝试破解)。 -
/home/<user>/.ssh/id_rsa
:用户SSH私钥(用于登录服务器)。 -
/home/<user>/.bash_history
:用户历史命令(可能泄露敏感操作)。
-
-
系统配置:
-
/etc/hosts
:本地域名解析(可能隐藏内网IP)。 -
/etc/crontab
:定时任务配置(检查是否有可写脚本)。 -
/etc/sudoers
:sudo权限配置(寻找提权机会)。
-
-
内核与进程:
-
/proc/self/environ
:当前进程环境变量(可能泄露敏感信息)。 -
/proc/self/cmdline
:当前进程启动参数(辅助漏洞利用)。 -
/proc/sys/kernel/randomize_va_space
:检查ASLR是否开启(影响漏洞利用)。
-
3. 日志文件路径
-
Web日志:
-
/var/log/apache2/access.log
:Apache访问日志(用于日志注入攻击)。 -
/var/log/nginx/access.log
:Nginx访问日志。 -
利用场景:通过User-Agent或Referer注入PHP代码,再结合LFI执行。
-
-
系统日志:
-
/var/log/auth.log
:SSH登录日志(可能泄露登录尝试信息)。 -
/var/log/syslog
:系统全局日志(辅助分析攻击路径)。
-
4. 临时文件与可写目录
-
临时目录:
-
/tmp
:全局可写目录(常用于上传Webshell或共享文件)。 -
/dev/shm
:内存文件系统(速度快,常用于提权利用)。 -
利用场景:上传恶意文件、编译提权工具(如脏牛漏洞利用)。
-
-
Web服务器缓存:
-
/var/cache/apache2/mod_cache_disk/
:Apache缓存文件(可能泄露敏感内容)。
-
5. 数据库相关路径
-
MySQL:
-
/var/lib/mysql/
:MySQL数据目录(需权限读取)。 -
/etc/mysql/my.cnf
:MySQL配置文件(含数据库凭据)。
-
-
SQLite:
-
/var/www/html/db.sqlite3
:Web应用的SQLite数据库(直接下载分析)。
-
6. Docker与容器路径
-
容器内常见路径:
-
/flag
:最简单的Flag存放路径。 -
/readflag
:需执行才能获取Flag的二进制文件。 -
/run/secrets/
:Docker Swarm密钥存储位置。 -
利用场景:通过容器逃逸或读取宿主机文件(如
/proc/1/mounts
找宿主机路径)。
-
7. 其他隐藏路径
-
备份与隐藏文件:
-
/.svn/
、/.git/
:版本控制目录(泄露源码)。 -
/.DS_Store
(Mac)、Thumbs.db
(Windows):存储目录信息。 -
/robots.txt
:暴露隐藏路径或敏感文件。
-
-
特殊文件:
-
/etc/motd
:登录后提示信息(可能藏有线索)。 -
/etc/issue
:系统登录横幅(辅助识别操作系统)。
-
CTF常见Flag存放路径
-
直接存放:
-
/flag
-
/flag.txt
-
/home/ctf/flag
-
/var/flag
-
-
动态生成:
-
需执行特定命令获取(如
/readflag
)。 -
数据库查询结果(如
SELECT flag FROM flags;
)。
-
解题技巧
-
目录爆破:
-
使用工具如
gobuster
、dirsearch
扫描隐藏路径:bash
复制
gobuster dir -u http://target.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
-
-
文件读取漏洞:
-
尝试读取
/proc/self/cwd/
(当前工作目录)或/proc/self/fd/
(文件描述符)。
-
-
路径遍历绕过:
-
使用编码绕过过滤(如
%2e%2e%2f
代替../
)。 -
空字节截断(如
../../etc/passwd%00
)。
-
-
权限检查:
-
执行
ls -al /path
查看文件权限,寻找可写文件或SUID程序。
-