pikachu靶场之XSS漏洞测试

一、环境配置

1.pikachu官网下载

下载地址:https://github.com/zhuifengshaonianhanlu/pikachu

2.百度网盘(里面含有pikachu跟phpstudy

链接:pikachu下载

密码:abcd

配置:pikachu下载及安装-图文详解+phpStudy配置-CSDN博客

二、XSS漏洞测试

1.反射型xss(get) 

开始提示哪个是你最喜欢的nba球员,我们先点击提交试试

输入kobe之后,我们可以发现url中的message从没有变成了kobe,利用此参数进行xss注入js代码

<script>alert(1)</script>                                            #最基本的js攻击代码

当你尝试利用在框里写上以上代码时,发现对长度进行了限制,我们可以在前端修改限制的长度,从而进行攻击 。如果你在url中攻击就没有这样的烦恼

以下图片是在前端中进行修改长度来进行攻击 

2.反射型xss(post)

当我们输入正确密码登录进去后,发现url出现了post反映的.php文件,GET和POST的区别是GET是以url方式提交数据而POST是以表单方式在请求体里面提交即在上一个实验中,可以通过URL来改变参数利用xss漏洞,而在这个实验中不可以。

<script>alert(1)</script> 

 

3.存储型xss 

进入此关卡,发现了一个留言板,尝试用基本的js代码攻击

注意:与前两个关卡不同(反射型xss攻击是一次性的),而存储型xss攻击是持久的,它是将攻击代码存储到数据库中,当被攻击的用户每次打开这个留言板界面,都会出现回显

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

4.DOM型xss 

 DOM概念:DOM文档就是一份XML文档,当有了DOM标准之后,DOM便将前端html代码化为一个树状结构,方便程序和脚本能够轻松的动态访问和更新这个树状结构的内容、结构以及样式,且不需要经过服务端,所以DOM型xss在js前端自己就可以完成数据的输入输出,不与服务器产生交互,这样来说DOM型xss也可以理解为反射性xss,但是反射型xss需要与服务器交互,这就是二者的区别。

打开前端代码,看到我们攻击的代码被注释掉了,此时我们需要尝试绕过

点击提交按钮时会触发onclick事件,执行domxss()函数,通过document.getElementById()函数获取输入框内内容显示到页面
只要将 < a href="' "> < /a >标签造成闭合即可通关,我们输入

#' οnclick="alert('xss')">

 5.xss盲打

随便输入什么,提示谢谢参与,阁下的看法我们已经收到,说明我们输入的内容像是被提交给了后台, 我们接着尝试输入语句

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

 点击提交,查看提示,进入xss后台,

后台登录地址是/xssblind/admin_login.php                  #在url上进行修改即可,登录成功就会回显     

6.xss之过滤 

xss绕过-过滤
1.前端限制绕过,直接抓包重放,或者修改html前端代码
2.大小写,标签,双写,编码,拼凑

先尝试基本的攻击语句,发现没有什么反应,出现了过滤

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

我们查看源代码,发现对<script>进行了过滤

我们尝试用大小混写的方式绕过

<ScRipT>alert('xss')</ScRipT>

 

7.xss之htmlspecialchars 

将上一关过关代码尝试攻击,猜测<>被htmlspecialchars函数转义了

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

预定义的字符是:     &(和号)成为&               ”(双引号)成为"

'(单引号)成为'                     ‘’< ‘’(小于)成为<                             ‘’> ‘’(大于)成为 >


尝试输入特殊符号,''""<>123,看看过滤,发现除了',其他全被过滤了

 

此时,我们构造'闭合语句,之后点击蓝色字体,出发鼠标点击事件

' οnclick='alert(123)' 

 

 

8.xss之href输出 

尝试代码过滤内容,发现我们输入的内容在a标签中的href中,可以使用javascript协议来执行js

 javascript:alert(123)

输入完成后,点击下方蓝字 

 

9.xss之js输出

尝试看看有没有过滤,查看网页源代码,翻到底下,发现并没有过滤,尝试用'闭合

这里用'闭合$ms,用</script>闭合上面的<script> 

'</script><script>alert('123')</script>

 

 

 

  • 39
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值