一、
描述:
我有一个备份我网站的好习惯。
题解:
先用dirsearch扫描一下(本质是对照字典一个个爆破)
看到有个backup.zip(这个是非常重要的,一般在ctf里看到就直接下载来看就行,里面是网页的原始PHP代码,相当于黑盒变白盒),下载来看,里面有个文件内容是
<?php $flag_file = '/tmp/flag.txt'; if (file_exists($flag_file)) { $content = file_get_contents($flag_file); echo htmlspecialchars($content, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'); } else { echo "flag 文件不存在"; } ?>即flag在这个文件(bac123321123.php)里
防范:运维或者开发的时候不要图方便把东西备份在这里
二、
描述:
我喜欢用git,你呢
题解:
发现.git的目录,index给了提示3b96e9fc-ae54-46bf-129e30-c167f825d7cf.php,进去找到flag。
防范:
完全删除.git目录(推荐用于生产环境)
保留.git但安全配置(用于开发/测试环境)
自动化部署安全检查。
三、
描述:
我喜欢用SVN,你呢
和.git一样,SVN 也是版本控制系统,只是比 Git 更老,过去很多传统企业网站都用它。
如果网站根目录不小心泄露了.svn文件夹,同样等于白盒。扫到.svn就能拿到原始的 PHP 代码。
区别:Git:只在网站根目录有一个.git文件夹。扫到/.git/才有用。
SVN:每个目录下都有一个.svn文件夹(因为它要记录每个子目录的版本),扫到/.svn/,大概率能恢复整个网站源码。
题解:
总之先dirsearch一下,确认有SVN漏洞
然后探索SVN结构:访问.svn/text-base/目录,发现存在两个文件:3b96e9fc-ae54-46bf-9e30-c167f825d7cf.php.svn-base和index.php.svn-base
分析文件类型:.svn-base文件是SVN存储的源代码文件备份。通过文件名可以推断出对应的PHP文件名称。
直接访问:去除.svn-base后缀,直接访问3b96e9fc-ae54-46bf-9e30-c167f825d7cf.php,拿到flag
四、
描述:
真实EDU案例编写
题解:
进入靶场,发现是一个静态页面,先拿 dirsearch 扫描
扫描结果为空。
继续排查,查看响应头发现 Server: Werkzeug/2.2.3 Python/3.7.17,说明这是一个 Flask 应用。尝试了很多特殊参数和常见路径,均未命中。
没写出来,先空着。
总结:
本文通过四个 CTF 案例,梳理了静态页面信息泄露题的常见套路与排查思路。核心要点如下:
目录与文件探测:优先检查
robots.txt、sitemap.xml、备份文件(如backup.zip)、.git/.svn等版本控制目录泄露。响应信息分析:关注 HTTP 响应头、Cookie、404 页面、HTTP 方法(如 OPTIONS)等可能暴露服务端技术栈或隐藏路径的信息。
前端资源排查:检查隐藏的 HTML 注释、CSS 文件、JS 文件以及图片 EXIF 元数据,往往能发现线索。
扩展探测:结合域名/子域名枚举、DNS TXT 记录以及端口扫描,发现其他可能暴露的服务或入口。
在实际解题时,建议先做目录扫描,再结合响应信息与前端资源逐层排查,往往能快速定位突破口。