web-信息泄露

目录
前言
出自CTFHUB 练习场,比较官方的一个大型练习靶场
信息泄露-目录遍历
打开靶场,看到这样的页面,点进去就是一个个的目录,那我们就先试着手动找找
看着文件不多,一个一个找,然后就会在2-2里面找到flag,点开就是我们的flag了
这里是目录不多,如果目录多的话建议用现呈的工具进行目录遍历,或者手搓一个
信息泄露-备份文件下载
题目-网站源码
当开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了 web 目录下,就会引起网站源码泄露。
打开靶场看到有提示网站源码的备份文件信息
而接下来就是添加网站后缀看看有哪些是被备份没删除的
这里提供两种办法
自己编写脚本实现多线程访问,我提供一个自己写的脚本可以参考一下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40import requests
from concurrent.futures import ThreadPoolExecutor
# url为被扫描地址,后不加‘/’
url1 = 'http://xxx'
# 常见的网站源码备份文件名
list1 = ['1', '127.0.0.1', '2010', '2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018', '2019',
'2020', '2021', '2022', '2023', '2024', '2025', 'admin', 'archive', 'asp', 'aspx', 'auth', 'back',
'backup', 'backups', 'bak', 'bbs', 'bin', 'clients', 'code', 'com', 'customers', 'dat', 'data',
'database', 'db', 'dump', 'engine', 'error_log', 'faisunzip', 'files', 'forum', 'home', 'html',
'index', 'joomla', 'js', 'jsp', 'local', 'localhost', 'master', 'media', 'members', 'my', 'mysql',
'new', 'old', 'orders', 'php', 'sales', 'site', 'sql', 'store', 'tar', 'test', 'user', 'users',
'vb', 'web', 'website', 'wordpress', 'wp', 'www', 'wwwroot', 'root', 'log', 'web', 'website',
'backup', 'back', 'www', 'wwwroot', 'temp']
# 常见的网站源码备份文件后缀
list2 = ['.zip', '.rar', '.tar.gz', '.tgz', '.tar.bz2', '.tar', '.jar', '.war', '.7z', '.bak', '.sql',
'.gz', '.sql.gz', '.tar.tgz']
# 定义一个函数来进行请求,并检查状态码
def check_url(file_name):
url = f"{url1}/{file_name}"
try:
response = requests.get(url)
if response.status_code == 200:
print(f"{file_name}\n", end='')
except requests.exceptions.RequestException as e:
print(f"Error accessing {url}: {e}")
# 使用多线程执行URL请求
def scan_backup_files():
with ThreadPoolExecutor(max_workers=50) as executor: # 创建50个线程
# 构造所有的文件名并提交给线程池
for i in list1:
for j in list2:
back = f"{i}{j}" # 组合文件名
executor.submit(check_url, back)
# 运行扫描
print("能够访问到的网站后缀有:")
scan_backup_files()用开源工具进行访问ihoneyBakFileScan_Modify
扫描完会发现能访问到www.zip
文件,下载下来后有flag文件
直接打开没有,就在网页访问看看
恭喜,访问成功!拿到flag。
题目-bak文件
当开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了 web 目录下,就会引起网站源码泄露。
打开靶场看到提示说flag文件在index.php
中,结合题目说明这个文件被备份到.bak
文件了,所以我们尝试访问index.php.bak
,发现能有文件被下载,打开文件就可以看到flag了
题目-vim缓存
当开发人员在线上环境中使用 vim 编辑器,在使用过程中会留下 vim 编辑器缓存,当vim异常退出时,缓存会一直留在服务器上,引起网站源码泄露。
vim缓存时linux里面的缓存隐藏文件
打开靶场,根据题目和看到提示flag在index.php里面,php文件肯定以vim的形式备份了,所以我们以vim缓存文件恢复即可,所以 /.index.php.swp 直接下载
隐藏文件,记得加点访问
vim的备份文件后缀位.swp,并且需要用
vim 文件名(无.swp)
来重新访问,windows直接打开是16进制的,更换编码格式为UTF-8,或者用linux系统打开
打开后就可以找到flag了
信息泄露-PHPINFO
打开靶场,看到这样的页面,点进去就是phpinfo的信息,也许我们要的flag就藏在里面
在页面上用ctrl+F
搜索功能,搜索flag,即可找到我们要的flag
信息泄露-Git泄露
题目-Log
当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。请尝试使用BugScanTeam的GitHack完成本题。
根据题目提示,提前准备工具需要用到GitHack
打开靶场,页面上很空白,根据题目进行.git文件泄露的恢复操作
尝试在网址后面添加/.git/,查看是否网页403或者其他特殊情况,方便我们直接用工具恢复,显然这道题没那么简单
接下来用网站目录扫描工具,这里用的dirsearch (可以用御剑等等)
1 | python dirsearch.py -u 目标地址 |
不用扫描完,扫描到确实有.git的存在,我们就可以试试用工具恢复
在工具包目录下面生成了一些文件
但是并没有什么有价值的文件,也没有.git文件
这是一个坑,要用另一个GitHack.py,并且在python2的环境才可以,建议在kali下运行
https://github.com/lijiejie/GitHack 用于python3,但恢复效果一般
https://github.com/BugScanTeam/GitHack 用于python2,效果不错
1 | python2 GitHack.py 目标地址/.git |
既然有.git,根据题目来看,可以通过查看日志获得一些信息,kali环境自带git,其他没有git环境的需要自己下载
1 | git log |
通过观察上面的日志信息,可以发生在第二次修改时add flag
,说明我们所要的flag就在第二次修改时加入文件中,使用git reset
版本回退命令来查看flag
1 | git reset --hard 对应版本的commit |
最终我们通过.git文件泄露,回退版本得到了flag
题目-Stash
当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。请尝试使用BugScanTeam的GitHack
完成本题
与log文件的恢复相同,仅有一点变化
打开靶场,用工具GitHack 进行.git文件恢复
1 | python2 GitHack.py http://你的靶场地址/.git |
进入dist内生成的文件,输入
1 | git stash list |
成功恢复一个.txt
文件,打开就可以得到flag
了
题目-Index
当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。请尝试使用BugScanTeam的GitHack
完成本题
与前面也是一样的
打开靶场,用工具GitHack 进行.git文件恢复
1 | python2 GitHack.py http://你的靶场地址/.git |
恢复后进入文件夹直接
1 | git show |
flag就出来了
信息泄露-SVN泄露
当开发人员使用 SVN 进行版本控制,对站点自动部署。如果配置不当,可能会将.svn文件夹直接部署到线上环境。这就引起了 SVN 泄露漏洞。
这个题目虽然与git泄露类似,但因为是svn,所以恢复起来没那么常见,这个也是看了CSDN上面的WP参考做的,初学者遇到完全没思路或者已经行不通的时候就多去网上找找资料,慢慢培养能力
根据题目需要提前准备工具SVNExploit
打开靶场看到和题目提示一样,是一个SVN泄露
使用工具检测目标是否存在SVN泄露(例行检查)
1 | python SvnExploit.py -u 目标地址/.svn |
初次使用会有报错,下载pip包就可以
或者直接在kali里面使用工具,kali里面的py包很全面
1 | pip install prettytable -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple |
再次运行之后可以看到有结果输出,证明有svn泄露
在原来的命令后面加上--dump
参数,把源码下载下来
1 | python SvnExploit.py -u 目标地址/.svn --dump |
恢复的文件有一个wc.db
,是一个数据库文件,可以查看到文件索引
使用curl命令访问可以文件检查网页源代码是否存在flag,检查均返回404
1 | curl http://challenge-2465e7edfc335d47.sandbox.ctfhub.com:10800/index.html13523.txt |
根据上面所示,并没有flag文件,也确实没有直接被下载下来,毕竟题上也写了是在旧版本里面,所以使用其他工具进行还原
dvsc-ripper 这个工具需要很多环境和包,所以建议在kali里面执行
进入kali,安装工具所需依赖库
1 | sudo apt-get install perl libio-socket-ssl-perl libdbd-sqlite3-perl libclass-dbi-perl libio-all-lwp-perl |
安装完后,进入到工具目录,执行
1 | ./rip-svn.pl -v -u 目标地址/.svn |
既然是svn文件,那就会在.svn目录下面,低版本SVN具体路径为text-base目录,高版本SVN为pristine目录,然后层层往下查找,中途肯定会有找不到的时候,可以将文件放到实体机,用文件内容搜索工具搜索flag
最后flag被找出来,又解决了一道题
信息泄露-HG泄露
当开发人员使用 Mercurial 进行版本控制,对站点自动部署。如果配置不当,可能会将.hg 文件夹直接部署到线上环境。这就引起了 hg 泄露漏洞。
打开靶场,这道题比较陌生,所以需要参考其他资料来完成CTFHUB技能树(全详细解析含进阶)-CSDN博客
根据资料也是和.SVN一样的恢复方式
使用工具,dvsc-ripper 这个工具需要很多环境和包,所以建议在kali里面执行
进入kali,安装工具所需依赖库
1 | sudo apt-get install perl libio-socket-ssl-perl libdbd-sqlite3-perl libclass-dbi-perl libio-all-lwp-perl |
安装完后,进入到工具目录,执行
1 | ./rip-hg.pl -v -u 地址/.hg/ |
进入.hg文件,深度查找flag文件
回到靶场添加目录文件即可得到flag
总结
做题时要根据题目来做题,半做半猜,不要盲目乱入手
在实际做题时会遇到各种坑,需要多花耐心慢慢琢磨(由于本人也是新手,花了好些时间搞这节。。。)
题目在这里 路径为web->信息泄露
- Title: web-信息泄露
- Author: ZJ
- Created at : 2024-09-14 00:00:00
- Updated at : 2024-12-11 01:20:52
- Link: https://blog.overlordzj.cn/2024/09/14/ctf/writeup/web/ctfhub/信息泄露/
- License: This work is licensed under CC BY-NC-SA 4.0.