网络安全常见漏洞类型总结
网络安全常见漏洞类型总结
1、弱口令
原因: 与个人习惯和安全意识相关,为了避免忘记密码,使用一个非常容易记住的密码,或者是直接采用系统的默认密码等。
危害: 通过弱口令,攻击者可以进入后台修改资料,进入金融系统盗取钱财,进入OA系统可以获取企业内部资料,进入监控系统可以进行实时监控等。
防御:
设置密码通常遵循以下原则:
(1)不使用空口令或系统缺省的口令;
(2)口令长度不小于8 个字符;
(3)口令不应该为连续的某个字符或重复某些字符的组合。
(4)口令应该为以下四类字符的组合:大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。
(5)口令中不应包含特殊内容:如本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail 地址等等与本人有关的信息,以及字典中的单词。
(6)口令不应该为用数字或符号代替某些字母的单词。
(7)口令应该易记且可以快速输入,防止他人从你身后看到你的输入。
(8)至少90天内更换一次口令,防止未被发现的入侵者继续使用该口令。
2、SQL注入
原因: 当Web应用向后台数据库传递SQL语句进行数据库操作时,如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句,直接输入数据库引擎执行,获取或修改数据库中的数据。SQL注入的两个关键点:1、用户能控制输入的内容;2、Web应用把用户输入的内容带入到数据库中执行。
危害: 盗取网站的敏感信息、绕过网站后台认证、借助SQL注入获取系统权限。
防御:
(1)采用sql语句预编译和绑定变量 #{name};
(2)使用正则表达式过滤传入的参数;
(3)过滤字符串,如insert、select、update、and、or等。
3、文件上传
原理: 在文件上传的功能处,若服务端未对上传的文件进行严格验证和过滤,导致攻击者上传恶意的脚本文件时,就有可能获取执行服务端命令的能力,称为文件上传漏洞。
原因: 服务器的错误配置、开源编码器漏洞、本地上传上限制不严格被绕过、服务器端过滤不严格被绕过。
危害: 上传恶意文件、getshell、控制服务器。
防御: 白名单判断文件后缀是否合法、文件上传的目录设置为不可执行、判断文件类型、使用随机数改写文件名和文件路径、单独设置文件服务器的域名、使用安全设备防御。
4、XSS(跨站脚本攻击)
取名: XSS(Cross Site Scripting):跨站脚本攻击,为了不和层叠样式表(Cascading Style Sheets)的缩写CSS混合,所以改名为XSS。
XSS原理: 攻击者在网页中嵌入客户端脚本(通常是JavaScript恶意脚本),当用户使用浏览器加载被嵌入恶意代码的网页时,恶意脚本代码就会在用户的浏览器执行,造成跨站脚本的攻击。
危害: 盗取Cookie、网络钓鱼、植马挖矿、刷流量、劫持后台、篡改页面、内网扫描、制造蠕虫等。
防御: 对用户的输入进行合理验证、对特殊字符(如 <、>、’、”等)验证。
5、CSRF(跨站请求伪造)
原理: CSRF(Cross-Site Request Forgery),跨站请求伪造。攻击者利用目标用户的身份,执行某些非法的操作。跨站点的请求,请求的来源可以是非本站;请求是伪造的,请求的发出不是用户的本意。
危害: 篡改目标站点上的用户数据、盗取用户隐私数据、作为其他攻击的辅助攻击手法、传播 CSRF 蠕虫。
防御: 检查HTTP Referer是否是同域、限制Session Cookie的生命周期,减少被攻击的概率、使用验证码、使用一次性token。
6、SSRF(服务器端请求伪造)
原理: SSRF(Server-Side Request Forgery):服务器端请求伪造。该漏洞通常由攻击者构造的请求传递给服务端,服务器端对传回的请求未作特殊处理直接执行而造成的。
危害: 扫描内网(主机、端口)、向内部任意主机的任意端口发送精心构造的payload、攻击内网的Web应用、读取任意文件、拒绝服务攻击。
防御:
(1)统一错误信息,避免用户根据错误信息来判断远程服务器的端口状态;
(2)限制请求的端口为http的常用端口,比如:80、443、8080等;
(3)禁用不需要的协议,仅允许http和https;
(4)根据请求需求,可以将特定域名加入白名单,拒绝白名单之外的请求;
(5)后台代码对请求来源进行验证。
7、XXE(XML外部实体注入)
原理: XXE(XML External Entity Injection),即XML外部实体注入。XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致用户可以控制外部的加载文件,造成XXE漏洞。
危害: 任意文件读取、内网端口探测、拒绝服务攻击、钓鱼。
防御:
(1)使用开发语言提供的禁用外部实体的方法;
(2)过滤用户提交的XML数据,过滤关键词:<!DOCTYPE、<!ENTITY SYSTEM、PUBLIC。
8、RCE(远程命令/代码执行)
RCE(Remot Command/Code Execute),远程命令/代码执行。
远程命令执行: 用户可以控制系统命令执行函数的参数,也称命令注入;
远程代码执行: 用户输入的参数可以作为代码执行,也称代码注入;
命令执行可以看作是一种特殊的代码执行,代码执行相对会更加灵活。
原理: 应用程序中有时会调用一些系统命令函数,比如php中使用system、exec、shell_exec等函数可以执行系统命令,当攻击者可以控制这些函数中的参数时,就可以将恶意命令拼接到正常命令中,从而造成命令执行攻击。
危害: 命令执行漏洞,属于高危漏洞之一,也可以算是一种特殊的代码执行。
原因: 用户可以控制输入的内容、用户输入的内容被当作命令执行。
防御方式:
(1)尽量不要使用命令执行函数;
(2)客户端提交的变量在进入执行命令函数方法之前,一定要做好过滤,对敏感字符进行转义;
(3)在使用动态函数之前,确保使用的函数是指定的函数之一;
(4)对PHP语言来说,不能完全控制的危险函数最好不要使用。
9、反序列化漏洞
原因: 程序没有对用户输入的反序列化字符串进行检测,导致反序列化过程可以被恶意控制,进而造成代码执行、getshell等一系列安全问题。
危害:
(1)不安全的反序列化,主要造成的危害是远程代码执行;
(2)如果无法远程代码执行,也可能导致权限提升、任意文件读取、拒绝服务攻击等。
防御方式:
(1)应该尽量避免用户输入反序列化的参数;
(2)如果确实需要对不受信任的数据源进行反序列化,需要确保数据未被篡改,比如使用数字签名来检查数据的完整性;
(3)严格控制反序列化相关函数的参数,坚持用户所输入的信息都是不可靠的原则;
(4)对于反序列化后的变量内容进行检查,以确定内容没有被污染;
(5)做好代码审计相关工作,提高开发人员的安全意识。
10、组件未更新漏洞
原因: 组件未更新漏洞是指在应用程序或系统中使用了已知存在安全漏洞的第三方组件或库。攻击者可能利用组件的这些漏洞来对系统进行攻击与入侵。
修复方式:
(1)检查和更新:记录并评估组件并及时替换已知漏洞组件。
(2)监视漏洞:定期滚动使用组件,维护适当的升级计划,及时发现漏洞和补丁。
(3)安装新版本:下载和安装第三方组件的最新版本,通常这些版本都修复了之前版本的漏洞。
(4)代码审计:通过对组件源代码的分析和审核来检查是否存在其他漏洞,并为必要更新提供数据支持。
(5)网络隔离:可以使用网络隔离技术或虚拟容器来减少外部组件对应用程序或系统的影响。
11、未授权访问漏洞
**原因:**应用程序没有正确实施权限控制,过度宽松的文件和目录访问控制,或者允许攻击者访问并执行不应该被许可的敏感操作。
**修复方式:**修改应用程序代码,增加身份认证和权限控制机制、及时更改默认密码等。
相关文章:
网络安全常见漏洞类型总结
网络安全常见漏洞类型总结 1、弱口令 原因: 与个人习惯和安全意识相关,为了避免忘记密码,使用一个非常容易记住的密码,或者是直接采用系统的默认密码等。 危害: 通过弱口令,攻击者可以进入后台修改资料&a…...
C++自制小游戏《屠夫躲猫猫》
大家好,我是派蒙,我写了一个《屠夫躲猫猫》的游戏,下面是源代码: #include <stdio.h> #include <conio.h> #include<bits/stdc.h> #include<windows.h> using namespace std; string ID[1001]; string N…...
LabVIEW在高级结构监测中的创新应用
LabVIEW在高级结构监测中的创新应用 LabVIEW作为一个强大的系统设计平台,其在基于BOTDA(光时域反射分析)技术的结构监测中发挥着核心作用。利用LabVIEW的高效数据处理能力和友好的用户界面,开发了一个先进的监测系统。该系统专门…...
关于GitHub的git推送命令时报错密码授权失败问题
参考文章:https://cloud.tencent.com/developer/article/2362326?areaId106001 问题描述 当新建GitHub仓库后,通过git clone xxxx,命令克隆仓库到本地,想要提交修改内容,此时会报错443链接远程仓库失败,解…...
WPF Blend for visual studio使用
Blend for visual studio介绍 VS自带的Blend for visual studio是专门用来做WPF、Metro等的界面设计的可视化工具,其功能和PS类似。其目的让做界面和后台的程序分开,能快速绘制形状和路径、修改对象样式、动态显示对象(动画)、显示数据等高级操作。VS与B…...
云卷云舒:【实战篇】Redis迁移
1. 简介 Remote Dictionary Server(Redis)是一个由Salvatore Sanfilippo写的key-value存储系统,是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 2. 迁移原理 redis-sh…...
[C#]yolov8-onnx在winform部署手势识别模型
【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 YOLOv8 是一个 SOTA 模型,它建立在以前 YOLO 版本的成功基础上,并引入了新的功能和改进,以进一步提升性能和灵活性。具体创新包括一个新的骨干网络、一个新…...
【uniapp】 uniapp 修改tabBar图标大小和navigationBar字体大小
app.vue文件中修改 //导航栏字体 .uni-page-head .uni-page-head__title{font-size: 30rpx !important; } // tab图标 .uni-tabbar .uni-tabbar__icon {width: 25rpx !important;height: 25rpx !important; }大佬地址:https://blog.csdn.net/AAAXiaoApple/article/…...
Visual Studio 2017 + opencv4.6 + contribute + Cmake(Aruco配置版本)指南
之前配置过一次这个,想起这玩意就难受,贼难配置。由于要用到里面的一个库,不得已再进行配置。看网上的博客是真的难受,这写一块,那里写一块,乱七八糟,配置一顿发现写的都是错的,还得…...
自定义事件总线
文章目录 什么是自定义事件总线具体实现思路分析定义结构实现 on实现 emit实现 off 源码 什么是自定义事件总线 自定义事件总线属于一种观察着模式,其中包括三个角色发布者(Publisher):发出事件(Event)订阅…...
212.【2023年华为OD机试真题(C卷)】堆内存申请(排序和贪心算法-JavaPythonC++JS实现)
🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-堆内存申请二.解题思路三.题解代码Python题解代…...
Flink Watermark和时间语义
Flink 中的时间语义 时间语义: EventTime:事件创建时间;Ingestion Time:数据进入Flink的时间;Processing Time:执行操作算子的本地系统时间,与机器无关。不同的时间语义有不同的应用场合&#x…...
HarmonyOS UI框架简介
HarmonyOS UI框架介绍 HarmonyOSUI框架是一个用于构建跨设备应用的开发框架,它属于HarmonyOS系统架构的上层框架。该框架通过提供一系列的开发模型、声明式UI范式、系统API等,帮助开发者更高效地构建用户界面。 在HarmonyOSUI框架中,开发语…...
编程羔手解决Maven引入多个版本的依赖包,导致包冲突了
最近升级了些依赖发现有个hutool的方法老报错,java.lang.NoSuchMethodError: cn.hutool.core.util.ObjectUtil.defaultIfNull(Ljava/lang/Object;Ljava/util/function/Supplier;) 在 Maven 项目中,当不同的依赖模块引入 Hutool 的不同版本时,…...
C#,入门教程(08)——基本数据类型及使用的基础知识
上一篇: C#,入门教程(07)——软件项目的源文件与目录结构https://blog.csdn.net/beijinghorn/article/details/124139947 数据类型用于指定数据体(DataEntity,包括但不限于类或结构体的属性、变量、常量、函数返回值)…...
分类预测 | Matlab实现DBO-SVM蜣螂算法优化支持向量机多特征分类预测
分类预测 | Matlab实现DBO-SVM蜣螂算法优化支持向量机多特征分类预测 目录 分类预测 | Matlab实现DBO-SVM蜣螂算法优化支持向量机多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现DBO-SVM蜣螂算法优化支持向量机多特征分类预测(完整…...
计算机二级Python选择题考点——公共基础部分
计算机完成一条指令所花费的时间称为一个指令周期。(指令周期越短,指令执行就越快)顺序程序不具有并发性。(具有顺序性、封闭性和可再现性)结构化程序设计强调程序的易读性。系统软件:操作系统、编译程序、数据库管理系统 应用软件:杀毒软件在…...
《微机原理与应用》期末考试题库(附答案解析)
第1章 微型计算机概述 1.微型计算机的硬件系统包括___A _____。 A.控制器、运算器、存储器和输入输出设备 B.控制器、主机、键盘和显示器 C.主机、电源、CPU和输入输出 D.CPU、键盘、显示器和打印机 2.微处…...
如何在Android Glide中结合使用CenterCrop和自定义圆角变换(图片部分圆角矩形)
如何在Android Glide中结合使用CenterCrop和自定义圆角变换(图片部分圆角矩形) 在Android开发中,使用Glide加载图片时,我们经常需要对图片进行特定的处理,比如裁剪和圆角变换,特别是一些设计稿,…...
华为机考-手拍球游戏
【手拍手计算次数和总数】游戏规则:左手和右手拍球初始数为0,首先左手第一次拍球数1下,右手拍球1下,接下来左手在拍球时是上一次左手上一次右手的总和,右手也是上一次左手上一次右手拍球的总和,最后拍球总数…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
