当前位置: 首页 > news >正文

二、Cross-Site Scripting

1. XSS(跨站脚本)概述

Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:

  1. 反射性XSS
  2. 存储型XSS
  3. DOM型XSS

XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入
输出转义:根据输出点的位置对输出到前端的内容进行适当转义

2. 反射型XSS(get)

尝试在输入框中直接写入<script>alert(1)</script>,发现长度被限制了:
image
F12打开检查,发现该输入框有长度限制,将maxlength=20的值改为100:
image
再次写入<script>alert(1)</script>
image

3. 反射型XSS(post)

根据提示登录:
image
尝试在输入框中写入123后开启Burp抓包:
image
输入的参数赋值给了message,将message的值改为<script>alert(1)</script>后提交:
image
image

4. 存储型XSS

将恶意语句写入留言板中:
image
每当有用户访问该页面就会触发并执行恶意代码:
image
image

5. DOM型XSS

当我们输入任何数据都会转换为一个网页,输入test后点击click me:
image
发现test拼接到url了:
image
在网页源代码也可以看见输入的test在点击click之后生成了标签
image
利用JS伪协议:javascript:alert("123")
image

6. XSS盲打

登录管理员后台账号admin,密码123456:
image
成功登录:
image
尝试提交带有弹窗的留言:
image
在后台查看:
image
image

7. XSS过滤

尝试直接插入<script>alert(1)</script>
image
发现并没有弹窗,而且上传的内容是没有显示的。
查看源码:
image
发现是对script关键字进行了过滤。
尝试大小写绕过<ScRiPt>alert(1)</ScRiPt>
image
尝试标签绕过<img src="" onerror=alert(1)>
image

8. XSS之htmlspecialchars

尝试直接插入<script>alert(1)</script>
image
发现htmlspecialchars函数 把",<,>等都进行转义和HTML编码了。
但是发现单引号没有被过滤掉 (htmlspecialchars函数默认是不过滤单引号的)。
JS伪协议绕过:javascript:alert("123")
image
单引号闭合+事件标签绕过:test' onfocus='alert(1)'
image

9. XSS之href输出

href属性的值可以是任何有效文档的相对或绝对URL,包括片段标识符和JavaScript代码段。
JS伪协议绕过:javascript:alert("123")
image

10. XSS之js输出

输入测试代码<script>alert(123)</script>查看源码:
image
输入的代码被生成在js中并赋值给$ms。
尝试闭合<script>标签:</script><script>alert(1)</script>
image

http://www.jsqmd.com/news/200774/

相关文章:

  • 深入解析:深度解析:Flutter 与 OpenHarmony 融合架构下的跨平台渲染机制与系统级集成
  • Flutter / RN / iOS 的 UI 渲染机制,本质差异在哪里?
  • netprof.dll文件损坏丢失找不到 打不开软件 下载方法分享
  • 学长亲荐!专科生必看TOP9AI论文写作软件测评
  • Beta冲刺第5天 - 智能推荐与系统优化
  • 语义理解十年演进(2015–2025)
  • netsh.exe文件损坏丢失找不到 打不开 下载方法分享
  • const函数
  • linux 中vim快捷键, 删除光标至结尾内容;光标到开头内容
  • 文本翻译十年演进(2015–2025)
  • C++之对象和类(八) - Invinc
  • 文本生成十年演进(2015–2025)
  • 全网最全专科生必备AI论文软件TOP8:开题报告文献综述神器测评
  • 2026年AI发展趋势:技术迭代、产业革命与伦理挑战
  • 测风激光雷达数据采集解决方案
  • 【tips】100vh
  • < uni-app开发核心难点解析:框架适配与打包发布全流程踩坑指南 >
  • 1、两数之和
  • vue3如何结合百度开源上传组件实现文件夹上传
  • AI与优化算法驱动的数字化药房运营
  • python学习记录14~
  • 2026年诚信的系统阳光房门窗,断桥铝门窗,铝合金门窗厂家采购参考指南 - 品牌鉴赏师
  • GLM-4.6V-Flash-WEB与Markdown文档自动化处理结合的新玩法
  • qoj #5406. 随机游走
  • 2026年诚信的断桥铝门窗,钛镁合金门窗,飘移门窗厂家推荐及采购参考 - 品牌鉴赏师
  • vue.js大文件上传插件的跨平台兼容性探讨
  • 深入解析:【ARM】ARM体系结构与开发基础
  • 告别笨重的 For 循环:用 xargs 打造 Linux 命令行流水线神器
  • 强烈安利8个AI论文平台,专科生毕业论文轻松搞定!
  • GLM-4.6V-Flash-WEB模型对台风风暴潮淹没范围的图像预测