web信息泄露

ZJ Lv100

在网站开发者开发网站的时候,或多或少会残留一些敏感信息或者文件,特别是对于备份文件和版本控制系统源码泄露尤其常见

前言

这里会提供一些来自ctfhub的案例,有需要还原的可以看我的博客的关于这一节的题目

参考题目目录

工具介绍

提供的工具若未破解或链接已挂,请自行搜索破解版使用

dirsearch 网站目录扫描工具

GitHack git文件恢复,用于python3,恢复效果一般

GitHack git文件恢复,用于python2,效果不错

SVNExploit .svn文件恢复,用于python3

dvsc-ripper .svn与.hg文件辅助恢复(kali)

备份文件泄露

网站源码泄露

image-20240916154942458

使用ihoneyBakFileScan_Modify 工具或者自编写脚本遍历请求网站目录

这里提供一个本人自己的脚本

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
40
41
42
43
44
45
46
47
48
import 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()

bak文件泄露

尝试直接访问index.php.bak,有文件提示能下载即成功

vim缓存泄露

尝试访问/.index.php.swp,有文件提示能下载即成功

隐藏文件,记得加点访问

vim的备份文件后缀位.swp,并且需要用vim 文件名(无.swp)来重新访问,windows直接打开是16进制的,更换编码格式为UTF-8,或者用linux系统打开

image-20240917172655327

.DS_Store文件泄露

尝试直接访问.DS_Store,有文件提示能下载即成功

文件需要在linux系统打开,或者在windows系统用UTF-8/UTF-16格式打开

Git泄露

用网站目录扫描工具,这里演示用的dirsearch (可以用御剑等等)

1
python dirsearch.py -u 目标地址

image-20240912213718118

不用扫描完,扫描到确实有.git的存在,我们就可以试试用工具恢复

image-20240912213911928

在工具包目录下面生成了一些文件

image-20240912213948091

image-20240912214334276

但是并没有什么有价值的文件,也没有.git文件

这是一个坑,要用另一个GitHack.py,并且在python2的环境才可以,建议在kali下运行

https://github.com/lijiejie/GitHack 用于python3,但恢复效果一般

https://github.com/BugScanTeam/GitHack 用于python2,效果不错

1
python2 GitHack.py 目标地址/.git

image-20240912215937518

image-20240912220043425

SVN泄露

image-20240913005004198

使用工具SVNExploit 检测目标是否存在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

image-20240913005735686

再次运行之后可以看到有结果输出,证明有svn泄露

image-20240913005921606

在原来的命令后面加上--dump参数,把源码下载下来

1
python SvnExploit.py -u 目标地址/.svn --dump

image-20240913010130190

恢复的文件有一个wc.db,是一个数据库文件,可以查看到文件索引

image-20240913012737667

使用curl命令访问可以文件检查网页源代码是否存在flag,检查均返回404

1
2
curl http://challenge-2465e7edfc335d47.sandbox.ctfhub.com:10800/index.html13523.txt
curl http://challenge-2465e7edfc335d47.sandbox.ctfhub.com:10800/flag_135183523.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 

image-20240913011925973

既然是svn文件,那就会在.svn目录下面,低版本SVN具体路径为text-base目录,高版本SVN为pristine目录,然后层层往下查找,中途肯定会有找不到的时候,可以将文件放到实体机,用文件内容搜索工具搜索flag

image-20240913012313165

HG泄露

和.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/

image-20240917182029336

进入.hg文件,深度查找flag文件

image-20240917182149228

回到靶场添加目录文件即可得到flag

  • Title: web信息泄露
  • Author: ZJ
  • Created at : 2024-09-26 00:00:00
  • Updated at : 2025-01-17 01:48:58
  • Link: https://blog.overlordzj.cn/2024/09/26/ctf/data/web/信息泄露/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments