首页 > 其他分享 >记一次服务器排查漏洞

记一次服务器排查漏洞

时间:2023-06-25 09:33:27浏览次数:46  
标签:HTTP header server 排查 漏洞 add 服务器 Options

记一次服务器排查漏洞

最近需要在客户现场部署app后端项目,需要将服务器并过去,但客户扫描后发现我们服务器还有一些信息级别的漏洞,要求我们清空了才能并过去,本来是安排运维来干的,但不知啥原因,leader扔我头上了,还pua我说技术啥都需要知道,所以记录一下几个简单漏洞的解决方案

HTTP横幅

HTTP 横幅是指在 HTTP 响应头中包含的服务器信息,包括服务器软件名称、版本号和操作系统等信息。攻击者可以利用这些信息来针对已知的漏洞进行攻击。

以下是几种解决 HTTP 横幅问题的方法:

  • 禁用 HTTP 横幅:大多数 Web 服务器都允许管理员禁用 HTTP 横幅。在 Apache Web 服务器中,可以编辑 httpd.conf 文件并添加或修改以下行

    ServerTokens Prod
    ServerSignature Off
    

    这将禁用服务器的详细版本信息,并从响应中删除服务器签名。

  • 使用安全 HTTP 头:安全 HTTP 头可以提高 Web 应用程序的安全性,并防止一些攻击。例如,在响应头中使用“X-Content-Type-Options”和“X-XSS-Protection”头可以帮助防止跨站点脚本攻击(XSS)。

  • 更新 Web 服务器版本:更新 Web 服务器版本可以修复已知的漏洞,并避免攻击者利用已知的漏洞。在更新之前,请确保备份 Web 服务器配置文件和密钥文件,以便在必要时进行恢复。

  • 使用网络安全设备:可以使用网络安全设备,如防火墙和入侵检测系统(IDS),来监控和检测 HTTP 横幅和其他安全漏洞。这些设备可以在攻击发生时发送警报,并阻止恶意流量。

由于我们服务器采用的Nginx 服务器,所以具体解决方案如下几种:

  1. 配置 server_tokens:默认情况下,Nginx 在响应头中包含版本信息。可以通过在 Nginx 配置文件中添加以下行来禁用它:

    server_tokens off;
    
                        add_header X-Frame-Options SAMEORIGIN;# 只允许本站用 frame 来嵌套
                        add_header X-Content-Type-Options nosniff; # 禁止嗅探文件类型
                        add_header X-XSS-Protection "1; mode=block"; # # XSS 保护
    
  2. 配置 server_name_in_redirect:如果启用了此选项,则 Nginx 将在重定向响应中包含服务器名称和端口号。可以通过在 Nginx 配置文件中添加以下行来禁用它:

    server_name_in_redirect off;
    
  3. 使用安全 HTTP 头:Nginx 可以使用 add_header 指令添加安全 HTTP 头。例如,可以添加以下行来防止浏览器嗅探 MIME 类型:

    add_header X-Content-Type-Options nosniff;
    
  4. 使用网络安全设备:可以使用网络安全设备,如防火墙和入侵检测系统(IDS),来监控和检测 HTTP 横幅和其他安全漏洞。这些设备可以在攻击发生时发送警报,并阻止恶意流量。

Http头Hostname攻击

解决方案:

nginx解决的

         server {
                listen 8091 default;
                server_name _;
                location / {
                        return 403;
                        }
                }

并将具体监听的server_name改为真实ip

弱CORS策略

                        set $allow_cors 0;
                        # 判断不为空
                        if ($http_origin) {
                                set $allow_cors 1;
                         }
                        # 判断不在白名单内
                        if ($http_origin !~* "(ip)" ) {
                                set $allow_cors "${allow_cors}1";
                        }
                        # 判断不为空 且 不在白名单内,返回403
                        if ($allow_cors = "11") {
                                return 403;
                        }
                        add_header Access-Control-Allow-Origin 'http://ip:端口' always;
                        add_header 'Access-Control-Allow-Credentials' 'false'  always;

代码级别:

response.setHeader("Access-Control-Allow-Origin", "http://127.0.0.1");
response.setHeader("Access-Control-Allow-Methods",
						"POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers",
						"x-requested-with");
       if($request_method !~ ^(GET|HEAD|POST)$) {
                     return 404;
        }
        
        autoindex off;

Web服务器目录列表信息泄露

在监听目录上配置:

autoindex off;

web漏洞-缺少X-Frame-Options标头

配置 nginx 发送 X-Frame-Options 响应头,把下面这行添加到 http, server 或者 location 的配置中:

add_header X-Frame-Options SAMEORIGIN always;

缺少“Content-Security-Policy”头

add_header Content-Security-Policy "default-src *;style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';img-src * data:;worker-src * blob:;font-src 'self' data:;";

HTTP X-Permitted-Cross-Domain-Policies 缺失

系统响应头缺少X-Permitted-Cross-Domain-Policies,将会导致浏览器的安全特性失效

add_header X-Permitted-Cross-Domain-Policies 'none';

HTTP X-Download-Options 缺失

web浏览器在响应头中缺少 X-Download-Options,这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。

add_header X-Download-Options "noopen";

Referrer-Policy响应头缺失

用来监管哪些访问来源信息——会在 Referer 中发送——应该被包含在生成的请求当中,增加隐私保护。

当我们点击一个连接时,会产生一个http请求去获取新页面的内容,在该请求的header中会有一个referrer用以说明该请求是从哪个页面跳转过来的。如果缺少该字段会导致浏览器的安全特性消失,使我们的系统更容易受到攻击。

add_header Referrer-Policy "no-referrer";

Nginx移除版本信息

server_tokens off;

Git元数据目录信息泄露

   location ~ /\.git {
        deny all;
    }

参考链接:https://blog.csdn.net/liwan09/article/details/130248003

标签:HTTP,header,server,排查,漏洞,add,服务器,Options
From: https://www.cnblogs.com/java5wanping/p/17502145.html

相关文章

  • 在Linux下搭建Git服务器
    众所周知,版本系统在开发环境中是必不可少的,但是我们可以把代码免费的托管到GitHub上,如果我们不原意公开项目的源代码,公司又不想付费使用,那么我们可以自己搭建一台Git服务器,可以用Gitosis来管理公钥,还是比较方便的。搭建环境:服务器 CentOS6.6+git(version1.8.3.1)客户......
  • 记一次字符串末尾空白丢失的排查 → MySQL 是会玩的!
    开心一刻今天答应准时回家和老婆一起吃晚饭,但临时有事加了会班,回家晚了点回到家,本以为老婆会很生气,但老婆却立即从厨房端出了热着的饭菜老婆:还没吃饭吧,去洗下,来吃饭吧我洗好,坐下吃饭,内心感动十分;老婆坐旁边深情的看着我老婆:你知道谁最爱你吗我毫不......
  • 使用阿里云服务器搭建我的世界服务器并启动游戏
    一、选择服务器镜像我使用的是Ubuntu20.04 二、使用shell终端连接器连接服务器 三、安装必要的软件包来构建mcrcon工具:sudoaptupdatesudoaptinstallgitbuild-essential安装Java运行环境aptinstallopenjdk-17-jre注意:高版本jdk兼容低版本mc 注意:下载完......
  • 自建frp服务器,搭建内网穿透,linux安装及docker安装
    frp服务搭建frp是一个专注于内网穿透的高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议。可以将内网服务以安全、便捷的方式通过具有公网IP节点的中转暴露到公网。通过在具有公网IP的节点上部署frp服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能......
  • Linux-FTP服务器搭建
    搭建FTP服务器,让客户端实现上传下载文件了解内容:对于配置文件中,常用的全局配置选项除了在配置文件中设置写权限之外,还要对这个目录设置一个selinux的权限,是否开启匿名用户的写权限on代表开启,匿名用户才会有响应的写权限下面构建一个匿名上传的FTP服务器:条件:准备两台虚拟机,一台作为......
  • 腾讯轻量服务器 安装ubuntu 开启root登录
    腾讯轻量服务器安装ubuntu后,系统的默认用户名是ubuntu,并在安装过程中默认不设置root帐户和密码。想要设置中开启允许root用户登录。具体操作步骤如下(照抄的腾讯帮助文档,整理以方便查阅):1.使用ubuntu帐户登录。2.执行以下命令,设置root密码sudopasswdroot3. 执......
  • 开源的文件同步软件推荐,可本地使用,无需自建服务器
    开源的文件同步软件推荐,可本地使用,无需自己搭建服务器:1.Syncthing:开源的文件同步工具,支持多个操作系统,使用点对点的方式进行同步,无需中央服务器。2.FreeFileSync:开源的文件同步和备份工具,支持Windows、macOS和Linux操作系统。3.ResilioSync:快速、安全的文件同步和共享工具,......
  • 服务器常见端口有哪些 43.227.222.x
    1、服务器端口是什么意思?  服务器端口是服务器通信服务中的一个服务端窗口号码,取值范围是1-65535。一个服务器(如美国服务器)里面包含的服务有很多,常见的有FTP、HTTPS、HTTP等,不同服务使用的端口会有所不同,这样通过不同端口,计算机就可以与外界进行互不干扰的通信。常用的端口有2......
  • linux系统查询服务器ip地址的命令
    linux系统查询服务器ip地址的命令参考文章3种方法来在Linux系统中查看服务器IP地址在Linux系统中,可以使用以下命令来查询服务器的IP地址:ifconfig命令:在终端输入ifconfig命令,它会显示当前系统中所有网络接口的配置信息,包括服务器的IP地址。ip命令:在终端输入ipaddr命令,它会列......
  • Pickle反序列化漏洞学习
    Pickle反序列化漏洞模块pickle实现了对一个Python对象结构的二进制序列化和反序列化。"pickling"是将Python对象及其所拥有的层次结构转化为一个字节流的过程,而"unpickling"是相反的操作,会将(来自一个binaryfile或者bytes-likeobject的)字节流转化回一个对象层次......