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>
posted @ 2022-11-20 15:51  周知行  阅读(185)  评论(0编辑  收藏  举报