网络安全常见十大漏洞总结(原理、危害、防御)

一、弱口令【文末福利】

产生原因

与个人习惯和安全意识相关,为了避免忘记密码,使用一个非常容易记住 的密码,或者是直接采用系统的默认密码等。

危害

通过弱口令,攻击者可以进入后台修改资料,进入金融系统盗取钱财,进入OA系统可以获取企业内部资料,进入监控系统可以进行实时监控等等。

防御

设置密码通常遵循以下原则:

(1)不使用空口令或系统缺省的口令,为典型的弱口令;

(2)口令长度不小于8 个字符;

(3)口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.)。

(4)口令应该为以下四类字符的组合:大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只 包含一个,那么该字符不应为首字符或尾字符。

(5)口令中不应包含特殊内容:如本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail 地址等等与本人有关 的信息,以及字典中的单词。

(6)口令不应该为用数字或符号代替某些字母的单词。

(7)口令应该易记且可以快速输入,防止他人从你身后看到你的输入。

(8)至少90 天内更换一次口令,防止未被发现的入侵者继续使用该口令。

二、SQL注入
产生原因

当Web应用向后台数据库传递SQL语句进行数据库操作时。如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句,直接输入数据库引擎执行,获取或 修改数据库中的数据。

本质

把用户输入的数据当做代码来执行,违背了 “数据与代码分离”的原则。

SQL注入的两个关键点:

1、用户能控制输入的内容;

2、Web应用把用户输入的内容带入到数据库中执行;

危害
  • 盗取网站的敏感信息
  • 绕过网站后台认证
  • 后台登陆语句:SELECT*FROMadminWHEREUsername='user’andPassword=‘pass’
  • 万能密码:‘or‘1’=‘1’#
  • 借助SQL注入漏洞提权获取系统权限
  • 读取文件信
防御

(1)采用sql语句预编译和绑定变量 #{name}

其原因就是:采用了PrepareStatement,就会将SQL语句:“select id,name from user where id=?”预先编译好,也就是SQL引擎会预先进行语法分析,产生语法树,生成执行计划,也就是说,后面你输入的参数,无论你输入的是什么,都不会影响该SQL语句的语法结构了。因为语法分析已经完成了,而语法分析主要是分析SQL命令,比如:select、from、where、and、or、order by等等。

所以即使你后面输入了这些SQL命令,也不会被当成SQL命令来执行了,因为这些SQL命令的执行,必须先通过语法分析,生成执行计划,既然语法分析已经完成,已经预编译过了,那么后面输入的参数,是绝对不可能作为SQL命令来执行的,只会被当成字符串字面值参数。

(2)使用正则表达式过滤传入的参数

(3)过滤字符串,如insert、select、update、and、or等

三、文件上传
原理

在文件上传的功能处,若服务端未对上传的文件进行严格验证和过滤,导致攻击者上传恶意的脚本文件时,就有可能获取执行服务端命令的能力,称为文件上传漏洞。

成因
  • 服务器的错误配置
  • 开源编码器漏洞
  • 本地上传上限制不严格被绕过
  • 服务器端过滤不严格被绕过
危害
  • 上传恶意文件
  • getshell
  • 控制服务器
绕过方式

防御
  • 白名单判断文件后缀是否合法
  • 文件上传的目录设置为不可执行
  • 判断文件类型
  • 使用随机数改写文件名和文件路径
  • 单独设置文件服务器的域名
  • 使用安全设备防御
四、XSS(跨站脚本攻击)
原理

**XSS(Cross Site Scripting):**跨站脚本攻击,为了不和层叠样式表(Cascading Style Sheets)的缩写CSS混合,所以改名为XSS

**XSS原理:**攻击者在网页中嵌入客户端脚本(通常是JavaScript的恶意脚本),当用户使用浏览器加载被嵌入恶意代码的网页时,恶意脚本代码就会在用户的浏览器执行,造成跨站脚本的攻击

危害
  • 盗取Cookie
  • 网络钓鱼
  • 植马挖矿
  • 刷流量
  • 劫持后台
  • 篡改页面
  • 内网扫描
  • 制造蠕虫等
防御
  • 对用户的输入进行合理验证
  • 对特殊字符(如 <、>、 ’ 、 ”等)以及
五、CSRF(跨站请求伪造 )
原理

CSRF(Cross-Site Request Forgery),中文名称:跨站请求伪造 原理:攻击者利用目标用户的身份,执行某些非法的操作 跨站点的请求:请求的来源可以是非本站 请求是伪造的:请求的发出不是用户的本意。

危害
  • 篡改目标站点上的用户数据
  • 盗取用户隐私数据
  • 作为其他攻击的辅助攻击手法
  • 传播 CSRF 蠕虫
防御
  • 检查HTTP Referer是否是同域
  • 限制Session Cookie的生命周期,减少被攻击的概率
  • 使用验证码
  • 使用一次性token
六、SSRF(服务器端请求伪造)
原理

SSRF(Server-Side Request Forgery):服务器端请求伪造,该漏洞通常由攻击者构造的请求传递给服务端,服务器端对传回的请求未作特殊处理直接执行而造成的。

危害
  • 扫描内网(主机、端口)
  • 向内部任意主机的任意端口发送精心构造的payload
  • 攻击内网的Web应用
  • 读取任意文件
  • 拒绝服务攻击
防御
  • 统一错误信息,避免用户根据错误信息来判断远程服务器的端口状态
  • 限制请求的端口为http的常用端口,比如:80、443、8080等
  • 禁用不需要的协议,仅允许http和https
  • 根据请求需求,可以将特定域名加入白名单,拒绝白名单之外的请求
  • 后台代码对请求来源进行验证
七、XXE(XML外部实体注入)
原理

XXE漏洞全称为 XML External Entity Injection,即XML外部实体注入。

XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载, 导致用户可以控制外部的加载文件,造成XXE漏洞。

危害
  • 任意文件读取
  • 内网端口探测
  • 拒绝服务攻击
  • 钓鱼
防御

1、使用开发语言提供的禁用外部实体的方法

  • PHP:

libxml_disable_entity_loader(true);

  • java

DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance(); dbf.setExpandEntityReferences(false);

  • Python:

from lxml import etree xmlData = etree.parse(xmlSource,etree.XMLParser(resolve_entities=False))

2、过滤用户提交的XML数据

过滤关键词:<!DOCTYPE、<!ENTITY SYSTEM、PUBLIC

RCE

RCE(Remot Command/Code Execute),远程命令/代码执行

远程命令执行:用户可以控制系统命令执行函数的参数,也称命令注入

远程代码执行:用户输入的参数可以作为代码执行,也称代码注入

命令执行可以看作是一种特殊的代码执行,代码执行相对会更加灵活

八、远程代码执行漏洞
原理

应用程序中有时会调用一些系统命令函数,比如php中使用system、exec、shell_exec等 函数可以执行系统命令,当攻击者可以控制这些函数中的参数时,就可以将恶意命令拼接 到正常命令中,从而造成命令执行攻击。

命令执行漏洞,属于高危漏洞之一,也可以算是一种特殊的代码执行

原因
  • 用户可以控制输入的内容
  • 用户输入的内容被当作命令执行
防御方式

尽量不要使用命令执行函数

客户端提交的变量在进入执行命令函数方法之前,一定要做好过 滤,对敏感字符进行转义

在使用动态函数之前,确保使用的函数是指定的函数之一

对PHP语言来说,不能完全控制的危险函数最好不要使用

九、反序列化漏洞
原理

原因是程序没有对用户输入的反序列化字符串进行检测,导致反序列化过程可以被恶意控制,进而造成代码执行、getshell等一系列安全问题。

危害
  • 不安全的反序列化,主要造成的危害是远程代码执行
  • 如果无法远程代码执行,也可能导致权限提升、任意文件读取、拒绝服务攻击等
防御方式
  • 应该尽量避免用户输入反序列化的参数
  • 如果确实需要对不受信任的数据源进行反序列化,需要确保数据未被篡改,比如使用数字签名来检查数据的完整性
  • 严格控制反序列化相关函数的参数,坚持用户所输入的信息都是不可靠的原则
  • 对于反序列化后的变量内容进行检查,以确定内容没有被污染
  • 做好代码审计相关工作,提高开发人员的安全意识

最后

接下来我将给各位同学划分一张学习计划表!

学习计划

那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:

阶段一:初级网络安全工程师

接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。

综合薪资区间6k~15k

1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?

阶段二:中级or高级网络安全工程师(看自己能力)

综合薪资区间15k~30k

7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。

零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;

Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完

用Python编写漏洞的exp,然后写一个简单的网络爬虫

PHP基本语法学习并书写一个简单的博客系统

熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)

了解Bootstrap的布局或者CSS。

阶段三:顶级网络安全工程师

学习资料分享

当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份完整版的网络安全(客)全套学习资料已经上传至CSDN官方,朋友们如果需要点击下方链接也可扫描下方微信二v码获取网络工程师全套资料【保证100%免费】
在这里插入图片描述

如果你对网络安全入门感兴趣,那么你点击这里👉CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

  • 21
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网络安全与管理   论文关键字:网络安全管理网络发展网络现状   一绪论安全管理的发展趋势和现状   1、网络安全现状计算机网络的广泛应用是当今信息社会的一场革命。电子商务和电子政务等网络应用的发展和普及不仅给我们的生活带来了很大的便利,而且正在创造着巨大的财富,以Internet为代表的全球性信息化浪潮日益深刻,信息网络技术的应用正日益普及和广泛,应用层次不断深入,应用领域更是从传统的、小型业务系统逐渐向大型、关键业务系统扩展。与此同时,计算机网络也正面临着日益剧增的安全威胁。广为网络用户所知的黑客行为和攻击活动正以每年10倍的速度增长,网页被修改、非法进入主机、发送假冒电子邮件、进入银行系统盗取和转移资金、窃取信息等网络攻击事件此起彼伏。计算机病毒、特洛伊木马、拒绝服务攻击、电子商务入侵和盗窃等,都造成了各种危害,包括机密数据被篡改和窃娶网站页面被修改或丑化、网络瘫痪等。网络与信息安全问题日益突出,已经成为影响国家安全、社会稳定和人民生活的大事,发展与现有网络技术相对应的网络安全技术,保障网络安全、有序和有效的运行,是保证互联网高效、有序应用的关键之一。 网络安全与管理全文共7页,当前为第1页。  2、现有网络安全技术计算机网络是基于网络可识别的网络协议基础之上的各种网络应用的完整组合,协议本身和应用都有可能存在问题,网络安全问题包括网络所使用的协议的设计问题,也包括协议和应用的软件实现问题,当然还包括了人为的因素以及系统管理失误等网络安全问题,下表示意说明了这些方面的网络安全问题。问题类型问题点问题描述协议设计安全问题被忽视制定协议之时,通常首先强调功能性,而安全性问题则是到最后一刻、甚或不列入考虑范围。其它基础协议问题架构在其他不穏固基础协议之上的协议,即使本身再完善也会有很多问题。流程问题设计协议时,对各种可能出现的流程问题考虑不够周全,导致发生状况时,系统处理方式不当。设计错误协议设计错误,导致系统服务容易失效或招受攻击。软件设计设计错误协议规划正确,但协议设计时发生错误,或设计人员对协议的认知错误,导致各种安全漏洞。程序错误程序撰写习惯不良导致很多安全漏洞,包含常见的未检查资料长度内容、输入资料容错能力不足、未检测可能发生的错误、应用环境的假设错误、引用不当模块、未检测资源不足等。人员操作操作失误操作规范严格且完善,但是操作人员未受过良好训练、或未按手册操作,导致各种安全漏洞安全隐患。系统维护默认值不安全软件或操作系统的预设设置不科学,导致缺省设置下系统处于不安全的状况下。容易遭受病毒、蠕虫、特洛依木马等的攻击。未修补系统软件和操作系统的各种补丁程序没有及时修复。内部安全问题对由信任系统和网络发起的各种攻击防范不够。信任领域存在的不安全系统,成为不信任领域内系统攻击信任领域的各种跳板。针对上表所示的各种网络安全问题,全世界的网络安全厂商都试图发展了各种安全技术来防范这些问题,这些技术包括访问控制技术、识别和鉴别技术、密码技术、完整性控制技术、审计和恢复技术、防火墙系统、计算机病毒防护、操作系统安全数据库系统安全和抗抵赖协议等,相继陆续推出了包括防火墙、入侵检测(IDS)、防病毒软件、A系统、加密算法等在内的各类网络安全软件,这些技术和安全系统(软件)对网络系统提供了一定的安全防范,一定程度上解决了网络安全问题某一方面的问题。 网络安全与管理全文共7页,当前为第1页。 网络安全与管理全文共7页,当前为第2页。  3、现有网络安全技术的缺陷现有的各种网络安全技术都是针对网络安全问题的某一个或几个方面来设计的,它只能相应地在一定程度上解决这一个或几个方面的网络安全问题,无法防范和解决其他的问题,更不可能提供对整个网络的系统、有效的保护。如身份认证和访问控制技术只能解决确认网络用户身份的问题,但却无法防止确认的用户之间传递的信息是否安全的问题,而计算机病毒防范技术只能防范计算机病毒对网络和系统的危害,但却无法识别和确认网络上用户的身份等等。现有的各种网络安全技术中,防火墙技术可以在一定程度上解决一些网络安全问题。防火墙产品主要包括包过滤防火墙,状态检测包过滤防火墙和应用层代理防火墙,但是防火墙产品存在着局限性。其最大的局限性就是防火墙自身不能保证其准许放行的数据是否安全。同时,防火墙还存在着一些弱点:一、不能防御来自内部的攻击:来自内部的攻击者是从网络内部发起攻击的,他们的攻击行为不通过防火墙,而防火墙只是隔离内部网与因特网上的主机,监控内部网和因特网之间的通信,而对内部网上的情况不作检查,因而对内部的攻击无能为力;二、不能防御绕过防火墙的攻击行为:从根本上讲,防火墙是一种被动的防御手段,只能守株待兔式地对通过它的数据报进行检查,如果该数据由于某种原因没有通过防火墙,则防火墙就不会采取任何的措施;三、不能防御完全新的

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值