Pikachu靶场通关笔记--Cross-Site Scripting (XSS)

1.反射型XSS(get)

首先,我们先区分get和post的区别。GET是以url方式提交数据;POST是以表单方式在请求体里面提交。通过get提交的数据是可以直接在url中看到的,所以GET方式的XSS漏洞更加容易被利用, 一般利用的方式是将带有跨站脚本的URL伪装后发送给目标,而POST方式由于是以表单方式提交,无法直接使用URL方式进行攻击。

先尝试我们的普通一击 <script>alert("xss")</script>看看效果

我们发现后边的内容被截断了,判断可能有字符数量限制,F12找一下看看,找到字符限制20 

 直接前端修改字符数到2000再尝试,成功弹窗。 并且写入的js语句是在url中直接显示的。

2.反射型XSS(post)

 提示先要登陆账号,登录账号后开始行动!

输入123456可以看到输入内容会显示在前端,但是请求方法变成了post,url不会显示出输入的内容。

直接输入payload,<script>alert("xss")</script>,弹窗成功!

 总结一下,反射型xss,这种攻击的特点是非持久化。

3.存储型xss

 

这是一个留言板,我们随便留言一些内容。

可以看到,我们输入的内容,都在前端中显示了出来,那么我们如果留言一段xss的payload呢?

 <script>alert("xss")</script>

留言以后出现了弹窗,当我们退出这个页面,重新进入留言板时 ,依然会弹窗。

依此,我们可总结区分出反射型xss和存储型xss的一个区别,就是反射型xss攻击是非持久型的,而存储型xss攻击是持久型的。

4.Dom型xss 

DOM XSS的XSS代码并不需要服务器解析响应的直接参与,触发XSS靠的就是前端的DOM解析,可以认为完全前端的事情。用户输入的参数中如果包含js语句,输入内容就会被当做js执行,就有可能导致DOM XSS

输入123后,点击click me下面显示出来what do you see?,我们查看前端代码发现123直接赋值给了a标签的href,这就导致了xss漏洞产生。

payload使用:  javascript:alert("123")

输入之后,点击what do you see?发生弹窗。

5.Dom型xss -x

 请说出你的伤心往事,点一下,会发现出现一个链接“有些费尽心机想要忘记的事情,后来真的就忘掉了”,同时text=空

查看源代码 

点一下这个链接“有些费尽心机想要忘记的事情,后来真的就忘掉了”,text=#

会出现“让往事都随风,都随风吧”

点一下都随风,会发现回到了上一级,text为空的状态,F12定位一下链接位置 ,原来a标签中,href的值是空。

重新开始,尝试在input输入框输入

'onclick="alert(666)">

 

再依次点击链接,发生弹窗。

查看源代码,原来是'οnclick="alert(666)">闭合掉了a标签,οnclick="alert(666)"被执行。

6.XSS之-盲打 

 XSS盲打指的是一种攻击场景,在数据提交界面提交数据后,前端不管是url还是源代码都看不到输入的内容和效果,这种数据只有后端管理员可以看见,当管理员触发盲打被X到的话,危害是非常大的,很可能造成管理员的cookie泄露,使攻击者可以通过管理员权限登录网站后台。

我们尝试输入一段xss的payload 提交上去,按照提示前往管理员后台。

<script>alert('你被X了')</script>

 

一登陆,发现被弹窗,进入后看到了留言者的信息。

7.XSS之过滤

人生苦短嘛?输入一些内容看看会不会过滤,输入<>,.<script>/?;:'"[{]}\|alert,发现被过滤。

 

 再输入,.<>/?;:'"[{]}\|这些符号,发现符号可以通过

判断可能过滤了<script>标签,尝试大小写混写看看能否绕过。

<scRIPt>alert(666)</ScrIpt>

 输入后发生弹窗,观察发现大小写混写的<script>标签未被过滤。

 因为判断可能是过滤<script>标签,我们尝试用<img>注入试试,发现也可以弹窗。

<img src=x onerror="alert(666)">

8.xss之htmlspecialchars

首先,我们按提示得学习了解一下什么是htmlspecialchars。

htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。

预定义的字符是:

&(和号) 成为&amp;

" (双引号) 成为 &quot;

' (单引号) 成为 &apos;

< (小于) 成为 &lt;

> (大于) 成为 &gt;

我们在输入框输入 其预定义的字符  &'><" 查看一下

我们发现一件事情,唯独' (单引号)没有转换成html实体并且单引号闭合了href的赋值。

我们可以写入   XXX' οnclick='alert(666)'  ,XXX后的单引号用于闭合href的赋值

XXX' onclick='alert(666)'

输入后值被记录,且给a标签熟悉添加了 οnclick='alert(666)'

 

 点击 XXX' οnclick='alert(666)' 的链接,发生弹窗。

9.xss之href输出和xss之js输入

这两个,我放在一起,先打开xss之href输出,input框中输入

javascript:alert("123")

我们发现 javascript:alert("123")赋值给了href,点击阁下自己的url,alert被执行,发生弹窗。

打开xss之js输入,在输入框输入tmac,发现输入内容赋值给$mc,由单引号闭合

 尝试构造payload,  x'</script><script>alert('xss')</script> 使用单引号闭合$mc,再由</script>闭合script标签,而后构造script标签,写入alert弹窗,成功弹出。

x'</script><script>alert('xss')</script>

 后记

在pikachu-master\pkxss下,有rkeypress、xcookie、xfish文件夹,对应pikachuXss后台的键盘记录、cookie收集、和钓鱼结果,可以通过以上的xss漏洞进行类似实战的测试,获取被害人的一些敏感信息。

 具体操作参考pikachu靶场通关_yyysec的博客-CSDN博客_pikachu靶场通关中的内容。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值