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

Web攻防-XSS跨站浏览器UXSS突变MXSSVueReactElectron框架JQuery库写法和版本

知识点:
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.lryc.cn/news/571677.html

相关文章:

  • ubuntu下python版本升级导致pyqt不能正常运行解决
  • CppCon 2017 学习:C++ atomics:from basic to advanced. What do they do?
  • Java大模型开发入门 (15/15):总结与展望 - Java开发者的AI进阶之路
  • 单例模式:全局唯一实例的设计艺术
  • web3.js v4.x 模块架构
  • linux618 NFS web.cn NFS.cn backup.cn
  • 亚矩阵云手机+Whatnot:直播电商的自动化增长引擎
  • Linux lsof 命令详解+实例
  • 【Python与生活】如何实现一个条形码检测算法?
  • IEEE RAL 双臂机器人三连抓估计物体状态 无需特制夹爪或视觉相机 - 大阪大学万伟伟老师团队
  • PCL 四元数转轴角
  • 【学习笔记】2.1注意力机制
  • C#开发MES管理系统源码工业生产线数据采集WPF上位机产线执行系统源码
  • crackme010
  • 01初始uni-app+tabBar+首页
  • 关于球面投影SphericalProjector的介绍以及代码开发
  • 分治算法之归并排序
  • webpack+vite前端构建工具 - 3webpack处理js
  • 深入ZGC并发处理的原理
  • 固态硬盘的加装和初始化
  • 电路图识图基础知识-摇臂钻床识图(三十一)
  • 27.自连接
  • 你的下一把量化“瑞士军刀”?KHQuant适用场景全解析【AI量化第32篇】
  • 数据集笔记:宣城轨迹
  • 权重遍历及Delong‘s test | 已完成单调性检验?
  • 键盘 AK35I Pro V2 分析
  • ABP vNext + Azure Application Insights:APM 监控与性能诊断最佳实践
  • 零基础设计模式——总结与进阶 - 1. 设计模式的综合应用
  • 利用cpolar实现Talebook数字图书馆的实时访问
  • ZYNQ学习记录FPGA(五)高频信号中的亚稳态问题