Pikachu XSS关卡详解
Background
pakachu这个靶场可以做很多web题目 在这里着重帮助大家解决xss项目
环境
系统:Windows11
本地服务器:PHPstudy2018
靶场:pikachu
1.反射型xss(get)
在这里随便输入脚本进行尝试
<script>alert("xss")</script>
这个时候发现输入到一般不能继续输入,就可以想到是前端限制了输入字数
F12对字数限制进行修改
双击20修改成更大的数字 这个时候就可以完成注入

2.反射型xss(post)
这一关与上一关相同 不过需要先登录 admin 123456
<script>alert("xss")</script>
3.存储型xss
PS:存储型一般出现在留言板 存储在数据库中 然后只要人看到就会开始作用
此关仍然没有过滤
<script>alert("xss")</script>

4.DOM型xss
随便输入语句可以看到内容出现了元素中 我们可以通过构造使之闭合成为新标签或者添加新元素完成xss攻击
payload:
javascript:alert("xss")
然后点击出现的链接即可
5.DOM型xss
payload与上一关相同,不过有两次寻找链接元素找到可以插入
6.xss盲打
盲打只是一种惯称的说法,就是不知道后台不知道有没有xss存在的情况下,不顾一切的输入xss代码在留言啊,feedback啊之类的地方,尽可能多的尝试xss的语句与语句的存在方式,就叫盲打。
“xss盲打”是指在攻击者对数据提交后展现的后台未知的情况下,网站采用了攻击者插入了带真实攻击功能的xss攻击代码(通常是使用script标签引入远程的js)的数据。当未知后台在展现时没有对这些提交的数据进行过滤,那么后台管理人员在操作时就会触发xss来实现攻击者预定好的“真实攻击功能”。
通俗讲就是见到输入框就输入提前准备的xss代码, 通常是使用script标签引入远程的js代码,当有后台人员审核提交数据时候,点击了提交的数据,触发获取到有价值信息 。
输入:
发现没有任何反应 这就是盲打 我们登录后台看看就会中招
7.xss过滤
这一关明确写着有过滤,于是正常的xss就无法完成攻击 绕过过滤的方法有几个
- 大小写绕过
- 双写绕过
- js编码#unicode js的一种编码方式
- html实体编码
- url编码
这里采用大小写绕过
payload:
<sCript>alert("xss")</sCript>
或者:<img src=x onerror="alert('img标签')">
8.xss之htmlspecialchars
htmlspecialchars()函数默认只编码双引号,当开发者未对单引号过滤时,就会可能导致XSS的发生
javascript:alert(/xss/)
或者闭合href 添加新属性
' onclick='alert("xss")'
9.xss之href输出
这一关可以使用上一关的第一个payload 不能使用第二个
因为引号等被编码了
10.xss之js输出
这里讲输入动态的生成到了js中,形成xss
javascript里面是不会对tag和字符实体进行解释的,所以需要进行js转义
构造闭合,把原本的<script>
闭合掉,再插入我们自己的<script>
输入:xss'</script><script>alert("xss")</script>
payload:
xss'</script><script>alert("xss")</script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)