我是如何下载印度最大电信服务提供商的源代码的(包含大量知名网站)

原文链接:How I was able to download the Source Code of India’s Largest Telecom Service Provider including dozens of more popular websites!

漏洞难度:低

漏洞奖金:未知

漏洞类型:敏感信息泄露

嘿!大家好,最近我看到一个snapchat源码泄露的新闻,黑客把其网站源代码下载下来并上传到了GitHub上。在前些年,

简述

什么是Git?这个我相信大家应该都懂我就不翻了。ε=ε=ε=┏(゜ロ゜;)┛(逃~

Git is a version control system (VCS) for tracking changes in computer files and coordinating work on those files among multiple people. It is primarily used for source code management in software development but it can be used to keep track of changes in any set of files.It allows source code versions to be managed in a logical manner and tracks changes through different ‘forks’ and ‘branches’.

如果一个应用已经错误配置了git目录,使它暴露在外,那么这个文件夹就会像下面这样

为了从这个仓库中递归下载每个文件,wget必然是最佳工具,wget -r https://example.com/.git。现在一旦你可以下载整个.git文件夹,你只需要懂一点点git命令行就可以把git对象都搞下来。

这些网站可以参考:

https://en.internetwache.org/dont-publicly-expose-git-or-how-we-downloaded-your-websites-sourcecode-an-analysis-of-alexas-1m-28-07-2015/

https://blog.netspi.com/dumping-git-data-from-misconfigured-web-servers/

技术细节

如果你不熟悉git和git命令,那么在进入本节之前,建议读读上面的链接。现在,一起来看看我是怎么在包括印度最大的电信行业在内的多家公司中做到这一点的。

子域名和主域名一样重要,这也就是为啥前期的信息搜集最重要的一部分之一是子域名枚举。并不总是在主域名下发生git错误配置,它也会在子域名下出现,所以为了找到所有意外公开git仓库的域名,我们要把域名爆破和.git下载组合起来Sublist3r是基于各种不同资源的域名爆破工具,它会将子域名以列表的形式输出,当然github上还有更多好的工具等你发掘。同样github上还有一个碉堡了的开源项目–Git-dumper,它实现了我们刚才说的两个需求。我把这两个项目的代码合了起来,然后做了点小改动(都放在git-domain.py里),这些改动有:

  1. git-domain.py需要一个文件作为输入,文件中是你想爆破的主域名,每个域名占一行
  2. 它会遍历每个(行)域名,在查找子域名的同时检查它们有没有.git目录以及是否公开
  3. 如果有且公开的话,那么它将会递归下载子域名的整个git文件夹,并保存在一个文件夹中

这就是我的所作所为,哈哈,你要做的是准备一个包含各种大、中、小型企业(有公开/私有赏金漏洞项目或src)的域名,然后扔到git-domain.py里~~

Git directory check on each subdomain of the main domain

Git directory check on each subdomain of the main domain

然后我就得到了一大堆git配置错误目录,其中包括印度最大电信服务提供商的,有些还有主站的源代码。

Git directory files

Source code access

如何修复

站长或者研发必须确保.git目录没有被设置为外部可见路径索引,并且使用服务器权限也不允许获取这些目录、子目录及其下所有文件。还有,.gitignore文件不应该被用于确认敏感文件是否被忽略或上传。大道至简,最佳修复方式就是拒绝.git文件夹的访问

1
2
3
<DirectoryMatch “^/.*/\.git/”>
Require all denied
</DirectoryMatch>

我的视角:

  1. 这种问题我可以用lijiejiegithack跑一下,可是现在这种问题还多吗?这篇是18年10月的,这两天我再试试,扫扫edusrc

  2. 作者的思路也还容易理解和想到,把现有的工具合并、改造,关键还是要有对于特定场景的前瞻性思路才行


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!