xss的利用

目录

一、XSS的原理和分类

二、常见的XSS标签和属性

三、Xss漏洞分类

1. 反射性xss

反射性 XSS 典型攻击场景

基于 URL 参数的反射性 XSS

基于表单参数的反射性 XSS

利用 HTML 标签属性的反射性 XSS

2.存储型XSS

存储型XSS的高频攻击场景

社交平台评论区

论坛发帖与私信系统

 电商平台商品描述

3.基于DOM的 XSS

攻击原理剖析

DOM 型 XSS 典型攻击场景与案例

基于 URL 参数的 DOM 型 XSS

基于localStorage/sessionStorage的 DOM 型 XSS

一、XSS的原理和分类

跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混 淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之 时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层 面的攻击!

二、常见的XSS标签和属性

1.直接执行脚本的标签

<script>alert('1')</script>
<svg onload=alert('1')>
<svg><script>alert(1)</script></svg>

2.利用事件属性执行脚本 

<img src=x onerror=alert('1')>      
<body onload=alert('1')>           
<iframe onload=alert('1')></iframe>
<input type="text" onfocus=alert('1') autofocus> 

3. 伪协议触发脚本

<a href="javascript:alert('1')">点击</a>
<iframe src="javascript:alert('1')"></iframe>
<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4="></object>

三、Xss漏洞分类

1. 反射性xss

反射型XSS 是非持久性、参数型的跨站脚本。反射型XSS JS 代码在Web 应用的参数(变量)中,如搜 索框的反射型XSS。在搜索框中,提交PoC[scriptalert(/xss/)/script],点击搜索,即可触发反射型XSS。 注意到,我们提交的poc 会出现在search.php 页面的keywords 参数中。

反射性 XSS 典型攻击场景

基于 URL 参数的反射性 XSS

        场景:搜索框、商品详情页等通过 URL 传递参数的功能点。

基于表单参数的反射性 XSS

        登录页、评论表单等 POST 请求参数未过滤的场景。

利用 HTML 标签属性的反射性 XSS

        原理:通过 HTML 标签属性(如onclickhrefsrc)触发脚本执行。

2.存储型XSS

存储型XSS 是持久性跨站脚本。持久性体现在XSS 代码不是在某个参数(变量)中,而是写进数据库或 文件等可以永久保存数据的介质中。存储型XSS 通常发生在留言板等地方。我们在留言板位置留言,将 恶意代码写进数据库中。此时,我们只完成了第一步,将恶意代码写入数据库。因为XSS 使用的JS 代 码,JS 代码的运行环境是浏览器,所以需要浏览器从服务器载入恶意的XSS 代码,才能真正触发XSS。 此时,需要我们模拟网站后台管理员的身份,查看留言。

存储型XSS的高频攻击场景

社交平台评论区

        场景:用户发表评论时,嵌入恶意脚本,后续访客浏览该评论时触发攻击。

论坛发帖与私信系统

        场景:攻击者发布包含恶意脚本的帖子或私信,受害者访问时自动执行脚本。

 电商平台商品描述

        场景:商家在商品描述中植入恶意脚本,用户浏览商品详情页时触发。

3.基于DOM XSS

DOM XSS 比较特殊。owasp 关于DOM 型号XSS 的定义是基于DOM XSS 是一种XSS 攻击,其中攻击 的payload由于修改受害者浏览器页面的DOM 树而执行的。其特殊的地方就是payload 在浏览器本地修改DOM 树而执行, 并不会传到服务器上,这也就使得DOM XSS 比较难以检测。

攻击原理剖析

1.数据源获取:
前端 JS 通过location.href、document.URL、localStorage等方式获取用户可控数据(如 URL 参数、Cookie)。
2.DOM 动态操作
JS 使用innerHTML、outerHTML、document.write()等危险 API,将未过滤的数据源直接写入 DOM。
3.脚本执行:
浏览器解析 DOM 时,执行嵌入的恶意脚本。

DOM 型 XSS 典型攻击场景与案例

基于 URL 参数的 DOM 型 XSS

        场景:前端通过 URL 参数动态更新页面内容(如单页应用路由、个性化参数)。

                漏洞代码(JavaScript):

// 错误示例:使用innerHTML直接渲染URL参数
function renderPage() {const hash = window.location.hash.slice(1); // 获取#后的参数document.getElementById('content').innerHTML = '<h1>' + hash + '</h1>';
}
window.onload = renderPage;

                恶意 URL:

http://example.com/#<script>alert('1');</script>

                攻击效果:

                        页面加载时,hash参数被写入innerHTML,触发脚本执行。

基于localStorage/sessionStorage的 DOM 型 XSS

        场景:前端从本地存储中读取用户数据并渲染。

                漏洞代码(JavaScript):

// 错误示例:从localStorage获取数据并渲染
const username = localStorage.getItem('username');
document.getElementById('welcome').innerHTML = `欢迎你,${username}!`;

                攻击步骤:

                        1、攻击者诱导用户访问恶意页面,执行:

localStorage.setItem('username', '<script>alert("XSS");</script>');

                        2、用户访问目标网站时,前端读取并渲染恶意内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/91811.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/91811.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源Docmost知识库管理工具

Docmost知识库管理工具Docmost是什么核心功能安装应用报错镜像拉取报错使用Docmost是什么 Docmost 是一个开源的协作 wiki 和文档软件。它是 Confluence 和 Notion 的开源替代方案。 核心功能 主开发语言&#xff1a;主要使用 TypeScript 开发&#xff08;性能好&#xff0c;扩…

Elastic Search 8.x 分片和常见性能优化

目录索引分片写入原理概念索引写入流程常见性能优化背景常见性能优化硬件资源优化分片和副本优化索引分片写入原理 概念 分片&#xff08;shard&#xff09; 分片是将索引数据分割成更小的、可分布式存储和处理的单元每个索引都由一个或多个分片组成&#xff0c;每个分片都是一…

Java+Vue搭建资产设备全生命周期管理系统,移动端随时操作,后台管理高效精准,覆盖资产全周期,提供完整源码

前言&#xff1a;在当今企业运营中&#xff0c;资产设备作为重要的生产要素&#xff0c;其高效管理和合理利用直接关系到企业的生产效率、成本控制和竞争力。资产设备全生命周期管理涵盖了从设备的采购规划、采购实施、入库存储、使用维护到报废处置的整个过程。为了实现对资产…

Vue rem回顾

Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue rem回顾&#xff08;初学者简单笔记&#xff09; 目录 rem回顾 移动端适配 等比例缩放 下载插件 总结 rem回顾 实现自适应的rem布局。 通过把屏幕划分成几个等份&#xff0c;作为html字体的大小&#xff0c;当设备变…

C#语法基础总结(超级全面)(二)

文章目录c#语法基本元素关键字操作符&#xff08;operator&#xff09;类型转换标识符&#xff08;Identifier&#xff09;语句try语句迭代语句&#xff08;循环语句&#xff09;索引器文本&#xff08;字面值&#xff09;五大数据类型引用类型&#xff1a;值类型&#xff1a;变…

MyBatis分页神器PageHelper深度解析

PageHelper 是一个优秀的 MyBatis 分页插件&#xff0c;它通过简单的拦截器机制&#xff0c;实现了对 MyBatis 查询的物理分页&#xff08;而非内存分页&#xff09;&#xff0c;极大简化了分页代码的编写。而 PageHelper 扩展 通常指的是在其核心功能基础上&#xff0c;为特定…

【2025/07/19】GitHub 今日热门项目

GitHub 今日热门项目 &#x1f680; 每日精选优质开源项目 | 发现优质开源项目&#xff0c;跟上技术发展趋势 &#x1f4cb; 报告概览 &#x1f4ca; 统计项&#x1f4c8; 数值&#x1f4dd; 说明&#x1f4c5; 报告日期2025-07-19 (周六)GitHub Trending 每日快照&#x1f55…

【数据结构】二叉树初阶详解(一):树与二叉树基础 + 堆结构全解析

文章目录&#x1f4dd;前言&#x1f320;树的概念和结构&#x1f309;树的概念&#x1f309;树的相关概念&#x1f309;树的表示&#x1f320;二叉树概念及结构&#x1f309;二叉树的概念&#x1f309;特殊的二叉树&#x1f309;二叉树的性质&#x1f320;二叉树顺序结构及实现…

Flutter基础(前端教程①⑤-API请求转化为模型列成列表展示实战)

models/post_model.dart定义 Post 数据模型包含 fromJson() 方法用于解析 JSONcontrollers/post_controller.dart管理帖子数据的获取和状态使用 http 包请求 API通过 RxList 和 RxBool 实现响应式状态管理views/post_list_view.dart展示帖子列表的 UI使用 Obx 监听状态变化包含…

第十五届全国大学生数学竞赛初赛试题(非数学专业类A卷)

第十五届全国大学生数学竞赛初赛试题(非数学专业类A卷) 文章目录第十五届全国大学生数学竞赛初赛试题(非数学专业类A卷)题目速览逐题详解题目速览 求极限&#xff1a; lim⁡x→3x39−62−x3−23.\lim\limits_{x \to 3} \frac{\sqrt{x^3 9} - 6}{2 - \sqrt{x^3 - 23}} \rule{2…

ROS1/Linux——Ubuntu、ROS1虚拟机环境配置

ROS1/Linux——Ubuntu、ROS1虚拟机环境配置 文章目录ROS1/Linux——Ubuntu、ROS1虚拟机环境配置编辑时间&#xff1a;系统环境Linux镜像下载Ubuntu相关链接iso镜像下载VMware操作虚拟机安装步骤基础设置设置语言设置窗口分辨率、图标大小等终端固定在左侧栏显示隐藏文件夹其他问…

万字解析LVS集群

一、集群和分布式介绍1.1、诞生的原因单台设备 “又贵又弱又容易挂”&#xff0c;扛不住现代业务的 “海量访问、海量数据、复杂计算”&#xff1b;集群 / 分布式让多台设备 “抱团干活”&#xff0c;分担压力&#xff08;流量、存储、计算&#xff09;&#xff0c;还能 “坏了…

关于博客后续内容会以xmind内容转markdown格式来呈现

自己感觉不正确的地方 一直感觉学啥东西记到博客里&#xff0c;这样就方便后续回顾或者查找 但csdn貌似不适合全局搜索&#xff0c;也就是我居然先要知道我对应的模糊点对应到哪篇文章&#xff0c;然后再到那篇文章里找&#xff0c;简直麻烦死了&#xff0c;而且另外一个毛病是…

Python - 数据分析三剑客之Pandas

阅读前可参考NumPy文章 https://blog.csdn.net/MinggeQingchun/article/details/148253682https://blog.csdn.net/MinggeQingchun/article/details/148253682 ‌Pandas是Python中一个强大的开源数据分析库&#xff0c;专门用于处理结构化数据&#xff08;如表格、时间序列等&…

深度解析:Python实战京东资产拍卖平台爬虫,从ID抓取到详情数据落地

深度解析:Python实战京东资产拍卖平台爬虫,从ID抓取到详情数据落地 对爬虫、逆向感兴趣的同学可以查看文章,一对一小班教学(系统理论和实战教程)、提供接单兼职渠道:https://blog.csdn.net/weixin_35770067/article/details/142514698 文章目录 深度解析:Python实战京东…

ServletConfig 接口详解

ServletConfig 接口详解 1. 核心概念 ServletConfig 是 Servlet 规范中定义的核心接口&#xff0c;用于在 Servlet 初始化阶段向 Servlet 传递配置信息。每个 Servlet 都有自己独立的 ServletConfig 对象。 2. 关键特性特性说明唯一性每个 Servlet 实例拥有独立的 ServletConfi…

Maven学习总结(62)—— Maven 打包瘦身和提速解决方案

臃肿的 Maven 项目 在 Java 项目开发中,Maven 作为强大的项目管理和构建工具,极大地简化了依赖管理和项目构建过程。但随着项目的不断演进,依赖的 Jar 包越来越多,我们的 Maven 项目也逐渐变得臃肿不堪。曾经,我参与维护一个大型的 Spring Boot 项目,随着业务功能的不断…

【Qt开发】Qt的背景介绍(三)-> 认识Qt Creator

目录 1 -> Qt Creator概览 2 -> 使用Qt Creator创建项目 2.1 -> 新建项目 2.2 -> 选择项目模板 2.3 -> 选择项目路径 2.4 -> 选择构建系统 2.5 -> 填写类信息设置界面 2.6 -> 选择语言和翻译文件 2.7 -> 选择Qt套件 2.8 -> 选择版本控…

HTML5中的自定义属性

自定义属性&#xff08;Custom Attributes&#xff09; 允许在标准 HTML 属性之外&#xff0c;为元素添加额外的元数据&#xff08;metadata&#xff09;。 1. 标准方式&#xff1a;data-* 属性 HTML5 引入了 data-* 前缀的自定义属性规范&#xff0c;所有以 data- 开头的属性都…

前端项目利用Gitlab CI/CD流水线自动化打包、部署云服务

叠甲前言 本文仅作为个人学习GitLab的CI/CD功能记录&#xff0c;不适合作为专业性指导&#xff0c;如有纰漏&#xff0c;烦请君指正。 Gitlab的CI/CD做什么用的 自工作以来&#xff0c;去过大大小小公司&#xff0c;有一些公司技术人员专业性欠佳&#xff0c;每当产品经理或…