大部分内容转载于: https://blog.csdn.net/wj193165zl/article/details/96911279
进行了部分增加修改.
常规的文件泄露包含了下面的几种形式:
- GitHub
- Git
- SVN
- .DS_Store
- .hg
- .bzr
- cvs
上面的七种为版本管理工具所泄露的常规方式
web-INF
网站备份, zip,sql,rar,swp,phpinfo: 是指在网站目录存在这些备份文件
上面的两种方式为操作不当, 安全意识薄弱所造成的泄露.
GitHub 泄露:
开发人员将代码上传到网站, 在上传的时候, 没有删除重要的一些信息. 如邮箱信息, SVN 信息, 内部账号和密码, 数据库连接信息, 服务器配置信息等. 尤其是邮箱信息和内部账号和密码.
这类信息可以通过在 GitHub 上搜索公司的一些特定信息, 查看是否有程序员将这些信息上传到了 GitHub 上.
如公司的域名如下: niniub.com; 则可以在 GitHub 上用这个信息去进行搜索, 看看是否有包含该类关键字的文件.
这类安全漏洞只能靠人员的安全意识进行防护, 没有其它方法进行.
Git 导致文件泄露:
指将代码部署的时候, 没有将. Git 版本控制的目录进行删除. 这时, 用户可以使用这个目录下的文件, 来恢复源码. 从而可以获取如数据库密码, 源码漏洞等信息.
该漏洞的运用方法: 下载脚本 https://github.com/lijiejie/GitHack
使用该脚本的方法: python GitHack.py http://yoururl/.Git/
这样就可以恢复出来这个执行脚本的目录下恢复出该网站的源码了.
防护方法: 在部署的时候, 对. Git 文件夹进行删除; 也可以在 nginx 配置中, 对. Git 目录的访问进行屏蔽.
SVN 导致文件泄露:
指将代码部署的时候, 没有将. SVN 版本控制的目录进行删除. 这时, 用户可以使用这个目录下的文件, 来恢复源码. 从而可以获取如数据库密码, 源码漏洞等信息.
漏洞利用的方式:
- wget -r --no-parent --mirror http://yourdomain/.SVN
- cd yourdomain && SVN revert --recursive
通过上面两行命令, 就可以恢复出代码来.
第二种方式: https://github.com/kost/dvcs-ripper 的脚本
使用下面的命令: rip-SVN.pl -v -u http://yourdomain/.SVN/
就可以恢复出代码来.
第三种方式: Seay-SVN 工具
漏洞防护的方法:
在部署的时候, 将该文件进行删除
Apache 防护方法:
- <Directory ~ "\.svn">
- Order allow,deny Deny from all
- </Directory>
Nginx 防护方法:
- location ~ ^(.*)\/\.SVN\/ {
- return 404;
- }
DS_Store 漏洞:
该文件为苹果电脑的隐藏文件, 这只会在苹果电脑才会存在. 该文件上传后, 可能会造成文件目录结构泄露, 特别是备份文件, 源代码文件.
漏洞利用的工具: https://github.com/lijiejie/ds_store_exp, 使用这个工具, 就可以对上面的目录进行利用.
这个漏洞跟上面两个类似, 主要的防护方法就是将给文件给删除掉.
sudo find / -name ".DS_Store" -depth -exec rm {} \;
.hg 文件泄露: 这也是一个版本控制系统的隐藏文件, 跟 SVN 和 Git 一样.
.bzr 文件泄露: 这也是一个版本控制系统的隐藏文件, 跟 SVN 和 Git 一样.
Web-INF/Web.xml 造成的信息泄露: 它的原理与 phpinfo 相似, 都是通过该页面, 泄露出网站的一些重要信息. 如果存在该信息泄露的漏洞, 必须通过禁止访问的方式来防范.
网站备份漏洞: 该漏洞主要是运维人员的安全意识不到位造成的. 运维人员通过在代码执行目录下备份重要的文件, 这会导致用户可以直接下载到该文件. 如 xxx.zip,xxx.tgz,xxx.rar 等
.swp 的文件泄露: 这个文件在使用 VIM/vi 工具进行修改并异常退出的时候, 会生成. 如果没有删除的话, 用户也是可以获取到该文件的.
文件利用:
下载. swp 文件到本地, 使用 VIM -r filename.swp 即可恢复文件内容
来源: http://www.bubuko.com/infodetail-3461130.html