Web安全-攻击

150 阅读2分钟

攻击

XSS

XSS是指攻击者利用站点的漏洞,在表单提交时,在表单内容中加入一些恶意脚本,当其他正常用户浏览页面,而页面中刚好出现攻击者的恶意脚本时,脚本被执行,从而使得页面遭到破坏,或者用户信息被窃取。

XSS特点:

-通常难以从UI上感知(暗地执行脚本) -窃取用户信息(cookie/token) -绘制UI(例如弹窗),诱骗用户点击/填写表单

XSS防御方式:

服务器端对用户提交的内容进行过滤或编码

  • 过滤:去掉一些危险的标签,去掉一些危险的属性
  • 编码:对危险的标签进行HTML实体编码

XSS分类

存储型XSS

Stored XSS:

会被存到数据库中

-把恶意意脚本被存在数据中 -访问页面 → 读数据≡≡被攻击 -危害最大,对全部用户可见

反射型XSS攻击

Reflected XSS :

-不涉及数据库 -从URL上攻击

基于DOM的XSS攻击

DOM-based XSS:

一不需要服务器的参与 一恶意攻击的发起+执行,全在浏览器完成

Reflected 和DOM-basedXSS的对比

对比.jpg

基于Mutation的XSS攻击

Mutation-based XSS

-利用了浏览器渲染DOM的特性(独特优化) -不同浏览器,会有区别(按浏览器进行攻击)

跨站伪造请求

Cross-site requestforgery(CSRF): 它是指攻击者利用了用户的身份信息,执行了用户非本意的操作

一在用户不知情的前提下 一利用用户权限(cookie) 一构造指定HTTP请求,窃取或修改用户敏感信息

CSRF举例: CSRF举例.jpg

防御方式:

防御手段防御力问题
不使用cookie⭐️⭐️⭐️⭐️⭐️兼容性略差
ssr会遇到困难,但可解决
使用sameSite⭐️⭐️⭐️⭐️兼容性差
容易挡住自己人
使用csrf token⭐️⭐️⭐️⭐️⭐️获取到token后未进行操作仍然会被攻击
使用referer防护⭐️⭐️过去很常用,现在已经发现漏洞

注入攻击

SQL Injection :

SQL Injection.jpg

服务拒绝

Denial of Service(DoS):

通过某种方式(构造特定请求),导致服务器资源被显著消耗, 来不及响应更多请求,导致请求挤压,进而雪崩效应。

1)ReDoS:基于正则表达式的DoS

ReDoS.jpg

2)Distributed DoS(DDoS)分布式拒绝服务:

短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成 全部请求,导致请求堆积,进而雪崩效应,无法响应新请求。主要目的是消耗带宽

-耗时的同步操作 -数据库写入

-SQL join -文件备份 -循环执行逻辑

传输层攻击-中间人攻击

①明文传输 ②信息篡改不可知 ③对方身份未验证

中间人攻击.jpg