一.目录遍历

点击寻找flag,根据题目“目录遍历”可以想到,应该手动查找flag,最后在/3/4下找到了

二.PHPINFO

往下翻就找到了

三.备份文件代码

1.网站源码

(1)原理

        开发者把本应删除或放在非公开目录的备份文件,遗留在了Web服务器的可访问目录中,导致攻击者可以通过构造特定URL直接下载这些文件,从而获取源码和敏感信息。

        这类漏洞的根源在于:Web服务器(如Apache、Nginx)对于像.bak、.zip、.swp这样的后缀,不会像处理.php文件那样去执行它们,而是直接当作静态文件返回给客户端,这就导致了源码的泄露。

(3)解题

去www.zip的网址下下载压缩包,感觉被戏弄

将将解压的文件名当做一个路径

2.bak文件

构造index.php.bak

3.vim缓存

        Vim 缓存文件是一类经典的敏感信息泄露漏洞。当使用 Vim 编辑文件时,如果异常退出(如 SSH 断开、强制关闭终端),或者编辑过程中,Vim 会在同一目录下生成临时交换文件(swap file)用于恢复未保存的内容。攻击者若能访问这些缓存文件,就可能获取源码、配置文件甚至 flag。

        Vim 会根据编辑的文件名生成不同后缀的缓存文件,常见的有:

~ 结尾:Vim 自动备份的旧版本文件(如果设置了 backup 或 writebackup)

        这些文件默认是隐藏文件(以点开头),但在目录列表(如 ls -la)中可见。Web 服务器如果配置不当,可能直接通过 HTTP 访问这些文件。

构造.index.php.swp

在kali中下载.swp该文件

        strings:从二进制文件(或任意文件)中提取出所有可打印的文本字符串

        .index.php.swp 是 Vim 的交换文件,不是纯文本文件,是二进制文件,包含 Vim 的编辑状态、缓存数据等,但里面嵌着 index.php 的源码文本(这是可打印字符串),直接打开 .swp 会看到一堆乱码,而 strings 能精准过滤出里面的源码文本,不用先恢复文件。

strings index.php.swp  # 第一步:从 swp 二进制文件中提取所有可读文本
|                      # 管道符:把前一个命令的输出传给后一个命令
grep ctfhub            # 第二步:只筛选出包含 "ctfhub" 的行

4.   .DS_Store

        先访问/.DS_Store,下载到一个文件,用记事本打开,发现是一串乱码

        开始想的是这一串数字是flag,后面看到有个txt,去网页下载它

四.git泄露

1.Log

        如果网站服务器上不小心暴露了 .git 目录(Git 版本控制的核心目录),GitHack 能自动解析 .git 里的缓存文件、日志文件,把网站的所有源码文件(如 PHP/Java/Python 代码)完整下载到本地

        工具:kali、GitHack

        进入克隆成功的仓库目录

        查看仓库日志

        查看add flag的日志

2.Stash

        git泄露

        在 Git 中,stash 是一个非常有用的命令,用于临时保存当前工作目录中的更改,而不需要立即提交这些更改。这在需要快速切换任务、处理紧急问题或进行代码审查时非常有用。通过 stash,你可以将未提交的更改保存起来,稍后再恢复这些更改。

git stash list  #查看隐藏的记录

git stash pop #恢复隐藏的内容,同时删除隐藏的记录

git stash apply #恢复隐藏的内容,不删除隐藏的记录

        克隆.git仓库

        进入克隆的仓库中

        查看隐藏的的记录

        恢复隐藏的记录

3.index

        被称为暂存区,是一个二进制文件(通常位于 .git/index),用于暂存即将提交到版本控制系统的文件,攻击者若能获得.git/index文件,可通过解析其内容获取项目文件列表、文件状态等信息,进而挖掘敏感数据。

        clone仓库

        这flag来的也太容易了

五.SVN泄露

        SVN泄露通常指在使用 Subversion(SVN) 作为版本控制系统时,由于服务端或网站部署配置不当,导致隐藏的版本控制目录(主要是 .svn 目录)暴露在公网,攻击者可以通过访问这些目录获取源代码、数据库配置、敏感文件甚至历史版本信息的安全漏洞。

        当开发者将代码部署到服务器(如 Apache、Nginx)时,如果直接将包含 .svn 文件夹的整个目录作为网站根目录发布,且服务器未配置对该隐藏文件夹的访问限制,攻击者就能通过 HTTP/HTTPS 直接访问这些文件。

        黑客对此可进一步利用:

(1)利用 用于版本信息追踪的 entries 文件(.svn/entries 文件),获取到服务器源码、svn服务器账号密码等信息。

(2)利用 wc.db 数据库文件(.svn/wc.db 文件),获取到一些数据库信息。

        访问这两个文件后,  entries 文件没啥东西,wc.db 数据库文件

        执行 SVN 源码泄露抓取脚本

六.HG泄露

        Mercurial(简称 Hg)是一款分布式版本控制系统,和 Git 类似,它会在项目根目录生成一个隐藏的.hg文件夹,用于存储完整的版本历史、配置信息、提交记录、分支信息甚至未提交的代码。

        使用dirsearch扫描

        拿到一个200状态码,请求这个路径(/.hg/dirstate)是真实存在的,服务器能正常访问并返回了内容

        创建一个空的 Mercurial 仓库,再在这个仓库里解析下载的 dirstate 文件, 把之前下载的 dirstate 文件替换到临时仓库的 .hg 目录下

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐