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

155 阅读6分钟

一、网站的基本组成和漏洞定义

1.1 一个网站的基本构成

  1. 前端:JavaScript/vue/react
  2. 网关:nginx
  3. 后端:Go/Java/Node
  4. 前后端交互:HTTP/WebSocket

1.2 常见的安全事件

  • 数据泄露:黑客入侵窃取数据
  • 服务瘫痪:整个系统突然崩溃,无法正常提供服务
  • 成果失窃:入侵者窃取数据
  • 系统劫持

1.3 漏洞的分类

  1. 服务器漏洞:SQL,RCE/命令注入,SSRF,文件上传等
  2. 客户端漏洞:XSS,CSRF,点击劫持等

二、服务端的漏洞

2.1 定义

服务端漏洞是在服务器端应用程序上存在的漏洞。这些漏洞可能允许攻击者执行未经授权的操作,如读取敏感数据、篡改数据、删除文件或完全控制服务器。

2.2 常见的服务端漏洞

  1. 文件上传漏洞:这种漏洞允许攻击者通过上传包含恶意代码的文件来利用服务器。文件上传漏洞通常是由于服务器未对上传的文件进行严格的验证和过滤。攻击者可以利用此漏洞将恶意文件上传到服务器,并执行其中的恶意代码。
  2. SQL注入漏洞:该漏洞允许攻击者在应用程序的输入字段中输入恶意SQL代码,以影响数据库的查询行为。攻击者可以通过注入恶意SQL代码来读取、修改或删除数据库中的数据,甚至完全控制数据库。
  3. XSS(跨站脚本)漏洞:XSS漏洞允许攻击者在应用程序的输出中注入恶意脚本,当其他用户访问该输出时,脚本将在用户浏览器中执行。这可以用于窃取用户的敏感数据、修改网页内容或执行其他恶意操作。
  4. CSRF(跨站请求伪造)漏洞:该漏洞允许攻击者在受害者的浏览器中伪造请求,以执行未经授权的操作。攻击者可以通过诱使受害者点击一个包含恶意请求的链接或图片来利用此漏洞。
  5. 服务端请求伪造(SSRF)漏洞:该漏洞允许攻击者构造一个请求,使服务器向内部系统发起请求,从而获取敏感数据或进行其他恶意操作。

2.3 漏洞分析

  1. 第三方组件漏洞:
  • 通过解释json,使服务器中毒。
  • 防护方式:针对java可以选择使用dependency—check—maven检查项目以来的组件是否存在安全漏洞。
  1. SQL注入:
  • SQL语句静态模块和动态数据部分没有严格的区分,如果在数据项中加入某些SQL语句关键字,这些SQL语句就很可能在数据库写入或读取数据时得到执行。
  • 错误使用语言框架,或者语言框架本身存在安全问题,使用Mybatis—plus的危险系数,比如inSql,直接支持SQL拼接,存在SQL注入风险。

三、客户端的漏洞

3.1 常见的客户端漏洞

  1. SQL注入:这种漏洞的发生是因为网站程序没有对用户输入的数据进行适当的过滤和验证,导致恶意用户可以构造一些SQL语句,让服务器执行,从而获取数据库中的数据,或者对数据库进行篡改或删除操作。
  2. XSS(跨站脚本攻击):这种漏洞的发生是因为网站程序没有对用户输入的数据进行适当的过滤和转义,导致恶意用户可以在网页中嵌入恶意脚本,当其他用户访问该网页时,这些脚本会在用户的浏览器中执行,从而窃取用户的个人信息或者执行其他恶意操作。
  3. 越权漏洞:这种漏洞的发生是因为应用程序在实现授权功能时没有正确地限制用户的权限,导致用户可以执行其没有资格执行的操作,比如查看或修改其他用户的资源。
  4. 客户端密钥泄露:OAuth客户端有几种数据需要保护,包括客户端密钥、访问令牌、刷新令牌等,如果这些信息被泄露,攻击者就可以获取应用程序的权限。
  5. CSRF(跨站请求伪造):这种漏洞的发生是因为网站程序没有对用户提交的请求进行适当的验证,导致恶意用户可以利用该漏洞向已完成用户身份认证的网站发起请求,执行有害操作,比如修改用户数据或者盗取用户信息。

总结

学习网站常见安全漏洞课程后,我深刻认识到了网络安全的重要性。在这门课程中,我学习了多种常见的网站安全漏洞和攻击技术,包括SQL注入、XSS、越权漏洞、客户端密钥泄露以及CSRF等。

通过学习,我了解到这些漏洞的产生原因、危害性以及如何防范和修复。这不仅让我掌握了网络安全的基本知识和技能,更让我意识到网络安全对于个人、组织乃至整个社会的重要性。

在学习过程中,我不仅了解了攻击者如何利用漏洞进行攻击,同时也学习了如何进行安全设计和防范。这让我明白了安全不仅是一种技术,更是一种思想和意识。在实际工作和生活中,我们需要时刻保持警惕,遵循安全原则,采取必要的安全措施,以保障个人和组织的信息安全。

此外,这门课程还让我认识到网络安全是一个高度复杂的领域,需要不断学习和更新知识。随着技术的不断发展和新攻击手段的出现,我们必须保持敏锐的洞察力和灵活的应变能力,以便及时应对新的安全挑战。

总之,学习网站常见安全漏洞课程使我更加深入地理解了网络安全的基本知识和技能。我明白了网络安全不仅是技术问题,更是一种责任和义务。在未来的工作和生活中,我将时刻保持警惕,增强安全意识,为保障个人和组织的信息安全贡献自己的力量。