Web安全-XSS-基础05

靶场:https://xss-quiz.int21h.jp/

1.stage #1 无过滤的XSS注入
1.1 使用闭合标签方式进行反射型 XSS 注入
2.Stage #2 属性中的 XSS 注入
2.1 使用闭合的input标签方式进行注入
2.2 在input标签属性中注入事件
3.Stage #3 选择列表中的 XSS 注入
4.Stage #4 在隐藏域中注入 XSS
4.1 查看隐藏域传递数值的效果
5.Stage #5 限制输入长度的解决方法
6.Stage #6 限制输入 <> XSS的注入
7.Stage #7 限制输入引号的 XSS 注入
8.Stage #8 JavaScript伪协议
9.Stage #9 UTF-7编码注入(跳过,不常用)
10.Stage #10 绕过关键字domain

stage 1(无过滤)

在这里插入图片描述
探测xss过程:
1、构造一个独一无二且不会被识别为恶意代码的字符串用来提交
例如:qwe123
2、使用浏览器F12进行审查代码,寻找构造的字符串是否在页面中显示

在这里插入图片描述
可以看到是由双引号以及b标签闭合的,
构造payload:

使用双引号和b标签让我们的js脚本可以被浏览器解析

"</b><script>alert(document.domain)</script>

在这里插入图片描述

如果我们不闭合标签,即使在双引号内,文本依然会被作为js脚本执行!

<script>alert(document.domain)</script>

在这里插入图片描述

stage 2(属性中的XSS注入)

在这里插入图片描述
分析源码,payload是包裹在input中的value属性中,也就是在input标签属性中进行注入:

payload:

"><script>alert(document.domain)</script>

在这里插入图片描述
input标签被闭合了,执行了我们的js代码

stage 3(选择列表中的 XSS 注入)

测试发现代码被b标签包裹
在这里插入图片描述
尝试用"</b>进行闭合,失败

在这里插入图片描述
看来并不是在此处,再看题会发现自己可以选择国家,猜测注入点会不会在此处,
使用burpsuite抓包:
在这里插入图片描述

p2处构建payload:

<script>alert(document.domain)</script>

在这里插入图片描述
成功出现弹窗!!

4.Stage #4 在隐藏域中注入 XSS

抓包可以发现比较上一关多出了个p3

在这里插入图片描述

payload:

<script>alert(document.domain)</script>

并没有弹窗,再查看源代码发现我们的js代码在input中的value属性,这就好办了,闭合value的双引号和input的单括号即可!
在这里插入图片描述

构建payload:

"><script>alert(document.domain)</script>

成功!
在这里插入图片描述

5.Stage 5 (限制输入长度的解决方法)

长度有限,F12修改最大长度:

可输入字符最大长度是15,发现可以直接修改,直接置空即可

我们的payload还是在value中,直接上payload:

"><script>alert(document.domain)</script>

在这里插入图片描述

6.Stage 6 (限制输入 <> XSS的注入)

在这里插入图片描述
发现<>被转换为实体符号了,那就要用引号来构建payload了

HTML 时间中常见的鼠标事件参考:
https://www.runoob.com/tags/ref-eventattributes.html

这里需要用到onmouasemove
在这里插入图片描述
构建payload,这里只需要闭合value的双引号即可:

" οnmοusemοve="alert(document.domain)"

在这里插入图片描述

在这里插入图片描述

7.Stage 7 (限制输入引号的 XSS 注入)

经过测试发现引号也被限制了,用空格代替即可
payload:

123 οnmοusemοve=alert(document.domain)

在这里插入图片描述

在这里插入图片描述

8.Stage 8 (JavaScript伪协议)

我们输入的字符都会转换为一个链接
在这里插入图片描述
看来突破口就在这里了,需要用到JSP伪协议:
就是使用a标签的href来运行javascript的方法

javascript:alert(document.domain)

在这里插入图片描述
点击链接即可弹框
在这里插入图片描述

9.Stage 9 (UTF-7编码注入)

这种编码可以使其绕过很多过滤规则,不常用,目前浏览器貌似只有IE支持UTF-7编码了
不做总结。

10.Stage 10 (绕过关键字domain)

domain被过滤了,尝试双写绕过

payload:

"><script>alert(document.dodomainmain)</script>

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
另一种方式采用编码绕过:
Payload:

"><script>eval(atob('YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ=='));</script>

eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
atob() 方法用于解码使用 base-64 编码的字符串,base-64 编码使用方法是 btoa() 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值