首页
社区
课程
招聘
[原创]pikachu靶场--xss续
发表于: 2026-3-3 17:15 565

[原创]pikachu靶场--xss续

2026-3-3 17:15
565

dom-xss-x

查看源码

payload   'onclick="alert('wyz')">

闭合后相当于 "<a href=''onclick="alert('wyz')">"+xss+"'>就让往事都随风,都随风吧</a>"

a标签就是"<a href=''onclick="alert('wyz')">"

对应的引号闭合后就只剩下 '>就让往事都随风,都随风吧

点击触发事件


xss-盲打

随意输入一些内容后,返回

初步猜测这是一个存储型的xss,并且评论内容用户不可见,那么payload注入后可能是由管理员来触发

那我们登录管理员账号



为了验证我们的想法

还是采用我们最爱的<script>alert('xss')</script>,由于有两个可注入点,一个用xss1,一个用xss2表示

再次管理员登入

xss-过滤

随意输入

直接注入<script>alert('xss')</script>,发现


说明输入被过滤了

简单测试一下他的过滤机制   <script>!#,.?123xasf

发现<script>会被过滤

简单对<script>大小写进行改变   <SCript>alert(1)</sCRipt>

再尝试一下不使用<script>payload   <a href=''onclick="alert('wyz')">

发现已经生成链接,点击返回wyz弹窗


xss-htmlspecialchars

输入hhh看看源码什么情况    <a href='hhh'>hhh</a>


再次输入<script>,'"123qwe看看字符过滤

发现<>"被编码

那在payload的选择上我们就避免这两种字符      ' onclick='alert(1)  

相当于变成了<a href= '' onclick='alert(1)'>

点击链接有1弹窗响应

 

也可以使用javascript伪协议的payload   alert(1)

那就等同于<a href='alert(1)'>

同样点击后响应1弹窗

需要注意的是,这两种payloadalert括号中的内容不能是'xss''会和前面的'闭合,提前结束属性值


xss-href

输入a29K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3u0S2K9h3c8#2i4K6u0W2j5$3!0E0

点击链接跳转至百度,查看源码


看着和上一个模块差不多,直接注入' onclick='alert(1)看看

失败了,再看源码发现单引号被编码了

那我们使用alert(1),成功注入


但我们发现alert('xss'),也能成功,这是为什么呢

查看源码


实际上对于href=' onclick='alert(1),整个字符串都成为 href 的内容,而 onclick 并没有被解析为一个独立的属性,因为单引号被编码后失去了属性分隔符的功能。

而对于href=javascriptalert(' xss')来说,浏览器在解析html属性时,会先将 html实体还原成字符,所以实际 href 的值变为 alert('xss')


xss-js

输入yaoming看看源码,是js脚本

尝试输入<script>alert(1)</script>,再查看源码发现本来脚本的</script>被我们注入的payload提前闭合了


那我们构造payload时先用</script>闭合脚本开始的<script>,后面的内容就可以任意发挥了  </script><script>alert('js')</script>


我们还可以使用 ';alert(document.cookie);//           '用于闭合前面的'//则是注释掉后面的内容






传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2026-3-3 17:16 被mb_tqjnyivs编辑 ,原因: 标题错误
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回