安全防备:nginx下git引发的隐私走漏问题

访客5年前关于黑客接单394

1   安全事情

最近阿里云服务器后台办理体系中收到一条安全提示音讯,体系装备信息走漏:

http://my.domain.com/.git/config

能够被公网无认证即可拜访,请修正。

一般情况下,装备信息走漏是相当严重的问题,往往会千万别的一个当地整片区域的 沦亡,比方:数据库。当然本例并没有这样,可是能够作为一个典型安全来进行解说。

2   问题剖析

因为现在的 web 项意图开发选用前后端彻底别离的架构:前端悉数运用静态文件,和后端代码彻底别离,从属两个不同的项目。表态文件运用 git 来进行同步发布到服务器,然后运用 nginx 指向到指定目录,以到达被公网拜访的意图。

(pyvenv) ➜  web-app-front git:(master) ls -a
.           .git        .idea       css         fonts       index.html  tpl
..          .gitignore  ReadMe.rst  favicon.ico images      js

将此项目发布到服务器的 /var/www/web-app-front 目录中,然后在Nginx中进行如下装备:

# configuration of the server
server {
    # the port your site will be served on
    listen      80;
    # the domain name it will serve for
    server_name my.domain.com; # substitute your machine's IP address or FQDN
    charset     utf-8;
    # max upload size
    client_max_body_size 75M;   # adjust to taste

    sendfile on;
    keepalive_timeout 0;


    location / {
        alias /var/www/web-app-front/; # your webapp static
    }

}

以上装备,的确能够到达,只需拜访 my.domain.com 的域,即可进入到 /var/www/web-app-front/ 目录,可是本目录下面有一些原本不想让外界拜访到的文件也会被拜访到,例如: .git 目录。

一般情况下,黑客能够经过常用的 途径 字典,轻松暴破到此途径及相应的文件。

3   或许损害

因为要运用继续集成体系,所以关于前端静态文件的发布也有必要要运用自动化,运用自动化就有必要防止交互式的暗码输入。而git中防止运用交互式暗码输入,主要有如下几种办法:

.netrc 保存明文账号和暗码 在 url 中带明文账号和暗码 运用 ssh-key 进行鉴权

当然,因为笔者运用的 ssh-key,所以并没有千万过多的隐私走漏,将损害操控到了最小(根本只走漏了这个库房的称号信息,并没有损害)。

检查运用的 ssh-key 鉴权办法下的 .git/config 的内容:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = git@github.com:myteam/web-app-front.git
        fetch = +refs/heads/*:refs/remotes/origin/*
        [branch "master"]
        remote = origin
        merge = refs/heads/master

可是,笔者不由想起,以比较前期的时分,为了防止重复输入暗码,从前运用过在 url 中带明文账号和暗码的办法来 clone 一个 git 库房:

git clone https://username:password@github.com/myteam/web-app-front.git

即,把账号和暗码放在url里边能够免除重复交互式输入账号暗码的繁琐操作。这样的话 .git/config 就会包括如下内容了:

[remote "origin"]
        url = https://username:password@github.com/myteam/web-app-front.git

明显,如上的忽略就会导致如下内容被走漏:

账号名:username 暗码:password 服务网站:github.com 项目组代号:myteam 项目库房称号:web-app-front

然后黑客就能够轻松翻开服务网站,运用指定的账号和暗码登录。然后阅读开发人员地点组的一切代码,然后代码里边或许包括如下的内容:

数据库账号暗码 服务器IP 服务器账号暗码 其它隐私信息

将会彻底被走漏出去,能够说,这样一个小忽略会导致全线 *** ,这并不是耸人听闻。

4   处理办法

其实处理办法,最终仍然是这样一个思维:将权限更大化收拢,不过多外放任何不需要外放的权限。

因为本文是运用 nginx 来让外网具有拜访文件目录的才能,所以此权限就在 nginx 层做装备,只需要将不需要被外界拜访的目录进行扫除设置即可。例如,不允许外部拜访 .git 目录:

server {
    location ~ /.git {
        deny all;
    }
}

目录 .git 后是否带有"/",带"/"只制止拜访目录,不带"/"制止拜访目录中的文件。

当然, nginx 还有更多的约束拜访的装备,本文不再一一列举,读者有爱好的能够检查其官网上的相关文档进行更详尽的研讨。

5   总结

关于服务器往往都放在公网云端的互联网从业人员来说,任何时分都不能对权限装备忽略了,不然或许千万无法估量的丢失。

相关文章

九种姿态运转Mimikatz

前语 平常搜集的一些姿态,用户绕过杀软履行mimikatz,这儿以360为例进行bypass 测验。 下载最新版360: 未经处理的mimikatz直接就被杀了 下面开端进行绕过360抓暗码 姿态一-...

又见陈旧的Typosquatting进犯:这次侵略Npm盗取开发者身份凭据

有些进犯方式尽管听起来很天真,但有时分却也能够收效,比方typosquatting进犯——咱们前次看到这种进犯是在上一年6月份,这自身也是种很陈旧的进犯方式。 所谓的typosquatting,主要...

2FA双要素认证之Authy

现如今网络环境越来越杂乱,黑客的进犯手法多样化,发作了越来越多的账号暗码走漏事情,然后要挟到用户信息乃至产业安全。在如此杂乱的安全形势下,咱们需求考虑更多的是用户信息的安全问题,而用户的账户暗码作为信...

深化了解Json Web Token之实战篇

原本想用python DRF 的 JWT做,后来各种失利。终究尝试了用Php,发现十分便当。 PHP 版别 PHP 7.2.4-1+b2 (cli),也便是kali linux自带的php,至于com...

探究根据.NET下完成一句话木马之Asmx篇

0×01 前语 上篇介绍了一般处理程序(ashx)的作业原理以及完成一句话木马的进程,今日接着介绍Web Service程序(asmx)下的作业原理和怎么完成一句话木马,当然介绍之前笔者找到了一款as...

PHP反序列化与WordPress一些意外BUG的风趣结合

几个月前,我正在编写一篇关于PHP反序列化缝隙的博客文章,决定为这篇文章找一个实在方针,能够让我将测试数据传输给PHP unserialize ()函数来完结演示意图。所以我下载了一批WordPres...