《WEB安全渗透测试》(19)Vue.js中的XSS攻击
2023-09-11 14:17:08 时间
1.前言
Vue是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。它的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合;另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用(SPA)提供驱动。
Vue当下很火,但是鲜有人知Vue写法不当,很容易出现XSS漏洞。
2.Vue漏洞复现
Vue.js中数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值:{ { message }},但是双大括号会将数据解释为普通文本,而非 HTML 代码,有的时候需要输出真正的 HTML,就需要使用 v-html 指令。
如下代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>index</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
{
{ message }}
<hr>
<span v-html="attack"></span>
</div>
<
相关文章
- web移动端实现点击导航,滑动到网页中的指定位置(JS实现滑动锚点定位)
- JS 使用 lz-string存储 数据压缩
- Vue笔记:安装配置node.js及使用vue-cli创建项目
- VUE - vue.runtime.esm.js?6e6d:619 [Vue warn]: Do not use built-in or reserved HTML elements as component i
- 纯js实现人脸识别眨眨眼张张嘴案例——index.html
- [Node.js] Mock an API for Local Development in React with Mirage JS
- [Vue] Update Attributes, Classes and Styles in Vue.js with v-bind
- vue.js3: 用crypto-js做sha加密(vue@3.2.37 / crypto-js@4.1.1)
- vue.js 3.2.22:菜单每行依次滑动出现的动画
- vue.js 3.2.20: 用rem实现移动端和pc的兼容
- [Node.js] Migration with Umzug
- [Vue] Create Vue.js Layout and Navigation with Nuxt.js
- 如何给一个vue项目重命名(vue.js 3.2.4)
- js基于lodash实现前端防抖与节流
- Atitit mybatis的扩展使用sql udf,js java等语言 目录 1.1. 默认,mybatis使用xml,sql等语言来书写业务流程1 2. 使用java扩展函数1 2.1.
- Atitit js canvas的图像处理类库attilax总结与事业
- Atitit.跨语言反射api 兼容性提升与增强 java c#。Net php js
- Vue.js 组件(component)demo小案例
- Stimulsoft Dashboards.JS 2022.2.3 Crack
- vue-ant design示例大全——按钮本地css/js资源
- 总结js常用的dom操作(js的dom操作API)