别再对XSS模糊了,一文搞懂!

前言

对于XSS的文章都多多少少看过一些,但是老是记不住或者说分不清,我梳理了一下XSS的几种常见类型,归纳总结一下,方便以后回顾复习。

分类

XSS攻击,总的来说,区分为三大类

  1. 反射型
  2. 持久型
  3. DOM型

反射型

在一个网页中,只要有input框可以让用户输入信息,并且把输入的信息随后呈现在页面上,那么这种情况,就可能会被注入反射型XSS,比如在掘金的搜索栏 搜索1in

我们搜索的1in就会呈现在网页中的搜索栏中,这个时候就可以被注入XSS反射型,黑客一旦输入用script标签包裹的恶意代码,就会执行,大家不要轻易去尝试这样做,尤其是B站,不但会被过滤搜索,频繁尝试可能会被封号。。

持久型

所谓的持久型,就是将黑客所注入的恶意代码保存到数据库中,并且给网站的每一个访问者展示(执行),怎么理解呢?就是说,一个文本需要展示给每一个用户,而且这些文本是保存在数据库中的,且这些文本是用户所填写的,常见的就是评论区这种,一旦黑客在评论区中插入script标签中包裹的恶意代码,如果没有被过滤,就会保存在数据库中,随后展示给每一个用户,导致每一个用户都会执行恶意代码。这也算是危害性最大的XSS攻击了。

DOM型

DOM型就不是很好理解了,我举一个例子,就很好理解了,有些网站开发时,展示图片的时候,会从浏览器的url中获取params参数,获取到的params参数会赋给img标签中的src,拼接成对应的图片地址,这种可能就会被注入DOM型XSS,一旦黑客修改params参数,用分号 ' 结束scr的拼接,这个时候图片寻不到正确地址,就会报错,这个时候就会触发onerror事件,所以黑客就可以利用onerror去执行对应的恶意代码,也就是说黑客可以将params参数修改成 ' onerror=()=>{console.log("恶意代码")} 这样的形式。这就是DOM型了。

总结来说就是浏览器的DOM元素展示依托于url中的某些参数,这些参数就可能会被注入DOM型XSS。

总结

  1. 反射型,通过用户输入的文本信息注入,这些文本信息随后会被展示在页面上,一旦输入script标签包裹的代码,就会执行js代码,而不是展示文本信息。
  2. 持久性,同样是通过文本输入的文本信息注入,但是注入的信息会被保存在数据库中。展示给每一个用户(每一个用户都会执行)。
  3. DOM型,通过DOM元素依托于url的机制去注入,修改url中的参数注入恶意代码。
相关推荐
QQ1__8115175152 小时前
Spring boot名城小区物业管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
前端·vue.js·spring boot
钛态2 小时前
前端微前端架构:大项目的救命稻草还是自找麻烦?
前端·vue·react·web
一粒黑子2 小时前
【实战解析】阿里开源 PageAgent:纯前端 GUI Agent,一行JS让网页支持自然语言操控
前端·javascript·开源
独角鲸网络安全实验室2 小时前
2026微信小程序抓包全解析:从实操落地到合规风控,解锁前端调试新范式
前端·微信小程序·小程序·抓包·系统代理绕过·https证书严格校验·进程隔离
紫微AI2 小时前
前端文本测量成了卡死一切创新的最后瓶颈,pretext实现突破了
前端·人工智能·typescript
GISer_Jing2 小时前
AI前端(From豆包)
前端·aigc·ai编程
IT枫斗者2 小时前
前端部署后如何判断“页面是不是最新”?一套可落地的版本检测方案(适配 Vite/Vue/React/任意 SPA)
前端·javascript·vue.js·react.js·架构·bug
测试修炼手册2 小时前
[测试技术] 深入理解 JSON Web Token (JWT)
前端·json
AI老李2 小时前
2026 年 Web 前端开发的 8 个趋势!
前端
里欧跑得慢2 小时前
15. Web可访问性最佳实践:让每个用户都能平等访问
前端·css·flutter·web