Java渗透测试靶场“天境”通关系列:XSS
2023-04-05 13:59:22
所属地 广东省
 本文由 创作,已纳入「FreeBuf原创奖励计划」,未授权禁止转载
一、靶场地址
------
### GitHub
https://github.com/mynameis0day/skymirror/tree/master
### 百度网盘
链接:https://pan.baidu.com/s/1103FAT65VLXWj0NbN4TYMw?pwd=37r2
提取码:37r2
二、靶场搭建
------
天境是一款基于Java编写的渗透测试靶场,目前1.0版本覆盖的漏洞类型是暴力破解、命令执行、反序列化、文件下载、SpEL注入、SSRF、文件上传、URL跳转、XSS、XEE,共计10种类型。
靶场启动特别简单,资源文件夹中包含了项目的源代码“SourceCode”和它的jar包文件“skymirror.jar”,大家可以根据自己的喜好来启动靶场。
下面说明一下如何利用jar包来启动该靶场:
(1)来到skymirror.jar的本地目录下
(2)运行命令“java -jar skymirror.jar”
(3)浏览器访问“本机IP:8080/interface/index.html”即可访问靶场。
启动成功如下图:
然后就可以愉快的玩耍了!
三、XSS关卡
-------
靶场的XSS关卡共用16关,每一个关卡所考察的知识点都非常经典,值得大家好好钻研。
那就让我们开始通关之旅吧!
### 第一关:熟悉XSS漏洞
这一关没有任何的过滤,直接输入payload“”即可触发弹窗:
### 第二关:叠堆绕过
看一下源代码:
可以知道,后台把“”给过滤了,但只是过滤一次,所以这时候可以构造payload“ipt>alert(2)ript>”来绕过过滤:
### 第三关:事件绕过
看一下源代码:
后台把“script”替换为了“?”,可以得知,含有“script”的payload都不起作用了。这时候可以考虑利用事件来绕过过滤,构造payload:
,点击图片,成功触发弹窗:

总结一下常见事件函数:

### 第四关:html实体编码绕过
看一下源代码:

这一关过滤得非常严格,有“script”关键词、弹窗函数和伪协议javascript的payload都不起作用了。遇到这种情况,可以利用HTML编码绕过。
当"可控点"为单个标签属性时,可以使用 html 实体编码:
test