当前位置: 首页 > news >正文

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>

 

 

 

http://www.lryc.cn/news/376434.html

相关文章:

  • python快速入门之Flask框架
  • 【云原生| K8S系列】Kubernetes Daemonset,全面指南
  • 【Python机器学习实战】 | 基于决策树的药物研究分类预测
  • B端系统的UI框架选择,不要输在了起跑线,如何破?
  • RabbitMQ延迟消息(通过死信交换机实现)
  • Java - 分支结构 - if…else/switch
  • web安全渗透测试十大常规项(一):web渗透测试之XML和XXE外部实体注入
  • 任务3.8.2 利用RDD计算总分与平均分
  • 探索磁力搜索引擎:互联网资源获取的新视角
  • 立创开源学习篇(一)
  • 2024/6/18 英语每日一段
  • 时隔一年,SSD大涨价?
  • 【TB作品】MSP430G2553,单片机,口袋板,流量积算仪设计
  • 九、数据结构(并查集)
  • 大模型开发技术基础
  • 芯片验证分享9 —— 芯片调试
  • java 面试题--基础
  • 必看!!! 2024 最新 PG 硬核干货大盘点(上)
  • Redis 高可用 sentinel
  • 【数据结构】练习集
  • 驱动开发(四):Linux内核中断
  • btrace:binder_transaction+eBPF+Golang实现通用的Android APP动态行为追踪工具
  • C# OCCT Winform 界面搭建
  • System.Dynamic.ExpandoObject的使用说明
  • adb之ps命令用法
  • Ubuntu-24.04-live-server-amd64安装界面中文版
  • Git的3个主要区域
  • 【操作系统】操作系统实验02-生产者消费者程序改进
  • TCP协议是安全的吗?
  • c语言回顾-结构体(2)