网络安全之XSS基础

从 XSS Payload 学习浏览器解码

xss payload

1.<a href="%6a%61%76%61%73%63%72%69%70%74:%61%6c%65%72%74%28%31%29">1</a>
2.<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:%61%6c%65%72%74%28%32%29">2</a>
3.<a href="javascript%3aalert(3)">3</a>
4.<div>&#60;img src=x οnerrοr=alert(4)&#62;</div>
5.<textarea>&#60;script&#62;alert(5)&#60;/script&#62;</textarea>
6.<textarea><script>alert(6)</script></textarea>
7.<button οnclick="confirm('7&#39);">Button</button>
8.<button οnclick="confirm('8\u0027);">Button</button>
9.<script>&#97;&#108;&#101;&#114;&#116&#40;&#57;&#41;&#59</script>
10.<script>\u0061\u006c\u0065\u0072\u0074(10);</script>
11.<script>\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0031\u0029</script>
12.<script>\u0061\u006c\u0065\u0072\u0074(\u0031\u0032)</script>
13.<script>alert('13\u0027)</script>
14.<script>alert('14\u000a')</script>
15.<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x31;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x36;&#x33;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x35;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x32;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x34;&#x28;&#x31;&#x35;&#x29;">15</a>

基础部分(前六个)

第一个,很明显没有执行

原因是编码部分是URL encoded "javascript:alert(1)",里面没有HTML编码内容,不考虑,其中href内部是URL,于是直接丢给URL模块处理,但是协议无法识别(即被编码的javascript:),解码失败,不会被执行。

URL规定协议,用户名,密码都必须是ASCII,所以编码就无效。

第二个,经过用户交互之后是可以实现的

解析流程:

先HTML解码,得到<a href="javascript:%61%6c%65%72%74%28%32%29">,href中为URL,URL模块可识别为javascript协议,进行URL解码,得到<a href="javascript:alert(2)">,由于是javascript协议,解码完给JS模块处理,于是被执行

第三个,经过测试,也是不行的

原因是编码部分是URL encoded `:`,里面没有HTML编码内容,不考虑,其中href内部是URL,于是直接丢给URL模块处理,但是协议无法识别,解码失败,不会被执行。

第四个,经过测试,也是不成功的

原因是这里对<>进行了实体编码,这里包含了HTML编码内容,反过来以开发者的角度思考,HTML编码就是为了显示这些特殊字符,而不干扰正常的DOM解析,所以这里面的内容不会变成一个img元素,也不会被执行。从HTML解析机制看,在读取<div>之后进入数据状态,<会被HTML解码,但不会进入标签开始状态,当然也就不会创建img元素,也就不会执行。

第五个,经过交互,也是不能实现的

原因是这里依然是对<>进行了实体编码,而<textarea>是RCDATA元素(RCDATA elements),可以容纳文本和字符引用,注意不能容纳其他元素,HTML解码得到<textarea><script>alert(5)</script></textarea>于是直接显示,RCDATA`元素(RCDATA elements)包括`textarea`和`title`

第六个,经过交互,也是不能实现的

原因是<textarea>是RCDATA元素(RCDATA elements),可以容纳文本和字符引用,注意不能容纳其他元素,HTML解码得到<textarea><script>alert(5)</script></textarea>于是直接显示

高级部分

第七个,经过交互测试,是可以的

原因是,这里对 ` ' `进行了实体编码,这里onclick中为标签的属性值(类比2中的href),会被HTML解码,得到<button οnclick="confirm('7');">Button</button>然后被执行。

第八个,经过交互,是不可以的

原因是onclick中的值会交给JS处理,在JS中只有字符串和标识符能用Unicode表示,'显然不行,JS执行失败

第九个,也是不行的

原因是script属于原始文本元素(Raw text elements),只可以容纳文本,注意没有字符引用,于是直接由JS处理,JS也认不出来,执行失败。原始文本元素(Raw text elements)有<script>和<style>

第十个,经过测试是可以的

原因是函数名alert属于标识符,直接被JS执行

第十一个,经过测试,是不可以的

原因是在JS中只有字符串和标识符能用Unicode表示

第十二个,经过测试,也是不可以的

原因是这里\u0031\u0032在解码的时候会被解码为字符串12,注意是字符串,不是数字,文字显然是需要引号的,JS执行失败。

第十三个,经过测试是不可以的

原因是在JS中只有字符串和标识符能用Unicode表示,'显然不行,JS执行失败

第十四个,经过测试是可以的

原因是\u000a在JavaScript里是换行,就是\n,直接执行,相当于在源码里直接按一下回车键,后面的代码都换行了,这个无关紧要。

第十五个,经过交互,是可以的

原因是首先进行html实体解码得到<a href="javascript:%5c%75%30%30%36%31%5c%75%30%30%36%63%5c%75%30%30%36%35%5c%75%30%30%37%32%5c%75%30%30%37%34(15)">15</a>,然后在href中由URL模块处理,解码得到<a href="javascript:\u0061\u006c\u0065\u0072\u0074(15)">15</a>,最后经过Unicode解码得到<a href="javascript:alert(15)">15</a>,交互后可执行。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot+Vue在线商城(电子商城)系统-附源码与配套论文

摘 要 随着互联网技术的发展和普及&#xff0c;电子商务在全球范围内得到了迅猛的发展&#xff0c;已经成为了一种重要的商业模式和生活方式。电子商城是电子商务的重要组成部分&#xff0c;是一个基于互联网的商业模式和交易平台&#xff0c;通过网络进行产品和服务的销售。…

【题目/训练】:双指针

引言 我们已经在这篇博客【算法/学习】双指针-CSDN博客里面讲了双指针、二分等的相关知识。 现在我们来做一些训练吧 经典例题 1. 移动零 思路&#xff1a; 使用 0 当做这个中间点&#xff0c;把不等于 0(注意题目没说不能有负数)的放到中间点的左边&#xff0c;等于 0 的…

Unity项目优化记录

背景&#xff1a;测试反馈项目组游戏存在内存泄露&#xff0c;来找到中台这边协调排查。好家伙&#xff0c;跑了两次看了内存快照&#xff0c;再看资源组织和管理方式&#xff0c;存在的问题确实比较多。 1、修复内存泄露&#xff1a;结算界面由于资源引用丢失导致整个面板不会…

景联文科技高质量文本标注:驱动自然语言处理技术的发展与应用

文本标注是自然语言处理&#xff08;NLP&#xff09;领域的一个重要环节&#xff0c;是指在文本数据上添加额外的信息或标记的过程&#xff0c;目的是为了让计算机能够理解和处理这些文本数据。 通过文本标注&#xff0c;可以为文本中的各个部分提供具体的含义和上下文信息&…

基于vue全家桶的pc端仿淘宝系统_kebgy基于vue全家桶的pc端仿淘宝系统_kebgy--论文

TOC springboot478基于vue全家桶的pc端仿淘宝系统_kebgy基于vue全家桶的pc端仿淘宝系统_kebgy--论文 绪 论 1.1开发背景 改革开放以来&#xff0c;中国社会经济体系复苏&#xff0c;人们生活水平稳步提升&#xff0c;中国社会已全面步入小康社会。同时也在逐渐转型&#xf…

这个是git使用的合集

如果遇到了关于git和github的bug就会写这里 2024/8/16 github一直没有打卡和上传代码是因为感觉除了做项目的情况&#xff0c;普通的学习和普通的笔记没必要记在github里&#xff1b;如果是笔记类的东西为什么不记在csdn上呢&#xff1f;如果是算法题算法网站上回有记录啊&am…

Cacti SQL注入漏洞分析(CVE-2023-51448)

Cacti 为全球用户提供强大且可扩展的运营监控和故障管理框架。它还是一个完整的网络绘图解决方案&#xff0c;旨在利用RRDTool的数据存储和绘图功能。Cacti 包括一个完全分布式和容错的数据收集框架、用于设备、图表和树的高级基于模板的自动化功能、多种数据采集方法、通过插件…

Vue2 和 Vue3中EventBus使用差异

目录 前言一、EventBus 和 mitt 的对比二、Vue 2 中的 EventBus 使用实例2.1 创建 EventBus2.2 在组件中使用 EventBus2.2.1 组件 A - 发送事件2.2.2 组件 B - 监听事件 2.3 注意事项 三、Vue 3 中的 mitt 使用实例3.1 安装 mitt3.2 创建 mitt 实例3.3 在组件中使用 mitt3.3.1 …

DHU OJ 二维数组

思路及代码 #include<iostream> using namespace std; int main(){ //input 多组 //input M,N int 1< <20 //input M 行 N 列 数据 //initialize listint M, N;while (cin >> M >> N){int list[M][N];for (int i 0; i < M-1; i){for (int j 0; j…

Python编写Word文档

目录 0. 安装依赖 1. 创建word文档 2. 添加标题、居中、字体16大小 3. 添加标题一 4. 添加一段话并设置字体颜色 封装函数 5. 换页 6. 插入表格 0. 安装依赖 python-docx1.1.2 1. 创建word文档 from docx import Documentdoc Document() 2. 添加标题、居中、字体1…

计算机网络面试题汇总

文章目录 计算机网络基础计算机网络体系结构(网络分层模型)OSI 七层模型是什么?每一层的作用是什么?TCP/IP 四层模型是什么?每一层的作用是什么?五层体系结构以及对应的协议为什么网络要分层,分层的好处?常见网络协议有哪些,每一层常见协议有哪些?应用层有哪些常见的协…

24/8/18算法笔记 目标导向强化学习

目标导向强化学习&#xff08;Goal-Oriented Reinforcement Learning&#xff0c;简称GORL&#xff09;是强化学习的一个分支&#xff0c;它关注于智能体如何通过与环境的交互来实现特定的目标或任务。与传统的强化学习不同&#xff0c;目标导向强化学习更加关注目标的设定和达…

一元二次方程系数

前言&#xff1a;刚刚开始写的时候也想到了先求出两个的解&#xff0c;但是没想到最后正负数系数怎么处理 且我才知道求解gcd是可以负数和正数的 #include<bits/stdc.h> using namespace std;#define int long long int t; int a,b,c;void solve(){cin >> a >&…

spfa()算法(求最短路)

spfa算法是对bellman_ford算法的优化&#xff0c;大部分求最短路问题都可以用spaf算法来求。 注意&#xff1a; &#xff08;1&#xff09;如若图中有负权回路&#xff0c;不能用spfa算法&#xff0c;要用bellman_ford算法&#xff1b;若只有负权边&#xff0c;则可以用 spf…

得到任务式 大模型应用开发学习方案

根据您提供的文档内容以及您制定的大模型应用开发学习方案&#xff0c;我们可以进一步细化任务式学习的计划方案。以下是具体的任务式学习方案&#xff1a; 任务设计 初级任务 大模型概述&#xff1a;阅读相关资料&#xff0c;总结大模型的概念、发展历程和应用领域。深度学…

vue3响应式工具 toRefs() 和 toRef()

前言 直接解构响应式对象的属性进行赋值给新的变量&#xff0c;会导致新变量失去响应式。 当修改新变量的值时&#xff0c;不会触发原始响应式对象的更新&#xff0c;从而在模板中也不会有相应的视图更新。 示例&#xff1a; <template><div><p>姓名: {{ …

案例分享—国外深色UI界面设计赏析

在国外&#xff0c;深色界面设计&#xff08;Dark Mode&#xff09;已成为提升用户体验的重要趋势。它不仅有效减少屏幕亮度&#xff0c;保护用户视力&#xff0c;还能在夜晚或低光环境下提供更加舒适的浏览体验。设计师们普遍认识到&#xff0c;深色主题不仅提升了应用的视觉层…

android13禁用打开wifi ap 热点

总纲 android13 rom 开发总纲说明 目录 1.前言 2.情况分析 3.代码分析 4.代码修改 5.彩蛋 1.前言 这个文章介绍的是如何禁止用户打开wifi热点,禁止用户安装app后,打开wifi热点。 2.情况分析 android13 应用层打开wifi AP public void setWifiApEnabled(boolean isEn…

qt-17不规则窗体

不规则窗体 知识点shape.hshape.cppmain.cpp运行图 知识点 感觉这个就是在图片背景 贴了白色 shape.h #ifndef SHAPE_H #define SHAPE_H#include <QWidget>class Shape : public QWidget {Q_OBJECTpublic:Shape(QWidget *parent nullptr);~Shape(); protected:void m…

HTML及CSS面试题4

1、BFC 1.1、介绍BFC及其应用 补充——触发BFC的方式&#xff0c;常见的有&#xff1a; 设置浮动overflow设置为&#xff1a;auto、scroll、hiddenpositon设置为&#xff1a;absolute、fixed 介绍&#xff1a; ○ 所谓BFC&#xff0c;指的是&#xff1a;一个独立的布局环境&am…