如何利用.git文件夹下载整个网站泄漏的源码


** 简要介绍git **

GIT百度百科


** 简要介绍git的目录结构 **
在一个目录中初始化一个仓库以后 , 会在这个目录下产生一个名叫 .git 的隐藏文件夹
这个文件夹里面保存了这个仓库的所有版本等一系列信息

后记 : (一般来说 , 一个git仓库还有存在这两个文件 : )

  1. README.md (项目介绍)
  2. .gitignore (配置在git进行文件跟踪的时候忽略掉哪些文件 , 从这个文件一般也可以得到一部分网站的目录结构 , 或者一些日志/配置文件等敏感文件)

** 简要介绍利用git的开发模式 **

一般情况下 , 开发人员为了让版本控制和网站部署比较方便 , 在开发的时候就会走这样的流程

  1. 初始化仓库 , 并将仓库托管在Coding或者Github上 , 便于远程协作/备份/部署
  2. 在本地进行网站开发 , 并定时提交commit , 并push到远程托管网站
  3. 当一个阶段的开发差不多的时候 , 需要远程登陆服务器 , 通过托管网站再将发行版网站pull到Web目录下
  4. 网站正常运行

这里当网站维护(开发)人员在从托管网站pull代码的时候 , 也会将这个储存了所有的版本信息的.git文件夹下载到服务器的Web目录下 , 这样的话 , 攻击者就可以利用这个目录 , 去下载git文件夹 , 就可以利用其中储存的版本控制信息 , 完全恢复网站后台的代码和目录结构 , 当然 , 一般网站都会涉及到数据库操作 , 而一般来说 , 需要链接数据库就需要用户名/密码/端口/库名等信息 , 而这些信息肯定会在网站后台的源码里面又体现 , 因此这种情况是极其危险的 , 还有 , 一旦服务器开放了数据库的远程连接功能 , 攻击者就可以利用从源码中找到的数据库用户名和密码对远程数据库进行登陆 , 危险性不言而喻


** 如何去利用 ? **

  1. GitHack (一个开源的Git源码泄漏的利用工具)
  2. 爬虫爬取整个git目录 (这个方法比较原始 , 需要具有一定的Git经验 , 这里重点介绍这种方法 , 但是这种方法和使用githack这个工具相比 , 有一个比较好的地方就是 , 可以完全模拟服务器上的代码环境 , 可以跟踪到git的每一次提交 , 但是githack好像只可以将源码恢复到最近的一次提交 , 这里的好处还有可以去查看git的提交日志 , 这个日志信息中会有开发人员对每一次commit的描述 , 比如某个BUG的修复等等 , 对于这些和BUG相关的地方 , 可以有针对性地进行白盒审计 , 有可能这个BUG修复了还不如没修复 , 可能会造成更大的漏洞)

** 具体利用思路 : **

  1. 利用爬虫递归下载.git目录的所有文件
  2. 利用git命令对网站的commit历史进行查看
  3. 利用git命令对网站的源码进行恢复

** 具体操作 : **

演示网站 : http://www.xxx.com/.git/

  1. 在ubuntu下利用wget对该目录进行递归下载 (参考文章)
wget -r -p -np -k http://www.xxx.com/.git/
--recursive(递归)
-k,  --convert-links(转换链接)
-p,  --page-requisites(页面必需元素)
-np, --no-parent(不追溯至父级)
  1. 下载完成后 , 进入下载的网站目录
  2. 利用命令 : git log 查看网站的提交记录
  3. 利用命令 : git reset --hard [log hash] 恢复到指定版本号 (一般如果只需要得到源码的话就恢复到最近的一次提交)

** 如何修复 **

  1. 对.git目录的访问权限进行控制
  2. 在每次pull之后删除.git文件夹
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 161,873评论 4 370
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,483评论 1 306
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,525评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,595评论 0 218
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,018评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,958评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,118评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,873评论 0 208
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,643评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,813评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,293评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,615评论 3 262
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,306评论 3 242
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,170评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,968评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,107评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,894评论 2 278

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,594评论 25 707
  • 眼看着大家各显神通,都交了作业,而我还在这里发愣。不知道写什么好?突然想到今天有人提议说写“吃”,也可以试试。其...
    雨后青蓝ll阅读 272评论 6 5
  • DNU(Daily New Users):每日游戏中的新登入用户数量 AU(Active Users):活跃用户,...
    juket阅读 1,213评论 0 0
  • 1、B&O蓝牙降噪耳机(黑/浅陶色) 2、suunto颂拓运动手表(黑/粉/蓝) 品牌介绍:芬兰suunto问世已...
    橘子君Jewel阅读 271评论 0 0