网站备份文件、日志文件、配置文件等可直接访问下载,phpinfo页面和其它未授权访问页面,导致敏感信息泄露给攻击者进一步的攻击提供信息。
Druid未授权访问,Druid是一个 JDBC 组件,在未授权访问页面提取网站用户的session,伪造用户session进行登录
WEB-INF/web.xml 泄露
通过目录扫描的方式发现信息泄露页面,可用于信息收集和配置文件审计
从网站目录中删除泄露信息的相关文件
FOFA:
Google:
源码泄露类最好用的工具:https://github.com/kost/dvcs-ripper
直接在Win10子系统安装perl环境执行脚本即可,可clone源码和历史提交
在发布代码时未删除文件夹中隐藏的.DS_store,被发现后,获取了敏感的文件名等信息
hg init的时候会生成.hg
在使用 SVN 管理本地代码过程中,使用 svn checkout 功能来更新代码时,项目目录下会自动生成隐藏的.svn文件夹。
一些网站管理员在发布代码时,不愿意使用“导出”功能,而是直接复制代码文件夹到WEB服务器上,这就使得.svn隐藏文件夹被暴露于外网环境
访问目标存在以下文件
.svn/pristine 目录
直接访问获得文件源代码
wc.db文件
用Navicat软件打开 wc.db文件,可以看到 NODES 表,遍历这个表里的每一行,就可以下载到整个项目里的代码了,而且还能得到对应的真实文件名。
REPOSITORY表里面存储了svn的项目路径和 uuid,如果没有做访问IP限制的话,可以直接使用此信息取得此项目的SVN权限(下载、提交等)
1、不要使用svn checkout和svn up更新服务器上的代码,使用svn export(导出)功能代替;
2、服务器软件(Nginx、apache、tomcat、IIS等)设置目录权限,禁止访问.svn目录;
3、删除 .svn 文件夹
在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录;在发布代码的时候,.git目录没有删除,使用这个文件,可以恢复源代码。
文件夹分析
**index:**文件保存暂存区信息
**info:**存放仓库的信息
**object:**存放所有git对象的地方
**refs:**存放提交hash的地方
**config:**github的配置信息
**description:**仓库的描述信息,主要给gitweb等git托管系统使用
**HEAD:**映射到ref引用,能够找到下一次commit的前一次哈希值
Stash
Log
1、执行 git log 查看历史记录
2、与上(某)次提交进行比对
3、或者直接切换到上个 (3e25d) 版本