网络安全之XSS基础

news2025/2/5 18:00:38

从 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>,交互后可执行。

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

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

相关文章

代码随想录:动态规划6-10

62、不同路径 题目 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径…

基于STM32开发的智能农业环境监控系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 系统初始化传感器数据采集与处理环境控制与状态指示Wi-Fi通信与远程监控应用场景 农业温室环境管理农田环境监控与自动化管理常见问题及解决方案 常见问题解决方案结论 1. 引言 随着农业技术…

Codigger 视频会议(Meeting):制造业的高效协作引擎

在制造业数字化转型的浪潮中&#xff0c;企业面临着前所未有的机遇与挑战。视频会议作为一种高效的沟通工具&#xff0c;在制造业中发挥着关键作用。 制造业对于视频会议有着多方面的需求与挑战。不同生产基地往往分布在各地&#xff0c;跨地域协作需求十分迫切。在技术交流时&…

stm32—ADC

1. 什么是ADC 生活中我们经常会用到ADC这种器件&#xff0c;比如说&#xff0c;当我们在使用手机进行语音通信时&#xff0c;ADC器件会将我们的声信号转换为电信号 (模拟信号 ---> 数字信号) 模拟信号&#xff1a; 模拟信号是指用连续变化的物理量表示的信息&#xff0c;其信…

【Vue3】编程式路由导航

【Vue3】编程式路由导航 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日…

【Qt】 常用控件QLCDNumber

常用控件QLCDNumber QLCDNumber是一个专门用来显示数字的控件&#xff0c;类似于“老式计算机”的效果。 QLCDNumber的属性 属性说明 intValue QLCDNumber 显⽰的数字值(int). value QLCDNumber 显⽰的数字值(double). 和 intValue 是联动的. 例如给 value 设为 1.5, i…

C语言程序设计-练习篇

山海自有归期&#xff0c;风雨自有相逢。 一 下面代码的结果是什么&#xff1f; int main() { int i 0; for (i 0; i < 10; i) { if (i 5) //此处为赋值&#xff0c;i 5表达式结果为5 printf("%d ", i); //表达式为真&a…

AI 进阶实战 | 走进大模型(LLM)+智能体(Agent)+提示词(Prompt)

前言 人工智能&#xff08;AI&#xff09;不再只是科幻电影中的桥段&#xff0c;而是正以前所未有的速度改变着我们的世界。随着大规模语言模型&#xff08;LLM&#xff09;系列的崛起&#xff0c;结合高度智能的&#xff08;Agent&#xff09;与精心设计的&#xff08;Prompt…

topic交换机

topic交换机 是什么交换机模式 这个模式可以用点分割代表不同的消息类型 例如:有4种消息,其中我想发送china相关的消息,就china.#,指多个单词 我想发送各国的天气,就可以#.weather 优势 比directexchange相比更方便些 案例 创建队列 创建交换机 绑定 绑定关系已确认

macOS安装搭建python环境

安装Homebrew apt-get是一个常见于Debian和Ubuntu等基于Linux的操作系统中的包管理工具&#xff0c;用于安装、更新和移除软件包。然而&#xff0c;macOS使用的是Homebrew或者MacPorts等其他的包管理工具&#xff0c;并不使用apt-get。 如果你想在macOS上使用类似apt-get的功…

创建、使用、删除 数据库

一、创建数据库 1.1 使用DDL语句创建数据库 CREATE DATABASE 数据库名 DEFAULT CHARACTER SET 字符编码; 案例&#xff1a; 创建一个test 的数据库&#xff0c;并查看该数据库。 create database test default character set utf8; show databases; 1.2 使用Navicat创建数据库 …

快速排序的深入优化探讨

快排性能的关键点分析 决定快排性能的关键点是每次单趟排序后&#xff0c;key对数组的分割&#xff0c;如果每次选key基本⼆分居中&#xff0c;那么快排的递归树就是颗均匀的满⼆叉树&#xff0c;性能最佳。但是实践中虽然不可能每次都是⼆分居中&#xff0c;但是性能也还是可…

【电子信息工程大学生的职业准备策略指南】

电子信息工程是一个快速发展且应用广泛的领域&#xff0c;对于大学生来说&#xff0c;为未来的职业生涯做好准备是一项重要任务。 目录 一、扎实的专业知识基础 二、实践能力的培养 三、编程与软件开发技能 四、创新思维与解决问题的能力 五、专业认证与资格证书 六、实习…

Element UI中el-dialog作为子组件如何由父组件控制显示/隐藏~

1、这里介绍的是将el-dialog作为组件封装便于复用&#xff0c;如何通过父组件控制子组件dialog的显示与隐藏。 2、思路:首先el-dialog是通过dialogVisible的值是否为true或false来控制显示与隐藏的。那么我们可以通过父传子props来将true&#xff08;即showFlag的值&#xff0…

影刀RPA--如何获取网页当页数据?

&#xff08;1&#xff09;点击数据抓取-选择需要获取数据的地方-会弹出是否是获取整个表格&#xff08;当前页面&#xff09; &#xff08;2&#xff09;点击“是”&#xff1a;则直接获取整个表格数据-点击完成即可 &#xff08;3&#xff09;点击“否”&#xff1a;如果你想…

发那科机器人常见的异常解决方案

第一类错误&#xff1a;示教板空白、机器人死机 判断方法&#xff1a;1、PSU 上红色LED 亮代表电源供给报警&#xff0c;可能保险F4熔断、查看CP2、CP3线路&#xff08;200ACV输出&#xff09;、更换PSU&#xff1b;绿色PIN熄灭代表电源供给单元未获得200V 的交流电源输入&…

1.检查现场运行环境-《篮球比赛展示管理系统》现场管理员角色操作手册

篮球比赛现场PC电脑,充当管理端&#xff0c;内装的浏览器要求是Firefox、Chrome、Edge、Safari等最新版市场主流浏览器等。

SAP EWM PMR

目录 1 简介 2 业务流程 3 业务操作 4 主数据设置 4.1 ERP 主数据 4.2 EWM 主数据 5 后台配置 5.1 主数据 5.2 GI 流程 5.3 仓库内部移动流程 5.4 仓库任务设置 5.5 集成 5.6 EWM 链接 1 简介 EWM PMR 分 2 部分功能&#xff0c;第一是 MES-Driven Staging&#…

OSI七层网络模型 /TCP/IP五层模型以及封装分用的详细讲解

文章目录 协议分层的好处OSI七层网络模型TCP/IP五层网络模型网络设备所在的分层(重点)封装和分用 协议分层的好处 第一点&#xff1a; 在网络通信中&#xff0c;如果使用一个协议来解决所有的问题&#xff0c;那么这个协议就会非常的庞大&#xff0c;非常不利于去学习和理解&…

Ciallo~(∠・ω・ )⌒☆第二十二篇 入门request请求库使用

请求库是用于发送HTTP请求的工具。常见的请求库有requests&#xff0c;它是一个功能强大且易于使用的HTTP库。 使用requests库发送GET请求&#xff1a; import requests url "https://httpbin.org/get"# 携带get请求参数 params {"pn": 10,"size&q…