知识点:
1、Web攻防-XSS跨站-浏览器&转换-UXSS&MXSS
2、Web攻防-XSS跨站-框架和库-VUE&React&Electron&JQuery

分类:
1、框架或三方库的XSS(Vue、React、Electron、JQuery)
2、浏览器或插件的XSS(UXSS)
3、客户端预览内核的XSS(MXSS)

说明:使用框架开发的或第三方库引用操作的,默认安全写法会自带过滤,所以测试此类的应用需存在漏洞版本或不安全写法导致XSS;同样UXSS也需要存在漏洞的浏览器版本或插件导致;MXSS也要不同环境下的转变解析导致,需多测试。

一、演示案例-WEB攻防-XSS跨站-框架&库

Vue框架-XSS

搭建:
npm create vite@latest
cd vue-xss-demo
npm install修改:App.vue:
<template><div><h1>XSS 漏洞演示</h1><input v-model="userInput" placeholder="输入你的内容" /><button @click="showContent">显示内容</button><div v-html="displayContent"></div></div>
</template><script>
export default {data() {return {
userInput: '', // 用户输入
displayContent: '' // 显示的内容};},
methods: {showContent() {// 直接将用户输入的内容渲染到页面this.displayContent = this.userInput;}}
};
</script><style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
text-align: center;
margin-top: 60px;
}
</style>

启动:npm run dev

在这里插入图片描述

测试

<img src="x" onerror="alert('XSS')" />

在这里插入图片描述
在这里插入图片描述

修复:使用文本插值({{}})代替 v-html

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

React库-XSS

React 是一个由 Facebook 开发并开源的 JavaScript 库,用于构建用户界面(UI)。它的核心价值在于通过组件化的方式高效创建交互式 Web 应用

搭建:
npx create-react-app react-xss-example
cd react-xss-example修改:
App.js
import React, { useState } from 'react';
import ReactDOM from 'react-dom';function App() {const [userInput, setUserInput] = useState('');const [displayedInput, setDisplayedInput] = useState('');const handleInputChange = (e) => {setUserInput(e.target.value);};const displayInput = () => {setDisplayedInput(userInput);};return (<div><input type="text" value={userInput} onChange={handleInputChange} placeholder="输入内容" /><button onClick={displayInput}>显示输入</button><div dangerouslySetInnerHTML={{__html: displayedInput}}/>{/*<div>{displayedInput}</div>*/}</div>);
}
export default App;

启动:npm start

在这里插入图片描述

测试

<img src="x" onerror="alert('XSS')" />

在这里插入图片描述
在这里插入图片描述

修复:直接使用{displayedInput}来显示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Electron框架-XSS

Electron 是一个由 GitHub 开发的开源框架,用于使用 Web 技术(HTML/CSS/JavaScript)构建跨平台的桌面应用程序。它通过将 Chromium 渲染引擎和 Node.js 运行时结合,让开发者能用前端技术栈开发原生体验的桌面应用。

搭建:
mkdir electron-xss-example
cd electron-xss-example
npm init -y安装修改:
npm install electron --save-dev
main.js 和 index.html 文件复制到项目根目录下
// main.js
const { app, BrowserWindow } = require('electron');
const path = require('path');function createWindow() {const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true,
contextIsolation: false}});win.loadFile('index.html');
}app.whenReady().then(() => {createWindow();app.on('activate', function () {if (BrowserWindow.getAllWindows().length === 0) createWindow();});
});app.on('window-all-closed', function () {if (process.platform !== 'darwin') app.quit();
});// index.html
<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>Electron XSS Example</title>
</head><body><input type="text" id="userInput" placeholder="输入内容"><button onclick="displayInput()">显示输入</button><div id="displayArea"></div><script>function displayInput() {const input = document.getElementById('userInput').value;const displayArea = document.getElementById('displayArea');
displayArea.innerHTML = input;}</script>
</body></html>配置package.json
{"name": "electron-xss-example","version": "1.0.0","description": "","main": "main.js","scripts": {"start": "electron ."},"keywords": [],"author": "","license": "ISC","devDependencies": {"electron": "^23.2.1"}
}

启动:npm start

在这里插入图片描述

测试

<img src="x" onerror="alert('XSS')" />

在这里插入图片描述

修复:使用 textContent 代替 innerHTML 来显示文本

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

JQuery库-XSS

在这里插入图片描述
参考:
水洞:https://mp.weixin.qq.com/s/FsFvQlVrb_J4wsyE8gpprA
介绍:https://mp.weixin.qq.com/s/EMsK1c901-bDYapvHxs-VQ

漏扫:
https://github.com/mahp/jQuery-with-XSS

二、演示案例-WEB攻防-XSS跨站-MXSS&UXSS&转换&浏览器

MXSS(突变型XSS)

mXSS中文是突变型XSS,指的是原先的Payload提交是无害不会产生XSS,而由于一些特殊原因,如反编码等,导致Payload发生变异,导致的XSS

参考:
https://mp.weixin.qq.com/s/31zaBzZ1e6rNobYCrn7Qhg

模拟

在这里插入图片描述

靶场:https://portswigger-labs.net/mxss/<math><mtext><table><mglyph><style><!--</style><img title="--&gt;&lt;img src=1 onerror=alert(1)&gt;">
这是一个故意实例化的XSS语句,是执行不了XSS的。

在这里插入图片描述

复盘

https://www.fooying.com/the-art-of-xss-1-introduction/
在这里插入图片描述
在这里插入图片描述

UXSS(针对浏览器或浏览器插件漏洞)

UXSS利用浏览器或者浏览器扩展漏洞来制造产生XSS并执行代码的攻击类型。
在这里插入图片描述

复盘:
MICROSOFT EDGE uXSS CVE-2021-34506
Edge浏览器翻译功能导致JS语句被调用执行https://www.bilibili.com/video/BV1fX4y1c7rX

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

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

相关文章

PyTorch 中torch.clamp函数使用详解和实战示例

torch.clamp 是 PyTorch 中的一个非常有用的函数&#xff0c;它可以将张量的每个元素限制在一个指定的范围内&#xff0c;超出范围的元素将被裁剪为边界值。 函数签名&#xff1a; torch.clamp(input, minNone, maxNone, outNone)参数说明&#xff1a; input&#xff1a;输入…

详解Redis数据库和缓存不一致的情况及解决方案

数据库与缓存不一致是分布式系统中常见问题&#xff0c;本质是数据在缓存层和存储层出现版本差异。 一、并发写操作导致不一致&#xff08;最常见&#xff09; 场景描述 线程A更新数据库 → 线程B更新数据库 → 线程B更新缓存 → 线程A更新缓存 结果&#xff1a;缓存中存储的…

湖北理元理律师事务所:企业债务危机的“急诊科”式应对方案

当企业陷入债务危机时&#xff0c;传统“头痛医头”的应对往往加速死亡。本方案基于企业债务重组实务&#xff0c;提炼出 “止血-清创-修复”三阶急救体系&#xff0c;助力企业守住生存底线。 第一阶段&#xff1a;精准止血&#xff08;0-30天关键期&#xff09; 目标&#x…

华为云Flexus+DeepSeek征文|基于Dify构建智能票据信息识别助手

华为云FlexusDeepSeek征文&#xff5c;基于Dify构建智能票据信息识别助手 一、构建智能票据信息识别助手前言二、构建智能票据信息识别助手环境2.1 基于FlexusX实例的Dify平台2.2 基于MaaS的模型API商用服务 三、构建智能票据信息识别助手实战3.1 配置Dify环境3.2 配置Dify工具…

Python实例题:基于联邦学习的隐私保护 AI 系统(分布式学习、隐私计算)

目录 Python实例题 题目 问题描述 解题思路 关键代码框架 难点分析 扩展方向 Python实例题 题目 基于联邦学习的隐私保护 AI 系统&#xff08;分布式学习、隐私计算&#xff09; 问题描述 开发一个基于联邦学习的隐私保护 AI 系统&#xff0c;包含以下功能&#xff…

点点(小红书AI搜索):生活场景的智能搜索助手

1. 产品概述 点点是小红书于2024年12月正式推出的AI搜索助手&#xff0c;由上海生动诗章科技有限公司开发&#xff0c;定位为生活场景搜索工具&#xff0c;聚焦交通、美食、旅游、购物等日常需求&#xff0c;旨在通过即时信息和真实用户分享帮助用户“精准避坑”。 核心特点 …

软件工程概述:核心概念、模型与方法全解析

一、软件工程定义与诞生背景 定义 将系统化、规范化、可度量的方法应用于软件开发、运行和维护的过程&#xff08;IEEE标准&#xff09;。 核心目标&#xff1a;在可控成本下&#xff0c;生产高质量、可维护、满足需求的软件产品。 - 软件开发&#xff1a;需求 → 设计 → 编码…

LVS+Keepalived+nginx

LVSKeepalivednginx 1 安装依赖 sudo yum install ipvsadm keepalived -y 查询是否安装成功 rpm -q -a keepalived 2 配置虚拟IP并安装ipvsadm /etc/sysconfig/network-scripts cp ifcfg-ens33 ifcfg-ens33:1 修改里面配置文件 TYPE"Ethernet" PROXY_METHOD"n…

数据分析实操篇:京东淘宝商品实时数据获取与分析

在电商行业蓬勃发展的当下&#xff0c;数据已然成为驱动决策的核心要素。无论是商家精准把控市场需求、制定营销策略&#xff0c;还是消费者做出明智的购物抉择&#xff0c;都离不开对电商平台商品数据的深入剖析。京东和淘宝作为国内电商领域的两大巨头&#xff0c;汇聚了海量…

微信小程序扫码添加音频播放报错{errCode:10001, errMsg:“errCode:602,err:error,not found param“}

主要流程代码如下&#xff1a; let innerAudioContext wx.createInnerAudioContext() // 提示音 innerAudioContext.autoplay true innerAudioContext.src ../images/scan.mp3 innerAudioContext.onError(function(res){ console.log(onError 开始监听:,res) }) innerAudi…

SVN合并指南,从dev合并部分revision到release指南

dev合并到release 1.进入release的工作区&#xff0c;右击选择Merge 点击Next 2.确认merge来源分支和当前分支 点击Show Log&#xff0c;挑选需要合并的单号 3. 选择需要合并的commit 注意点击Hide no-mergeable revisions&#xff0c;来隐藏掉已经合并的commit 4.选择需…

《计算机网络:自顶向下方法(第8版)》Chapter 8 课后题

复习题 8.1节 R1. 机密性是攻击者截获原始明文消息的密文加密后无法确定原始明文的属性。消息完整性是接收方可以检测发送的消息&#xff08;无论是否加密&#xff09;在传输过程中是否又被更改的属性。 因此&#xff0c;这两者是不同的概念&#xff0c;可以独立存在。一个在传…

抖音小程序开发:ttml和传统html的区别

1 传统 Web 中 HTML 的角色 HyperText Markup Language&#xff1a;用来描述页面结构——标题、段落、图片、表单…… 只负责“放什么元素、排在什么层级”&#xff0c;真正的行为靠 JS&#xff0c;视觉靠 CSS。 <!-- 传统网页&#xff1a;结构 class 交给 CSS --> &…

Unity2D 街机风太空射击游戏 学习记录 #12QFramework引入

概述 这是一款基于Unity引擎开发的2D街机风太空射击游戏&#xff0c;笔者并不是游戏开发人&#xff0c;作者是siki学院的凉鞋老师。 笔者只是学习项目&#xff0c;记录学习&#xff0c;同时也想帮助他人更好的学习这个项目 作者会记录学习这一期用到的知识&#xff0c;和一些…

Proteus如何创建第一个工程

视频教程&#xff1a; [最详细]Proteus新建第一个工程与快捷键设置 操作步骤 1打开Proteus后&#xff0c;左上角点击文件然后点击新建工程。 2新建工程后&#xff0c;弹出以下界面&#xff0c;选择修改自己的工程名字&#xff0c;&#xff08;工程名的后缀“.pdspsj”不要修改…

现代浏览器剪贴板操作指南 + 示例页面 navigator.clipboard 详解与实战

在 Web 开发中&#xff0c;复制文本到剪贴板是一个常见需求。多年来&#xff0c;过去我们依赖 Flash 或 document.execCommand(copy) 来实现。它曾是我们的得力助手&#xff0c;但这些方法存在兼容性差、安全性低的问题。现已经被正式标记为废弃&#xff08;Deprecated&#xf…

OpenCV-Python学习笔记

2 OpenCV中的Gui特性 2-1 图像入门 目标 学习如何读取图像、显示图像和保存图像 学习api函数&#xff1a;cv.imread()、cv.imshow()、cv.imwrite() 学习使用Matplotlib显示图像 使用OpenCV 读取图像 在OpenCV中&#xff0c;使用函数cv.imread()读取图像。 img cv.imread(le…

2025年- H87-Lc195--287.寻找重复数(技巧,二分查找OR动态规划)--Java版

1.题目描述 2.思路 3.代码实现 public class H287 {public int findDuplicate(int[] nums) {// 重复数字可能的最小值int min1;// 重复数字可能的最大值&#xff0c;数组长度为 n&#xff0c;数字范围是 [1, n-1]int maxnums.length-1;while(min<max) {// 防止溢出&#xf…

PVE使用ubuntu-cloud-24.img创建虚拟机并制作模板

前言 在使用pve时,虽然它已经可以克隆虚拟机,已经极大提升了创建虚拟机速度,但创建完成后,不可避免还是要配置下网络,因为服务器要使用静态IP,克隆出的机器需要重新设置新的IP地址,有没有连这一步都省了方法呢?有,就是Cloud-Init 创建虚拟机模板 1. 下载ubuntu-clo…

LLM增强检索---GraphRAG + LangGraph项目实战

专栏&#xff1a;大模型垂直应用技术​ ​​​​ 个人主页:云端筑梦狮 大模型应用落地亟需解决的核心问题有一个是&#xff1a;如何与私域数据交互。私域数据主要的问题是&#xff1a;需要有效地将企业数据整合进大语言模型中。由于大模型的上下文处理能力有限&#xff0c;一…