渗透测试中的那些“水洞”:分析与防御

1. Nginx 版本泄露

风险分析:
Nginx 默认会在响应头中返回 Server: nginx/x.x.x,攻击者可利用该信息匹配已知漏洞进行攻击。

防御措施:

  • 修改 nginx.conf 配置文件,隐藏版本信息:
    server_tokens off;
    
  • 使用 WAF 进行信息隐藏。

2. Tomcat 默认报错页面

风险分析:
Tomcat 默认错误页面可能会泄露服务器版本、堆栈信息等,帮助攻击者制定攻击策略。

防御措施:

  • 修改 web.xml,自定义错误页面:
    <error-page><error-code>500</error-code><location>/custom_500.html</location>
    </error-page>
    
  • 关闭 server.xml 中的 server 头信息。

3. IIS 版本泄露

风险分析:
IIS 默认会在 Server 头中返回版本信息,如 Server: Microsoft-IIS/10.0,帮助攻击者匹配漏洞。

防御措施:

  • web.config 文件中添加:
    <system.webServer><security><requestFiltering removeServerHeader="true" /></security>
    </system.webServer>
    
  • 配置 WAF 进行信息隐藏。

4. jQuery 版本泄露

风险分析:
如果前端页面暴露了 jQuery 版本,如 jquery-1.12.4.js,攻击者可查找该版本的公开漏洞并利用。

防御措施:

  • 使用 CDN 或混淆 JavaScript 文件,避免暴露版本信息。
  • 及时更新 jQuery 版本,避免使用已知存在漏洞的版本。

5. X-Powered-By 信息泄露

风险分析:
X-Powered-By 头通常包含服务器的运行环境(如 PHP/5.4.16),攻击者可利用该信息匹配已知漏洞进行攻击。

防御措施:

  • 在 Nginx 配置中移除:
    fastcgi_hide_header X-Powered-By;
    
  • 在 PHP 配置文件 php.ini 中禁用:
    expose_php = Off
    

6. X-Frame-Options 响应头丢失

风险分析:
缺少 X-Frame-Options 头会使站点容易受到 Clickjacking 攻击。

防御措施:

  • 在 Nginx 配置中添加:
    add_header X-Frame-Options DENY;
    
  • 在 Apache 配置中添加:
    Header always set X-Frame-Options "SAMEORIGIN"
    

7. Content-Security-Policy 头缺失

风险分析:
Content-Security-Policy (CSP) 头缺失会导致网站容易受到 XSS 攻击。

防御措施:

  • 在 Nginx 配置中添加:
    add_header Content-Security-Policy "default-src 'self'; script-src 'self'";
    

8. TRACE 方法启用

风险分析:
TRACE 方法可被利用进行 Cross-Site Tracing (XST) 攻击,泄露 HTTP 头信息。

防御措施:

  • 在 Apache 配置中禁用:
    TraceEnable Off
    
  • 在 Nginx 配置中拦截:
    if ($request_method = TRACE) {return 405;
    }
    

9. 使用有漏洞的组件

风险分析:
老旧或有漏洞的第三方库、框架可被攻击者利用。

防御措施:

  • 定期检查依赖组件版本(如 npm auditOWASP Dependency-Check)。
  • 及时更新框架和库。

10. 缓慢的 HTTP 拒绝服务攻击(Slowloris)

风险分析:
攻击者使用 Slowloris 发送部分 HTTP 请求,占用服务器资源,导致拒绝服务。

防御措施:

  • 配置 Nginx 限制请求速率:
    limit_conn_zone $binary_remote_addr zone=conn_limit:10m;
    limit_conn conn_limit 10;
    
  • 使用 mod_reqtimeout 模块(Apache)。

11. 目标服务器启用了不安全 HTTP 方法

风险分析:
如果启用了 PUTDELETE 等方法,攻击者可能上传恶意文件或删除资源。

防御措施:

  • 在 Nginx 配置中仅允许安全方法:
    if ($request_method !~ ^(GET|POST|HEAD)$) {return 405;
    }
    
  • 在 Apache 配置中限制:
    <LimitExcept GET POST>deny from all
    </LimitExcept>
    

12. 缺少 Secure 标识

风险分析:
如果 Session Cookie 没有 Secure 标识,可能会在非 HTTPS 传输中被窃取。

防御措施:

  • Set-Cookie 头中添加 Secure; HttpOnly; SameSite=Strict
  • nginx.conf 配置:
    add_header Set-Cookie "name=value; Secure; HttpOnly; SameSite=Strict";
    

13. 敏感数据 GET 传输

风险分析:
如果敏感信息(如 passwordtoken)通过 GET 传输,可能会被日志记录或浏览器缓存暴露。

防御措施:

  • 采用 POST 方式传输敏感数据。
  • 通过 Referer-Policy 限制 Referer 头泄露:
    add_header Referrer-Policy "strict-origin";
    

14. SSL 证书无效

风险分析:
无效的 SSL 证书可能会导致用户数据被中间人攻击窃取。

防御措施:

  • 使用受信任的 CA 机构签发证书,如 Let's EncryptDigiCert
  • 启用 HSTS 头,防止降级攻击:
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
    

结论

以上是常见的 Web 安全“水洞”,这些配置问题虽然看似微不足道,但往往成为攻击者突破系统安全防线的关键点。企业应定期进行安全审计、修复漏洞,确保 Web 应用的安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/903741.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于C#开发的适合Windows开源文件管理器

使用DDD从零构建一个完整的系统 推荐一个功能强大且直观的开源文件管理器&#xff0c;适用于Windows平台。 01 项目简介 该项目是一个基于C#开发、开源的文件管理器&#xff0c;适用于Windows&#xff0c;界面UI美观、方便轻松浏览文件。此外&#xff0c;支持创建和提取压缩…

实习入职的总结

我是4月14号入职的&#xff0c;到现在差不多已经三个礼拜了&#xff0c;今天想总结一下这段时间的工作情况&#xff0c;并给学弟学妹们提供一些指引。 目前&#xff0c;我所在的公司是一家初创企业&#xff0c;专注于IPC安防领域。作为一名大专生&#xff0c;我深知自己的学历在…

Ubuntu 系统上部署 Kubernetes 的完整指南

Ubuntu 系统上部署 Kubernetes 的完整指南 一、环境准备&#xff08;Ubuntu 22.04/24.04&#xff09;1. 系统初始化2. 安装容器运行时&#xff08;containerd&#xff09;3. 安装 Kubernetes 组件&#xff08;kubeadm, kubelet, kubectl&#xff09; 二、部署 Kubernetes 集群1…

partition_pdf 和chunk_by_title 的区别

from unstructured.partition.pdf import partition_pdf from unstructured.chunking.title import chunk_by_titlepartition_pdf 和 chunk_by_title 初看有点像&#xff0c;都在"分块"&#xff0c;但是它们的本质完全不一样。 先看它们核心区别 partition_pdfchun…

基于深度学习的医疗诊断辅助系统设计

标题:基于深度学习的医疗诊断辅助系统设计 内容:1.摘要 随着医疗数据的爆炸式增长和深度学习技术的飞速发展&#xff0c;开发基于深度学习的医疗诊断辅助系统具有重要的现实意义。本研究的目的在于设计一个高效、准确的医疗诊断辅助系统&#xff0c;以辅助医生进行更精准的诊断…

Matlab/Simulink - BLDC直流无刷电机仿真基础教程(四) - PWM调制模拟

Matlab/Simulink - BLDC直流无刷电机仿真基础教程&#xff08;四&#xff09; - PWM调制模拟 前言一、PWM调制技术基本原理二、仿真模型中加入PWM调制三、逆变电路MOS管添加体二极管四、模拟添加机械负载五、仿真模型与控制框图文章相关模型文件下载链接参考链接 前言 本系列文…

Curl 全面使用指南

Curl&#xff08;Client URL&#xff09;是一个跨平台命令行工具&#xff0c;支持多种协议&#xff08;HTTP/HTTPS/FTP/SFTP等&#xff09;&#xff0c;用于数据传输、API调试、文件上传/下载等场景。以下从 核心功能、用户疑问解答、高级技巧 三方面系统总结&#xff0c;并整合…

PyTorch中“原地”赋值的思考

在开发一个PyTorch模块时&#xff0c;遇到了一个诡异的现象&#xff0c;将他描述出来就是下面这样&#xff1a; f[..., :p_index - 1] f[..., 1:p_index] 这个操作将f张量的部分数值进行左移&#xff0c;我在模型训练的时候还能正常跑&#xff0c;但是当我将模型部署到项目中…

什么是:云边端一体化架构

什么是云边端一体化架构 文章目录 什么是云边端一体化架构云、边、端云计算边缘计算终端设备 云边端一体化协同云边端一体化架构协同的流程云边端一体化架构协同的应用云边端一体化架构协同的价值云边端一体化架构协同未来发展趋势 云、边、端 云&#xff08;Cloud&#xff09…

gephi绘图

参考&#xff1a; 如何在Gephi中正确的显示中文&#xff1f; Gephi绘制网络图初步探索 gephi 节点标签 调节_图分析与可视化-从Gephi开始

马克·雷伯特:用算法让机器人飞奔的人

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 马克雷伯特:用算法让机器人飞奔的人 一、天才的起点 在机器人领域,有一个名字如雷贯耳——马克雷伯特(Marc Raibert)。作为波士顿动力公司(Boston…

三维装配可视化界面开发笔记

三维装配可视化界面开发笔记 项目概述 这是一个基于Vue.js和Three.js的三维装配可视化系统&#xff0c;用于展示机械零部件的装配和拆解过程。系统支持模型加载、拆解/装配路径生成、动画展示和工艺流程图生成等功能。 技术栈 前端框架: Vue 3 (使用组合式API)构建工具: Vi…

深⼊理解指针(8)

1.对上一篇的补充内容 typedef int* ptr_t #define PTR_T int* 这两种写法都是可以的 ptr_t p1, p2; //p1, p2 都是指针变量 PTR_T p3, p4; //p3 是指针变量, p4是整型变量 为什么p3 是指针变量, p4是整型变量呢&#xff1f; 因为PTR_T 真的被改为了 int* 在编译器中…

neo4j暴露公网ip接口——给大模型联通知识图谱

特别鸣谢 我的领导&#xff0c;我的脑子&#xff0c;我的学习能力&#xff0c;感动了 1. 搭建知识图谱数据库&#xff08;见上一章博客&#xff09; 这里不加赘述了&#xff0c;请参考上一篇博客搭建 2. FastApi包装接口 这里注意&#xff1a;NEO4J_URI不得写http:,只能写…

AI编程新选择!VSCode + RooCode,超越Cursor​

在当今快节奏的开发环境中&#xff0c;AI编程助手已经成为提升开发效率的关键工具。然而&#xff0c;面对众多选择&#xff0c;开发者往往陷入纠结&#xff1a;如何在众多AI编程工具中找到最适合自己的方案&#xff1f;尤其是当VSCode搭配RooCode时&#xff0c;相比Cursor&…

电子病历高质量语料库构建方法与架构项目(环境聆听与自动化文档生成篇)

电子病历高质量语料库的构建是一个复杂而系统的工程,涉及数据收集、清洗、标注、验证等多个环节。在项目实施过程中,"环境聆听"和"自动化文档生成"是两个关键支撑要素,前者确保项目能够适应不断变化的技术和业务环境,后者则保障项目过程的可追溯性和知…

Python协程入门指北

一、什么是协程&#xff1f; 协程&#xff08;Coroutine&#xff09;就像可以暂停执行的函数&#xff0c;能够在执行过程中主动让出控制权&#xff0c;等准备好后再继续执行。 生活小例子 想象你在咖啡店排队&#xff1a; 普通函数&#xff1a;必须一直排到取餐&#xff08…

mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz的下载安装和使用

资源获取链接&#xff1a; mysql-5.7.24-linux-glibc2.12-x86-64.tar.gz和使用说明资源-CSDN文库 详细作用 数据库服务器的核心文件&#xff1a; 这是一个压缩包&#xff0c;解压后包含 MySQL 数据库服务器的可执行文件、库文件、配置文件模板等。 它用于在 Linux 系统上安装…

C++笔记-继承(下)(包含派生类的默认成员函数,菱形继承等)

一.派生类的默认成员函数 1.14个常见默认成员函数 默认成员函数&#xff0c;默认的意思就是指我们不写&#xff0c;编译器会自动为我们生成一个&#xff0c;那么在派生类中&#xff0c;这几个成员函数是如何生成的呢&#xff1f; 1.派生类的构造函数必须调用基类的构造函数初…

C++中指针使用详解(3)数组、指针和函数参数传递的底层 ABI实现

要深入理解 数组、指针和函数参数传递 的底层 ABI&#xff08;Application Binary Interface&#xff09;实现&#xff0c;需要从以下几个维度出发进行学习&#xff1a; 一、什么是 ABI&#xff1f; ABI 是编译器和操作系统之间的协定&#xff0c;规定了&#xff1a; 函数如何…