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

103 阅读6分钟

一些我们经常听到的安全事件

数据泄漏
X 国公共卫生系统公布了一起大规模数据泄露事件,超130万人受到该事件影响。入侵网站的黑客可获取到病人的个人信息,其中包括病人的出生日期、家庭住址等。
服务瘫痪
某老牌航空公司因遭黑客攻击,官网出现技术性故障,整个系统突然朋渍中断。当天几乎所有航班均被延误,后续超188个航班受到影响。
成果失窃
某芯片制造巨头被爆遭到勒索软件攻击,入侵者成功访问并在线泄露了员工私密信息及登录数据,黑客宜称可以访问1TB的企业数据。
系统劫持
某国导弹袭击警报响彻云弯,持续了几乎一个小时,疑为网络攻击引发的误报.

一个网站的基本构成

image.png

网站攻击者及意图

政治目的: 出于政治目的实施黑客攻击。可能涉及窃取关键系统的机密数据、破坏关键系统正常运行
经济目的: 网站数据具有很高的经济价值,攻击者通过网站漏洞违法获取数据并进行售卖。
竞争目的: 同类厂商之间可能由于竞争原因,对竞品网站进行一些攻击,以达到让对方站点无法运行的目的
炫技、泄愤: 用攻击对方网站方式彰显自己的技术实力,或者对某些仇恨的系统发起攻击

以下我们将分为两个派别去对网络安全进行进一步了解

蓝队:反向验证企业内部安全现状,以攻促防

红队:系统建设时候帮助企业提前规避漏洞

xss漏洞

xss漏洞全称跨站脚本攻击漏洞 cross-site scripting css 由于css代指html样式表,为了避免重复,将c写作x 简称xss

跨站脚本(XSS) 攻击: 本质是一种 Script 代码注入,攻击者往目标 Web 页面里插入恶意 Script代码,当用户访问页面 (有客户端时需要交互时,嵌入其中 Web 里面的 Script 代码会被执行从而达到恶意攻击用户的目的。场景: 反射型,存储型,Dom型危害: 通常的危害包括窃取用户敏感信息,以用户身份执行敏感操作。 \

防护方法:

防护方法:

  1. 输入过滤:对输入的特殊字符进行拦截,禁止前端提交特殊字符
  2. 输出过滤:
    a.当字符输出到Dom时候,对危险字符进行html encode,避免XSS.
    b.使用vue/react等框架时候,避免使用危险指令,而应该使用安全指令。v-html/v-text

3.富文本场景:比如文章发布场景,本身是需要提供富文本功能,这时候需要严格限制tag和attribute,可以在代码层面做白名单或者黑名单。
4.CSP: 用于缓解XSS,理念是对当前站点允许加载什么源的资源、发送什么请求能进行限制Content-Security-Policy: default-src 'self, img-src *; media-src example.org example.net;script-src userscripts.example.com

Sql注入

SQL注入漏洞是一种常见的网络安全漏洞,它允许攻击者通过恶意构造的输入来修改、删除或获取数据库中的数据。它发生的根本原因是不正确地处理用户输入,使得恶意的SQL代码被执行。
通常,当应用程序与数据库交互时,会构建SQL查询语句来执行数据库操作。正常情况下,开发人员会预先定义好SQL语句的结构和参数,并对用户输入进行验证和转义,以防止恶意输入的影响。但是,如果应用程序未正确实施这些安全措施,攻击者可以利用这个漏洞。

SQL注入漏洞的攻击方法一般包括以下几个步骤:

  1. 攻击者找到一个存在SQL注入漏洞的应用程序,并了解到它接受用户输入并构造SQL查询。
  2. 攻击者通过注入恶意的SQL代码来干扰原始查询的结构,使得它执行附加的恶意操作。
  3. 攻击者将恶意的SQL代码插入到用户输入中,以绕过应用程序对用户输入的验证和转义。
  4. 当应用程序将用户输入直接拼接到SQL查询语句中时,恶意的SQL代码会被执行。这可以导致数据库数据被修改、删除、或者查询结果中包含未授权的敏感信息。
  5. 攻击者利用注入的SQL语句执行任意恶意命令,如获取管理员权限、执行其他操作等。


为了防止SQL注入漏洞,开发人员应当采取以下安全措施:

  1. 使用参数化查询(Prepared Statements)或存储过程(Stored Procedures)来构建SQL查询,而不是直接拼接用户输入。

  2. 对用户输入进行严格的验证和过滤,过滤掉非法字符和恶意代码。

  3. 使用安全的编程语言和框架,这些工具可以自动处理输入验证和转义。

  4. 实施权限控制,确保用户只能访问其需要的数据和操作。

  5. 定期更新和维护数据库和应用程序,以修复已知的安全漏洞。\

命令执行

攻击者通过该漏洞可以在受影响的系统上执行恶意的操作系统命令。这种漏洞存在的根本原因是开发人员未能正确验证和过滤用户输入,并把用户输入作为命令的一部分直接传递给操作系统执行。

命令执行漏洞可以用于执行各种攻击,包括但不限于以下几种:

  1. 远程命令执行:攻击者可以通过命令执行漏洞远程执行操作系统命令,例如获取敏感文件、修改系统配置、创建用户等。
  2. 代码注入:攻击者可以通过命令执行漏洞将恶意代码注入到受影响的应用程序中,从而获得对应用程序的控制权。
  3. 提权攻击:攻击者可以利用命令执行漏洞提升其在受感染系统中的权限,从而执行更高级的攻击行为。
    \

防护方式:

1.对动态的值尽可能设置白名单进行验证,如果某些位置无法白名单,需要尝试对数据类型进行校验
2.特殊字符黑单的过滤,或者转义。

漏洞的分类

image.png

总结 /注意事项

《中华人民共和国网络安全法》

网站运营者: 网络运营者应当采取技术措施和其他必要措施,确保其收集的个人信息安全,防止信息泄露、毁损、丢失。在发生或者可能发生个人信息泄露、毁损、丢失的情况时,应当立即采取补救措施,按照规定及时告知用户并向有关主管部门报告。
组织/个人: 任何个人和组织不得窃取或者以其他非法方式获取个人信息,不得非法出售或者非法向他人提供个人信息。