简要介绍git GIT百度百科
简要介绍git的目录结构
在一个目录中初始化一个仓库以后 , 会在这个目录下产生一个名叫 .git 的隐藏文件夹
这个文件夹里面保存了这个仓库的所有版本等一系列信息
后记 : (一般来说 , 一个git仓库还有存在这两个文件 : )
简要介绍利用git的开发模式 一般情况下 , 开发人员为了让版本控制和网站部署比较方便 , 在开发的时候就会走这样的流程
这里当网站维护(开发)人员在从托管网站pull代码的时候 , 也会将这个储存了所有的版本信息的.git文件夹下载到服务器的Web目录下 , 这样的话 , 攻击者就可以利用这个目录 , 去下载git文件夹 , 就可以利用其中储存的版本控制信息 , 完全恢复网站后台的代码和目录结构 , 当然 , 一般网站都会涉及到数据库操作 , 而一般来说 , 需要链接数据库就需要用户名/密码/端口/库名等信息 , 而这些信息肯定会在网站后台的源码里面又体现 , 因此这种情况是极其危险的 , 还有 , 一旦服务器开放了数据库的远程连接功能 , 攻击者就可以利用从源码中找到的数据库用户名和密码对远程数据库进行登陆 , 危险性不言而喻
如何去利用 ?
具体利用思路 :
具体操作 :
演示网站 : http://www.xxx.com/.git/
wget -r -p -np -k http://www.xxx.com/.git/
--recursive(递归)
-k, --convert-links(转换链接)
-p, --page-requisites(页面必需元素)
-np, --no-parent(不追溯至父级)
git log 查看网站的提交记录git reset --hard [log hash] 恢复到指定版本号 (一般如果只需要得到源码的话就恢复到最近的一次提交)如何修复