前言
前些时间碰到的一道CTF题目是关于Git源码泄露的,相对而言比较基础的一道题目,无奈技艺不精,当时也并不知道Git源码泄露的漏洞,也是看过Writeup之后才知晓!所以找个时间来总结学习下,避免下次仍是无从下手。
.git源码泄露
成因
熟悉git
的应该知道在执行git init
初始化目录的时候会创建一个.git
目录,包含了所有的git
存储何操作的对象,关于.git
文件夹更多细节,可以看看:https://blog.csdn.net/mayfla/article/details/78653396
所以在管理员发布代码的时候,没有把.git
目录删除,而是直接发布到了服务运行的目录当中,那么攻击者就能够通过此文件来恢复源代码了。
工具:Githack :http://www.freebuf.com/sectool/66096.html
改进版Githack:https://github.com/BugScanTeam/GitHack
CTF例题——mfw(攻防世界)
- 先扫目录,工具:dirsearch:https://github.com/maurosoria/dirsearch
- 访问
- 通过Githack获取源码
- 后面就是分析源码得到flag了
- 此外还有
.hg
源码泄漏,也都差不多,就不再去重复一遍了
svn文件泄露
成因
SYN(Subversion),一个开源集中型版本控制系统,而Git属于分散型版本控制系统
在SVN管理的过程中,会自动生成一个.svn
的文件夹,包含了源代码信息,而如果管理员直接复制代码文件到Web服务器上,使得.svn
文件同样暴露在外网环境下而没有清理
利用工具:dvcs-ripper:https://github.com/kost/dvcs-ripper
OR Seay-SVN:https://pan.baidu.com/s/1mrNpB
例题:SVN信息泄露漏洞分析(第1题)——墨者学院在线靶场
- 先扫描看看
- 通过dvcs-ripper获取源码
- 此外还有
cvs
、Bazaar/bzr
等
.DS_Store文件泄露
成因
在发布代码时没有删除文件夹中隐藏的.Ds_Store
文件,导致敏感信息泄露
CTF例题——Bugku
- 扫描
网站备份压缩文件
成因
- 服务器管理员错误地将网站或者网页的备份文件放置到服务器web目录下。
- 编辑器在使用过程中自动保存的备份文件或者临时文件因为各种原因没有被删除而保存在web目录下。
'.rar','.zip','.tar','.tar.bz2','.sql','.7z','.bak','.txt','.swp'等
像.swp
文件,就是vim源文件泄漏,
可能导致备份文件或者编辑器的缓存文件被下载,导致敏感信息泄露,给服务器的安全埋下隐患。
可以通过扫描工具加以利用
CTF例题——备份是个好习惯(Bugku)
打开后一串字符:d41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427e
开始认为时16进制,但并不是,后面得知时MD5加密值
- 根据题目标题,先扫一波目录
- PS:https://coding.net/u/yihangwang/p/SourceLeakHacker/git?public=true
- 发现
index.php.bak
- 接下来就分析源码获得
flag
了
WEB-INF/web.xml泄露
WEB-INF是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
WEB-INF主要包含一下文件或目录:
WEB-INF/web.xml : Web应用程序配置文件, 描述了servlet和其他的应用组件配置及命名规则.
WEB-INF/database.properties : 数据库配置文件
WEB-INF/classes/ : 一般用来存放Java类文件(.class)
WEB-INF/lib/ : 用来存放打包好的库(.jar)
WEB-INF/src/ : 用来放源代码(.asp和.php等)
参考
https://blog.csdn.net/gitchat/article/details/79014538?utm_source=copy
https://www.cnblogs.com/dsli/p/7282917.html