栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

xss.haozi.me靶场详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

xss.haozi.me靶场详解
  • 前言
  • 0x00
  • 0x0https://blog.csdn.net/m0_46467017/article/details/1
  • 0x02
  • 0x03
  • 0x04
  • 0x05
  • 0x06
  • 0x07
  • 0x08
  • 0x09
  • 0x0A
  • 0x0B
  • 0x0C
  • 0x0D
  • 0x0E
  • 0x0F
  • 0xhttps://blog.csdn.net/m0_46467017/article/details/10
  • 0xhttps://blog.csdn.net/m0_46467017/article/details/1https://blog.csdn.net/m0_46467017/article/details/1
  • 0xhttps://blog.csdn.net/m0_46467017/article/details/12

前言

由于xss.haozi.me是一个在线靶场, 服务部署在 Github,若网速不好,则需要科学上网。由于本靶场是一个白盒测试的靶场,我们可以看到代码的源码,所以可以直接根据源码的限制的条件来思考如何绕过。

0x00

通过源码我们发现本关没有任何限制所以直接输入
payload:
就可以过关了

0x0https://blog.csdn.net/m0_46467017/article/details/1


进入第一关分析源码得知,将我们输入的数据包裹在标签无法创建其他标签,所以这一关我们需要将

0x02


分析源码可以得知,将输入数据的返回值放在input标签中的value值里,因为本关没有做任何过滤,所以这里有两种绕过方法。

第一种:闭合vlaue值直接写input事件
第二种:闭合input标签,重新写入恶意标签

payload如下:

方法https://blog.csdn.net/m0_46467017/article/details/1:aaa" οnclick="alert(https://blog.csdn.net/m0_46467017/article/details/1)
方法2:"> 

由于方法https://blog.csdn.net/m0_46467017/article/details/1为点击事件,需要点击文本框才能生效,所以本关推荐方法2。

0x03


进入第三关发现本关通过使用正则表达式来过滤了我们的(),将()替换为空
若对正则表达式不了解的可以查看这篇文章链接: 正则表达式常用语法解析

所以本关我们的思路就是尝试写不带括号的标签,或者通过编码的形式来绕过。

以下给出两种payload方法绕过

方法https://blog.csdn.net/m0_46467017/article/details/1:使用反引号代替括号

方法二:使用html实体编码对括号进行编码

注:若要使用编码的方法绕过,需要注意html解析规范
例:将不会成功
因为 ,标签语句可以正常生效,但是标签中的alert函数是js解析,所以导致不会弹窗,所以本关我们将alert函数进行编码就可以绕过了,payload如下:


0x0C


进入本关发现在上一关的基础上过滤了script字符,所以我们直接使用上一关的payload就能直接绕过了。

0x0D


进入本关发现使用正则表达式过滤<、/、"、'几个符号。又将我们输入的数据放在注释行中。

所以本关想要绕过就只能使用换行符,使用换行符将我们要输入的alert(https://blog.csdn.net/m0_46467017/article/details/1)与注释符不在同一行,再将后面的注释符进行注释,就能成功绕过了。

payload如下:

aaaa
alert(https://blog.csdn.net/m0_46467017/article/details/1)
-->

0x0E


进入本关发现将所有用<开头的字母都进行了替换,让我们无法正常输入标签。

这里需要使用一个xss特殊的绕过技巧,在html中ſ这个字符转换为s,所以我们通过使用这个字符绕过这里的过滤函数。

payload如下:

<ſvg/onload='a&#https://blog.csdn.net/m0_46467017/article/details/108;&#https://blog.csdn.net/m0_46467017/article/details/10https://blog.csdn.net/m0_46467017/article/details/1;&#https://blog.csdn.net/m0_46467017/article/details/1https://blog.csdn.net/m0_46467017/article/details/14;&#https://blog.csdn.net/m0_46467017/article/details/1https://blog.csdn.net/m0_46467017/article/details/16;(https://blog.csdn.net/m0_46467017/article/details/1)'>

0x0F


我们发现本关将特殊字符转换为html实体编码放入img标签中的onerror事件中。

但是在onerror事件中html实体编码是可以正常转换调用的,所以我们可以直接输入')将前面闭合再输入,或;或换行将alert(https://blog.csdn.net/m0_46467017/article/details/1)分隔开来,就可以正常执行了。

payload如下:

aaaa');alert(https://blog.csdn.net/m0_46467017/article/details/1)//

0xhttps://blog.csdn.net/m0_46467017/article/details/10


进入本关发现,将输入的数据直接放入在一个window.data中

而这个就相当于windows中弹窗调用,所以直接输入alert(https://blog.csdn.net/m0_46467017/article/details/1)就可以成功弹窗了
payload为:
alert(https://blog.csdn.net/m0_46467017/article/details/1)

0xhttps://blog.csdn.net/m0_46467017/article/details/1https://blog.csdn.net/m0_46467017/article/details/1


进入本关发现在过滤了许多字符的基础上还将,n、r等换行操作给过滤了。

所以我们可以先把前面函数闭合,虽然不能使用换行操作,但是我们可以使用,或者;将代码分隔开来,再把后面字符使用注释符注释就可以成功绕过了。

payload如下:
"),alert(https://blog.csdn.net/m0_46467017/article/details/1)//

0xhttps://blog.csdn.net/m0_46467017/article/details/12


本关本质其实和上一关一样,就是将"替换为,防止闭合前面函数。
但是我们可以通过先输入符号将进行转义了,这样双引号就能成功闭合了。

payload为:

"),alert(https://blog.csdn.net/m0_46467017/article/details/1)//


总结:本靶场主要是白盒测试,多用于拓展xss绕过思路和技巧。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1031524.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号