CSRF SSRF XSS三者之间的区别及其流量

本文详细解释了XSS(包括反射型、存储型和DOM型)、CSRF以及SSRF的攻击原理、危害、流量特征和防御方法。强调了服务器对用户输入的过滤和验证在防止这些攻击中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.XSS 跨站脚本攻击

XSS攻击的危害:

如何验证是否存在XSS漏洞?

XSS的流量分析:

XSS防御手段:

2.CSRF 跨站请求伪造攻击

CSRF的流量:

CSRF的防御:

SSRF 服务器端请求伪造

SSRF产生的原因:

XSS CSRF SSRF三者的区别:


1.XSS 跨站脚本攻击

XSS产生的原因:

  • Web应用对用户输入过滤不严谨
  • 攻击者写入恶意的脚本代码到网页中
  • 用户访问了含有恶意代码的网页
  • 恶意脚本就会被浏览器解析执行并导致用户被攻击

XSS的类型:

  • 反射型XSS
    • 非持久性跨站脚本的攻击
    • 攻击是一次性的,仅对当前的网站产生影响,不会存储到服务器
    • 攻击方式:攻击者将恶意脚本作为参数包含在URL中,当用户点击包含这些参数的链接时,恶意脚本就会被执行。
  • 存储型XSS
    • 持久性跨站脚本攻击
    • 攻击者把恶意代码存储在服务器上,攻击行为一直存在
    • 攻击方式:攻击者将恶意脚本存储到网站数据库中,当用户访问包含这些恶意脚本的页面时,就会触发XSS攻击
  • DOM型XSS
    • 既可能是反射型的,也有可能是存储型的
    • 基于文档对象模型的漏洞
    • 攻击方式:攻击者利用前端JavaScript对DOM进行操作的特性,通过修改DOM元素内容来执行恶意代码。

XSS攻击的危害:

  1. 盗取各类用户账号
  2. 控制企业数据
  3. 非法转账
  4. 网站挂马
  5. 控制受害者机器向其他网站发起攻击

如何验证是否存在XSS漏洞?

  1. 找到输入位置,比如输入框
  2. 找到输出位置(输入的代码在网页的那个位置进行了输出)
  3. 构造payload

XSS的流量分析:

  • 返回包中和请求包中返回相同的攻击语句
  • 返回包中的攻击语句仍包裹着script等标签
  • 返回包中的攻击语句未转译

三者均满足 表明xss注入成功

XSS防御手段:

  1. 输入过滤
  2. 输出编码
  3. 内容安全策略
  4. 黑白名单

2.CSRF 跨站请求伪造攻击

攻击原理:攻击者利用你的身份,以你的名义发送恶意请求

CSRF产生的原因:通常由于服务器没有对请求头做严格的过滤引起的。

CSRF攻击的两个条件:

  1. 登录受信任的网站A,并在本地产生了Cookie
  2. 在不退出A的情况下,访问了危险的网站B

CSRF的流量:

  • 从请求头中的Referer字段,判断请求是否从其它网站跳转而来
  • 观察请求中是否存在CSRF Token中

CSRF的防御:

  1. 验证 HTTP Referer 字段

  2. 增加 token并验证

  3. 在 HTTP 头中自定义属性并验证

危害:

  • 执行未授权操作
  • 盗取用户信息
  • 篡改用户数据
  • 利用用户权限
  • 影响网站功能

SSRF 服务器端请求伪造

SSRF产生的原因:

服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制

SSRF漏洞场景:

  • 分享
  • 转码
  • 在线翻译
  • 图片加载,下载
  • 图片,文章收藏
  • 未公开的API

URL中的关键字:

  • share
  • wap
  • url
  • link
  • src
  • source
  • target
  • u
  • 3g
  • dispaly
  • sourceURL
  • imageURL
  • domain

危害:

1.服务探测

2.协议

3.访问敏感数据

4.内网探测

SSRF的流量:

        在HTTP请求包中看见一些携带内层请求的流量 

XSS CSRF SSRF三者的区别:


XSS:XSS与js代码有关,攻击者或受害者去触发,是服务器对用户输入数据没有进行严格的过滤,导致客户端浏览器在渲染服务器返回的html页面时,出现了预期值之外的脚本语句执行

CSRF:客户端发出请求,受害者触发,服务端没有对用户提交的数据进行严格的校验,导致攻击者可以利用用户的Cookie信息伪造用户请求发送至服务器

SSRF:服务端发起请求,SSRF是服务器对用户提供的可控URL过于信任,没有对攻击者提供的URL进行地址的限制和严格的检测,导致攻击者可以以此为跳板机攻击内网

### XSSCSRFSSRF安全漏洞对比 #### 跨站脚本攻击 (XSS) 跨站脚本攻击是指当Web应用程序对用户输入的数据未做充分验证或转义时,允许攻击者将恶意脚本注入到网页中。这些脚本会在其他用户的浏览器上执行,从而窃取敏感数据、会话令牌或是实施钓鱼攻击等行为[^3]。 例如,在一个存在反射型XSS漏洞的应用程序里: ```javascript // 用户提交了一个带有JavaScript代码的查询参数 ?search=<script>alert('XSS')</script> ``` 如果该应用直接回显此输入而不加处理,则任何访问含有上述链接的人都会被弹窗警告框打扰。 #### 跨站请求伪造 (CSRF) 跨站请求伪造涉及诱导已认证过的受害者无意间发起由攻击者精心构造的操作指令给目标服务端。这是因为大多数HTTP请求都会自动附带存储于浏览器中的凭证信息(比如Cookies),即使是在非预期的情况下发出的请求也不例外。因此,只要能诱骗合法用户点击特定链接或者加载某个图片资源就可能触发一次成功的CSRF攻击[^1]。 考虑这样一个场景——银行转账功能页面没有采用有效的防护措施防止CSRF: ```html <!-- 攻击者的恶意网站 --> <img src="https://bank.example.com/transfer?to=attacker&amount=1000" /> ``` 一旦已经登录过网上银行系统的客户浏览到了这个图像标签所在的HTML文档,就会立即向其开户行发送一笔金额为一千元人民币的资金转移命令。 #### 服务器端请求伪造 (SSRF) 服务器端请求伪造指的是应用程序接受并转发来自客户端指定位置的内容读取请求,而未能对外部可控制部分加以适当审查便予以响应的行为模式。这种缺陷使得远程对手能够借助受害主机作为中介绕开防火墙限制进而探测内部网络结构甚至发动进一步侵害活动[^2]。 设想某API接口允许上传文件的同时也支持自定义下载源地址选项却没有设置白名单机制的话, ```python import requests def fetch_remote_file(url): response = requests.get(url) # 缺乏必要的安全性检查 with open('/tmp/fetched', 'wb') as f: f.write(response.content) ``` 此时,调用方完全可以传入私有IP段内的路径致使后端机器尝试建立连接最终造成潜在危害。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值