当前位置: 首页 > news >正文

网站常见安全漏洞 | 青训营

Powered by:NEFU AB-IN

文章目录

  • 网站常见安全漏洞 | 青训营
    • 网站基本组成及漏洞定义
    • 服务端漏洞
      • SQL注入
      • 命令执行
      • 越权漏洞
      • SSRF
      • 文件上传漏洞
    • 客户端漏洞
      • 开放重定向
      • XSS
      • CSRF
      • 点击劫持
      • CORS跨域配置错误
      • WebSocket

网站常见安全漏洞 | 青训营

  • 网站常见安全漏洞-网站基本组成及漏洞定义

  • 网站常见安全漏洞-服务端漏洞介绍

  • 网站常见安全漏洞-客户端漏洞介绍

  • 网站常见安全漏洞-总结及强调网络安全法

网站基本组成及漏洞定义

image.png

网关在计算机网络中指的是连接两个不同网络或协议的设备或系统。它的作用是将传入的数据包从一个网络发送到另一个网络中,充当网络的出口或入口。网关可以实现网络之间的通信和数据传输。

网关的主要功能包括地址转换、协议转换、数据加密和解密、流量控制、访问控制等。它还负责将传入的数据包路由到正确的目标主机,并在多个网络之间进行数据传输和转发。

NGINX 是一款高性能的开源网络代理服务器,它可以用作反向代理服务器、负载均衡器、HTTP缓存和网关等。作为网关,NGINX可以处理与网络之间的数据交换,转发请求,并将请求流量分发到内部的服务器集群。通过配置NGINX,可以实现对外部请求的流量控制、访问控制和安全性增强等功能。

因此,可以说NGINX可以充当网关的角色,但它不仅仅是一个网关,还具备其他众多的功能。

image.png

网关是在计算机网络中起到连接不同网络或网络段之间的作用,它可以用于数据的路由、过滤、转换等功能。下面是一些常见的网关作用和工作流程例子:

  1. 路由网关:路由网关用于连接不同的网络,并根据数据包的目的地址,决定将数据包发送到哪个网络上。例如,Cisco的路由器就是一种常见的路由网关。

  2. 防火墙网关:防火墙网关用于监控和控制网络流量,以保护网络免受恶意攻击和未经授权的访问。例如,Checkpoint的防火墙就是一种常见的防火墙网关。

  3. SSL VPN网关:SSL VPN网关用于提供远程用户安全访问企业网络的功能,通过建立安全的虚拟专用网络(VPN)隧道,使远程用户可以安全地访问内部资源。例如,Juniper的SSL VPN网关就是一种常见的SSL VPN网关。

  4. API网关:API网关用于管理和保护企业的应用程序接口(API),它可以提供身份验证、访问控制、流量控制等功能。例如,Kong是一种常见的开源API网关。

网关的工作流程通常包括以下步骤:

  1. 接收数据包:网关从连接的网络或主机接收数据包。
  2. 解析数据包:网关解析数据包的头部信息,如源地址、目的地址、协议等。
  3. 决策处理:根据预设的策略和规则,网关决定如何处理该数据包,如路由到其他网络、进行访问控制、过滤等。
  4. 执行处理:网关执行相应的处理操作,如进行数据包的转发、修改数据包的内容等。
  5. 发送数据包:网关将处理后的数据包发送到下一个网络或主机。

举一个具体的网关实例是防火墙网关。当数据包进入防火墙网关时,网关会解析数据包的头部信息,如源IP地址、目的IP地址、端口号等。接着,网关根据预设的策略和规则,判断该数据包是否满足安全要求,如果不满足,网关可能会进行阻止或拦截处理;如果满足,网关可以根据策略将数据包转发到特定的网络或主机。同时,防火墙网关还可以对数据包进行深层次的检查和修改,以提供额外的安全保护。最后,网关将处理后的数据包发送到目标网络或主机。


image.png


服务端漏洞

  • 第三方组件漏洞 如log4j
  • SQL 注入
  • 命令执行
  • 越权漏洞
  • SSRF
  • 文件上传漏洞

SQL注入

可能查出别的数据,通过union select
image.png

  1. 直接拼接语句时不安全的,用ORM包,以对象的方式查询

  2. Mybatis 占位符

    • 若使用#,把它当成动态的字段,是直接拼接的效果,不存在漏洞
    • 若使用$,不会对参数值进行转义,会导致潜在的注入风险
      假设我们有一个查询用户信息的SQL语句:
    SELECT * FROM users WHERE username = $username
    

    假设攻击者输入的username参数为:' OR '1'='1'-- (注意末尾的注释符号,注释掉原本的闭合单引号,并追加额外的SQL语句,从而影响整个查询的逻辑),那么最终拼接的SQL语句将会变成:

    SELECT * FROM users WHERE username = '' OR '1'='1'--'
    

    这样,由于'1'='1'始终为真,攻击者可以绕过用户名验证,获取到所有的用户信息。

    使用#号可以防止这种注入攻击,因为#会将参数值进行转义并添加单引号,即使攻击者输入恶意字符,也不会产生注入漏洞。

  3. Golang常见错误写法

    比如是图片中插入一个if语句,1始终为真,一直执行第二个参数的内容,会让服务器休眠10s,就可以让外面判断是否可以SQL注入,从而可以进一步判断表明等等

    image.png

防护措施(对外部数据进行数据清理)

image.png


命令执行

image.png

防护方式

  • 设置白名单,只能操控这几个值
  • 设置黑名单,过滤字符

image.png


越权漏洞

类别

  • 未授权,不需要认证,拿到数据

  • 水平越权,查询同等级别的账户信息

    image.png

  • 垂直越权,使用别的权利

    image.png


SSRF

SSRF代表"Server-Side Request Forgery",翻译成中文是“服务器端请求伪造”。它是一种网络安全漏洞,攻击者可以通过操纵服务器发起的请求来访问、探测或攻击服务器内部的资源,甚至可能用于攻击内部系统。通常,攻击者会通过构造恶意请求来欺骗服务器,使其执行不安全的操作,例如向内部服务器发起HTTP请求或访问本地文件系统。

以下是一些SSRF的具体例子:

  1. 访问内部资源: 攻击者可以构造恶意请求,使服务器发起请求到内部的数据库、文件系统或其他敏感资源,然后将结果返回给攻击者。这可以用于获取敏感数据或执行未授权的操作。

  2. 绕过防火墙或内部网络访问限制: 攻击者可以利用SSRF来访问内部系统,绕过外部服务器的防火墙或网络访问控制列表,进而攻击内部系统。

  3. 攻击本地资源: 攻击者可以利用SSRF来尝试访问本地文件系统,例如file:///协议,从而读取或修改服务器上的文件。

  4. 攻击其他服务: 攻击者可以构造请求,使服务器发起攻击其他服务,例如发起DDoS攻击,这可能会导致其他服务不可用。

防止SSRF攻击通常涉及到验证和过滤输入,确保服务器不会发起恶意请求。此外,网络架构的设计也可以减轻SSRF的风险,如将服务器限制在受信任的网络环境中,以防止访问敏感资源。

防护方式

  1. 尽量这些不要让内网地址可以公网访问
  2. URL post只在白名单中选

image.png


文件上传漏洞

  • PHP脚本注入

  • image.png

防护方式

image.png


客户端漏洞

  • 开放重定向
  • XSS
  • CSRF
  • 点击劫持(clickjacking)
  • CORS跨域配置错误
  • WebSocket

开放重定向

可能后面的URL不可控

image.png


XSS

image.png

image.png

防护方法

对输入(标签和属性)进行控制,有些onload onclick后面可以跟代码,需要控制
image.png


CSRF

image.png

防护方式

image.png


点击劫持

image.png

不让使用 <iframe> 元素嵌入到一个网页中的另一个网页或站点

  • X-FRAME:deny 默认拒绝;sameorigin:允许
  • 配置白名单

image.png


CORS跨域配置错误

CORS代表"跨源资源共享"(Cross-Origin Resource Sharing),是一种用于在Web应用程序中处理跨域HTTP请求的安全机制。跨域请求是指一个网页上的代码试图向不同域(协议、域名或端口)的服务器发起HTTP请求。由于浏览器的同源策略(Same-Origin Policy)限制,跨域请求通常是被禁止的。CORS是一种通过浏览器的协作机制来允许跨域请求的方法。

image.png

Middleware(中间件)是一种常见的软件设计模式,它允许你在一个应用程序的请求-响应过程中插入、扩展或修改功能,而不需要修改应用程序的核心代码。中间件位于应用程序的处理流程中,可以对请求和响应进行预处理、后处理或者转换。
image.png


WebSocket

WebSocket(Web套接字)是一种用于在客户端和服务器之间进行全双工通信的网络协议。与传统的HTTP协议不同,WebSocket允许服务器主动向客户端发送数据,而不需要客户端明确地请求。这使得WebSocket非常适用于实时应用程序,如在线游戏、聊天应用、实时协作工具和实时数据传输等。

以下是WebSocket与HTTP之间的主要区别:

  1. 通信模式:

    • HTTP: HTTP是一种请求-响应协议,客户端发送请求,服务器返回响应,然后连接关闭。这是一种单向通信模式。
    • WebSocket: WebSocket是全双工协议,允许客户端和服务器之间建立持久连接,双方可以同时发送和接收数据,而不需要不断地建立和关闭连接。
  2. 连接开销:

    • HTTP: 每次客户端需要与服务器通信时,都需要建立一个新的HTTP连接,这需要时间和资源。
    • WebSocket: WebSocket连接是持久的,一旦建立,可以保持打开状态,允许实时通信,减少了连接开销。
  3. 协议头:

    • HTTP: HTTP协议的请求和响应通常包含大量的头部信息,这些头部信息用于描述请求的性质和服务器的响应。
    • WebSocket: WebSocket头部相对较小,协议更轻量级,因此在通信期间传输的数据量更小,延迟更低。
  4. 端口:

    • HTTP: HTTP通常使用标准端口80(HTTP)或443(HTTPS)。
    • WebSocket: WebSocket使用标准端口80或443,但也可以使用其他端口。
  5. 应用场景:

    • HTTP: 适用于传统的请求-响应应用程序,如网页浏览、RESTful API调用等。
    • WebSocket: 适用于需要实时双向通信的应用程序,如在线游戏、聊天应用、实时协作工具和实时数据传输。

总之,WebSocket是一种更适合实时和双向通信的协议,它在一次连接的基础上允许客户端和服务器之间进行长时间的数据交换。而HTTP更适用于传统的请求-响应模式,每个请求都是独立的,连接会在请求和响应之间关闭。选择使用哪种协议取决于应用程序的需求。

image.png

image.png

相关文章:

网站常见安全漏洞 | 青训营

Powered by:NEFU AB-IN 文章目录 网站常见安全漏洞 | 青训营 网站基本组成及漏洞定义服务端漏洞SQL注入命令执行越权漏洞SSRF文件上传漏洞 客户端漏洞开放重定向XSSCSRF点击劫持CORS跨域配置错误WebSocket 网站常见安全漏洞 | 青训营 网站常见安全漏洞-网站基本组成及漏洞定义…...

vue2使用 vis-network 和 vue-vis-network 插件封装一个公用的关联关系图

效果图&#xff1a; vis组件库&#xff1a;vis.js vis-network中文文档&#xff1a;vis-network 安装组件库&#xff1a; npm install vis-network vue-vis-network 或 yarn add vis-network vue-vis-network 新建RelationGraph.vue文件&#xff1a; <template><…...

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。

LeetCode第73题矩阵置零 1.思路&#xff1a; 想到一个开辟一点空间来解决方法&#xff0c;使用哈希集。就是使用一个哈希集&#xff08;row和col&#xff09;来储存数组中的元素为0的下标。然后再遍历&#xff0c;整个二维数组&#xff0c;在哈希集中存在对应的下标&#xff0c…...

java-初识Servlet,Tomcat,JDBC

文章目录 前言一、ServletServlet 生命周期Servlet 实例Servlet 过滤器 二、TomcatJDBCJDBC连接数据库实例 总结 前言 java入门须知的重要概念/名词/技术 等 一、Servlet Servlet是Java Web开发中的一个核心组件&#xff0c;它是基于Java语言编写的服务器端程序&#xff0c;…...

SpringBoot+mybatis+pgsql多个数据源配置

一、配置文件 jdk环境&#xff1a;1.8 配置了双数据源springbootdruidpgsql&#xff0c;application.properties配置修改如下&#xff1a; #当前入库主数据库 spring.primary.datasource.typecom.alibaba.druid.pool.DruidDataSource spring.primary.datasource.driver-class…...

视频汇聚/视频监控管理平台EasyCVR接入海康SDK协议后无法播放该如何解决?

开源EasyDarwin视频监控/安防监控/视频汇聚EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多路视频流&#…...

MQ消息队列(主要介绍RabbitMQ)

消息队列概念&#xff1a;是在消息的传输过程中保存消息的容器。 作用&#xff1a;异步处理、应用解耦、流量控制..... RabbitMQ&#xff1a; SpringBoot继承RabbitMQ步骤&#xff1a; 1.加入依赖 <dependency><groupId>org.springframework.boot</groupId&g…...

2023年7月天猫糕点市场数据分析(天猫数据怎么看)

烘焙食品行业是近几年食品领域比较火热的赛道之一&#xff0c;随着居民饮食结构的变化&#xff0c;人均消费水平的上升&#xff0c;蛋糕、面包等烘焙糕点越发成为消费者饮食的重要组成部分。同时&#xff0c;在烘焙糕点市场中&#xff0c;老品牌不断推新迭变&#xff0c;新品牌…...

开源双语对话语言模型 ChatGLM-6B 本地私有化部署

本文首发于&#xff1a;https://www.licorne.ink/2023/08/llm-chatglm-6b-local-deploy/ ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型&#xff0c;基于 General Language Model (GLM) 架构&#xff0c;具有 62 亿参数。结合模型量化技术&#xff0c;用户可以在消费级…...

Zabbix 5.0 媒体介质 邮箱配置例子

QQ企业邮箱 参考&#xff1a;zabbix 腾讯企业邮箱配置图_harveymomo的博客-CSDN博客...

基于Red Hat Enterprise Linux 7操作系统的PostgresSql15的备份恢复(实践笔记)

零、前言 本文是基于阿里云ECS服务器进行的实践操作&#xff0c;操作系统版本&#xff1a;Red Hat Enterprise Linux 7 PG数据库版本&#xff1a;PostgresSql 15 PG安装方式&#xff1a;yum 由于本人新接触pg数据&#xff0c;本次也是出于好奇&#xff0c;就对pg数据库的pg_du…...

AMEYA360:类比半导体推出小尺寸低功耗仪表放大器INA103和INA104

致力于提供高品质芯片的国内优秀模拟及数模混合芯片设计商上海类比半导体技术有限公司(下称“类比半导体”或“类比”)宣布推出小尺寸、低功耗、高性能、零漂移仪表放大器INA103和INA104。该系列产品仅需要一个外部电阻即可设置1到10000的增益&#xff0c;静态电流仅为1.3mA并具…...

【Ubuntu20.04】安装gcc11 g++11, Ubuntu18.04

#查看当前使用的gcc版本命令: gcc -v #更新软件源指令&#xff1a; sudo apt-get update #更新软件指令&#xff1a; sudo app-get upgrade# 添加相应的源 sudo add-apt-repository ppa:ubuntu-toolchain-r/test #更新软件源指令&#xff1a; sudo apt-get update# 卸载已有gcc…...

vim系列之常用命令

一.欢迎来到我的酒馆 在本章节介绍vim编辑器常用命令。 目录 一.欢迎来到我的酒馆二.vim常用命令 二.vim常用命令 2.1vim编辑器常用命令&#xff1a; i: 在光标位置处插入字符。o: 在下一行开始位置插入一行。yy: 复制光标所在的行p: 在光标位置粘贴剪切板内容。...

Scikit-Learn中的特征选择和特征提取详解

概要 机器学习在现代技术中扮演着越来越重要的角色。不论是在商业界还是科学领域&#xff0c;机器学习都被广泛地应用。在机器学习的过程中&#xff0c;我们需要从原始数据中提取出有用的特征&#xff0c;以便训练出好的模型。但是&#xff0c;如何选择最佳的特征是一个关键问…...

Python之动态规划

序言 最近在学习python语言&#xff0c;语言有通用性&#xff0c;此文记录复习动态规划并练习python语言。 动态规划&#xff08;Dynamic Programming&#xff09; 动态规划是运筹学的一个分支&#xff0c;是求解决策过程最优化的过程。20世纪50年代初&#xff0c;美国数学家…...

[ES]二基础 |

一、索引库操作 1、mapping属性 mapping是对索引库中文档的约束&#xff0c;常见的mapping属性包括&#xff1a; 1)type&#xff1a;字段数据类型&#xff0c;常见的简单类型有&#xff1a; ①字符串&#xff1a;text(可分词的文本)、keyword&#xff08;精确值&#xff0c…...

vscode vue3自定义自动补全

敲代码多了&#xff0c;发现重发动作很多&#xff0c;于是还是定义自动补全代码吧——懒是第一生产力&#xff01; 1&#xff0c;Ctrl Shift P打开快捷命令行&#xff1a;找到下面这个 2&#xff0c;然后找到ts&#xff1a; 里面给了demo照着写就行 // "Print to conso…...

Spring Cloud + Spring Boot 项目搭建结构层次示例讲解

Spring Cloud Spring Boot 项目搭建结构层次示例讲解 Spring Cloud 项目搭建结构层次示例Spring Cloud示例&#xff1a; Spring Boot 项目搭建结构层次讲解Spring Boot 项目通常按照一种常见的架构模式组织&#xff0c;可以分为以下几个主要层次&#xff1a;当构建一个 Spring…...

使用cgroup工具对服务器某些/全部用户进行计算资源限制

使用cgroup工具对服务器某些/全部用户进行计算资源限制 主要介绍&#xff0c;如何对指定/所有用户进行资源限定&#xff08;这里主要介绍cpu和内存占用限制&#xff09;&#xff0c;防止某些用户大量占用服务器计算资源&#xff0c;影响和挤占他人正常使用服务器。 安装cgrou…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中&#xff0c;API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关&#xff0c;Kong凭借其插件化架构…...