pikache靶场通关——XSS漏洞

2023-11-11

文章目录


前言

Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:

  1. 反射性XSS;
  2. 存储型XSS;
  3. DOM型XSS;

XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。

形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。

在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:

  • 输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
  • 输出转义:根据输出点的位置对输出到前端的内容进行适当转义;

在这里插入图片描述
靶场一共有10关,现我们就开始通关吧。


环境

靶场安装机器:Windows10(192.168.1.107)
渗透机器:Windows10(192.168.1.108)


第一关、反射型xss(get)

在这里插入图片描述
一个平平无奇的输入框

Step.1、输入特殊字符测试

遇到输入框,作为渗透测试人员,第一反应就是输入特殊字符看看,我这里就先输入一个双引号"瞧瞧。
在这里插入图片描述
能输出,看来特殊字符做了过滤

Step.2、输入js语句

往输入框中输入<script>alert(1)</script>看看
在这里插入图片描述

发现无法完全输入,查看页面源码,这输入框做了长度限制

在这里插入图片描述

把长度限制改成100,再次输入js语句看看

在这里插入图片描述
在这里插入图片描述
能成功弹出,说明存在XSS反射型漏洞

Step.3、在URL中输入js语句

在这里插入图片描述

回车,发现也能成功弹出
在这里插入图片描述
到此,第一关通关


第二关、反射性xss(post)

在这里插入图片描述
登录它吧,pikachu靶场的默认账号密码是:admin/123456,如果你想用渗透手法获取账号密码,也可是使用上一个挑战 —— 暴力破解的手法来获取,这里节省时间,就直接登录了。

在这里插入图片描述
登录后发现,也是一个平平无奇的输入表单

Step.1、输入获取cookie的js语句

输入:<script>alert(document.cookie)</script>
在这里插入图片描述
好了,弹出了cookie信息,说明这里的确存在XSS漏洞,第二关通关


第三关、存储型xss

在这里插入图片描述
平平无奇的一个留言框

Step.1、输入获取cookie的js语句

输入:<script>alert(document.cookie)</script>
在这里插入图片描述
能顺利弹出cookie信息

Step.2、查看页面源码

在这里插入图片描述
直接在留言列表里面能看到我自己输入的payload

Step.3、感受危害性

使用另一个浏览器登录靶场,点开对应页面
在这里插入图片描述
我都还没有进入页面就先弹出我的cookie了,这说明这句payload已经存进了数据库。设想一下,一个正常网站,每次进去都会弹出十几次的弹框,这回让人非常不方便。

打开数据库查看,这一句payload的确已经存进来了。
在这里插入图片描述
第三关通关


第四关、DOM型XSS

在这里插入图片描述
同样也是一个平平无奇的表单。

Step.1、输入js语句测试

输入:<script>alert(document.cookie)</script>
在这里插入图片描述
发现没反应。

Step.2、查看页面源码

在这里插入图片描述
发现被包裹在a标签里面了,难怪不起作用,这稍微构造以下payload吧

Step.3、再次输入js代码编写的payload

输入:'></a><script>alert(document.cookie)</script><a href='
在这里插入图片描述
输入发现没有弹窗,说明这个payload不行

再尝试构造另外一个payload:#' onclick="alert(document.cookie)">
在这里插入图片描述

点击,发现有弹窗了
在这里插入图片描述
第四关通关。


第五关、DOM型XSS-S

在这里插入图片描述
如图,很哀伤的一个表单

Step.1、输入js语句测试

输入:<script>alert(document.cookie)</script>
在这里插入图片描述
没啥反应,这时候得查看页面源码

Step.2、查看页面源码

在这里插入图片描述
这里有个onclick事件,点开它看看
在这里插入图片描述
好了,看到我们输入的内容到这里来了,这直接按照第四关得步骤来吧

Step.3、输入编写好的payload

payload:#' onclick="alert(document.cookie)">
在这里插入图片描述
第五关通关。


第六关、XSS盲打

在这里插入图片描述
有点意思的一个页面

Step.1、输入payload测试

随便输入点payload吧
在这里插入图片描述
提交后什么都没有发生,查看一下页面源码
在这里插入图片描述
同样什么都没有。发现我输入得东西被post表单提交了,想不到,只能看个提示了。
在这里插入图片描述
原来这里要登录后台查看

Step.2、按提示查看后台

在这里插入图片描述
账号密码是:admin/123456,点击登录

在这里插入图片描述
神奇得事情发生了,一登陆,我刚才输入的2个payload都弹出了。
好家伙,原来这就叫盲打,第六关通关。


第七关、XSS之过滤

在这里插入图片描述
一股哲学气息扑面而来。

Step.1、输入payload测试

现在看到这种,第一反应就是扔个payload进去瞧瞧了
<script>alert(document.cookie)</script>
在这里插入图片描述

好的,没反应,再来看看页面源码
在这里插入图片描述
也没看出啥,但是能发现是使用get表单的方式提交,来,抬头看看url
在这里插入图片描述
就在这里了。

Step.2、分析

结合URL和返回结果,只输出了一个 “>”字符,其他的内容被过滤了,但我们完全不清楚它的过滤规则是什么,没办法,就尝试一下把URL中的payload中的部分字母变成大写吧。

Step.3、绕过过滤

把URL中的payload部分字母变成大写
在这里插入图片描述
在这里插入图片描述
显示出来了!这不立即改写一下payload

改写后的payload:'</p><script>alert(document.cookie)</script><p>'
输入后再次提交
在这里插入图片描述
这……看来得想想办法。

换个标签试一试吧,就尝试一下用a标签

输入的payload:<a herf="#" onclick="alert(document.cookie)">
在这里插入图片描述
好了,点击后面变色的内容能够直接弹出了,看来过滤规则是针对script标签的,第七关通关。


第八关、XSS之htmlspecialchars

在这里插入图片描述
这表单挺臭美的

Step.1、输入payload测试

老规矩,输一个payload进去试一试
在这里插入图片描述

查看页面源码
在这里插入图片描述
看到这情况,尝试改造payload,把a标签给闭合掉

Step.2、改造payload再次输入

输入的payload:#' onclick='alert(document.cookie)'>
点击查看
在这里插入图片描述
好了,成功弹出,第八关通关。


第九关、XSS之href输出

在这里插入图片描述
这次反而挺平平无奇

Step.1、输入payload测试

输入payload,发现没反应再查看页面源码
在这里插入图片描述

在这里插入图片描述
发现这里<>被编码了,这样子哪怕是把a标签给闭合也不可能实现,那就只好使用函数了,因为JavaScript里面的a标签中的href属性是可以直接使用函数的。

Step.2、输入js函数格式的payload

输入payload:javascript:alert(document.cookie)
在这里插入图片描述
点击
在这里插入图片描述
好了成功输出。第九关通关。


第十关、XSS之js输出

在这里插入图片描述
回到原初,又是平平无奇

Step.1、输入payload测试

输入payload: <script>alert(document.cookie)</script>
发现下面多了一串乱七八糟的东西
在这里插入图片描述

查看页面源码
在这里插入图片描述
发现我输入的payload到了script标签上来了,顺便还把script标签给闭合了,所以才会出现这一串乱七八糟的东西。

Step.2、输入构造好的payload

接下来就简单了,直接重新构造payload
新的payload:';alert("cookie值是:"+document.cookie); //
在这里插入图片描述
这里cookie值是空获取不到,但弹窗了,第十关通关。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pikache靶场通关——XSS漏洞 的相关文章

  • 前端必备的 web 安全知识手记

    前言 安全这种东西就是不发生则已 一发生则惊人 作为前端 平时对这方面的知识没啥研究 最近了解了下 特此沉淀 文章内容包括以下几个典型的 web 安全知识点 XSS CSRF 点击劫持 SQL 注入和上传问题等 下文以小王代指攻击者 话不多
  • J2EE常见面试题(一)

    StringBuilder和StringBuffer的区别 String 字符串常量 不可变 使用字符串拼接时是不同的2个空间 StringBuffer 字符串变量 可变 线程安全 字符串拼接直接在字符串后追加 StringBuilder
  • 网络安全(黑客)自学

    1 网络安全是什么 网络安全可以基于攻击和防御视角来分类 我们经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 2 网络安全市场 一 是市场需求量高 二 则是发展相对成熟入门比较容易 3 所需要的
  • JVM优化之 -Xss -Xms -Xmx -Xmn 参数设置

    JVM优化之 Xss Xms Xmx Xmn 参数设置 XmnXmsXmxXss有什么区别 Xmn Xms Xmx Xss都是JVM对内存的配置参数 我们可以根据不同需要区修改这些参数 以达到运行程序的最好效果 Xms 堆内存的初始大小 默
  • addslashes() 可以安全地防止 HTML 属性中的 XSS 吗?

    我不得不开发一个以前的开发人员留下的旧网络应用程序 它使用addslashes 来防止HTML属性上的XSS 这是一个例子 这是否容易受到 XSS 攻击 有没有什么方法可以让 javascript 在 value 属性中运行 就像在 src
  • 全网最全(黑客)网络安全自学路线!熬夜两周整理(巨详细)

    学网络安全有什么好处 1 可以学习计算机方面的知识 在正式学习网络安全之前是一定要学习计算机基础知识的 只要把网络安全认真的学透了 那么计算机基础知识是没有任何问题的 操作系统 网络架构 网站容器 数据库 前端后端等等 可以说不想成为计算机
  • 网络安全(黑客)自学启蒙

    一 什么是网络安全 网络安全是一种综合性的概念 涵盖了保护计算机系统 网络基础设施和数据免受未经授权的访问 攻击 损害或盗窃的一系列措施和技术 经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 作
  • 是否需要验证或转义jsonp回调字符串

    我有一个名为 action php 的文件 它将执行一些操作 我想将其公开为纯 JSON 或 JSONP 输出 用户将使用如下 URL 来调用它 action php jsonp callback 在我的action php中我正在做这样的
  • JavaScript - 跨站脚本 - 权限被拒绝

    我有一个 Web 应用程序 我正在尝试使用 Twitter 的 OAuth 功能 该应用程序有一个链接 提示用户输入 Twitter 凭据 当用户单击此链接时 将通过 JavaScript 打开一个新窗口 该窗口用作对话框 这是这样完成的
  • 上的 XSS 数据 URI 是否可被利用?

    读完这篇文章后 我没有一个明确的答案 http palizine plynt com issues 2010Oct bypass xss filters http palizine plynt com issues 2010Oct bypa
  • Asp.Net MVC 输入验证在禁用后仍然触发

    我已经禁用了validateRequest在我的 web Config 中 但应用程序仍然引发错误 从客户端检测到潜在危险的 Request Form 值 我的 web Config 中有以下内容
  • 在Golang中实现XSS防护

    我正在使用 Golang 构建 API Rest 我有一个包含很多字段 超过 100 个 的结构 因此我使用以下命令将来自客户端的值分配给该结构gorilla schema效果很好 现在 我想避免用户在任何字符串字段中插入 Javascri
  • 使用 Spring MVC 框架清理用户输入

    我正在使用 spring mvc 框架开发 Web 应用程序 我想知道是否有任何最好的方法来清理用户输入或通用方法来清理 springs 中的所有用户输入以避免 XSS 和 Sql 注入攻击 您可以使用Filters在 Spring 框架中
  • 使用 CSP + localStorage 保护单页应用程序免受 CSRF 和 XSS 的影响

    我有一个单页应用程序 包含敏感内容 并且需要保护 这个问题专门针对 XSS 和 CSRF 攻击 解释 很多地方都提出了建议 例如here http michael coates blogspot ca 2010 07 html5 local
  • 将 html 内容从 iframe 复制到 div ( ajax )?

    假设我的浏览器加载了一个 Iframe 我可以使用ajax将test html的内容加载到html主页面的div中吗 这个想法是我的解决方案 因为我实际上正在尝试克服将 ajax 提交到远程主机的限制 该计划是生成具有 0 大小 ifram
  • 什么是 http 标头“X-XSS-Protection”?

    所以我现在一直在 telnet 中玩弄 HTTP 即只需输入telnet google com 80并放入具有不同标头的随机 GET 和 POST 等 但我遇到了 google com 在其标头中传输的一些我不知道的内容 我一直在翻阅htt
  • 如何修复java中反映的XSS

    我收到了强化报告 其中显示了来自下面第二行的 XSS 反射缺陷 String name request getParameter name response getWriter write 姓名 姓名 给出的建议 向 Web 客户端显示的所
  • 为什么 XSS 注入需要对 & 进行转义

    OWASP 建议转义以防止 XSS 注入的五个字符是 lt gt 其中 我无法理解为什么 符号 应该被转义以及如何将其用作注入脚本的向量 有人可以举个例子 所有其他四个字符都被转义 但与号没有转义 所以会有 XSS 注入漏洞 我已经检查了另
  • https 安全 cookie 是否可以防止 XSS 攻击?

    https 连接是否可以保护 cookie 并防止 XSS 攻击 我有一个简单的博客 允许用户输入 JavaScript 代码作为输入 我希望允许用户输入 Javascript 同时仍然防止 XSS 攻击和 cookie 窃取 https
  • 防止语言环境文件中的 HTML 字符实体被 Rails3 xss 保护破坏

    我们正在构建一个应用程序 这是我们第一个使用 Rails 3 的应用程序 并且我们必须从一开始就构建 I18n 作为完美主义者 我们希望在我们的视图中使用真正的排版 破折号 卷曲引号 省略号等 这意味着在我们的 locales xx yml

随机推荐

  • CSS的盒模型

    盒子模型 Box Modle 可以用来对元素进行布局 包括内边距 边框 外边距 和实际内容这几个部分 盒子模型分为两种 第一种是W3C标准的盒子模型 标准盒模型 第二种IE标准的盒子模型 怪异盒模型 标准盒模型与怪异盒模型的表现效果的区别之
  • IPD流程介绍

    IPD体系中最重要的三大流程是市场管理流程 需求管理流程和集成产品开发流程 关系如图 图来自网上 尽量把三个流程的活动讲清楚 包括每个流程的活动的细节 运用的工具或方法等 1 MM流程 2 需求管理流程 3 集成产品开发流程
  • Oracle:错误码ORA-28040 的坑

    一 背景 因项目要求 第一次部署了Oracle 12 C的Server Linux CentOS版 数据库装好之后部署一个Java Web项目 A项目 去连接数据库 该Java项目之前用的Oracle是11 g版本 这次换成了12 C的版本
  • 使用docker方式安装FastDFS

    FastDFS 架构包括 Tracker server 和 Storage server 客户端请求 Tracker server 进行文件上传 下载 通过 Tracker server 调度 最终由 Storage server 完成文件
  • 时钟天气小插件显示没服务器,天气时钟小插件大全

    有没有好用的天气时钟插件 首先右击桌面选排列图标 勾选显示桌面图标 2 如果故障依旧 打开任务管理器 按下 Ctrl Alt Del 组合键即可打开 点击 文件 新建任务 在打开的 创建新任务 对话框中输入 explorer 单击 确定 按
  • windows docker wsl2的docker内存占用大

    windows docker wsl2的docker内存占用大 1重启wsl2 最终采用 实测直接stop运行的docker实例 并不会减少Vmmem内存 因此需要重启wsl2 输入wsl shutdown即可 同时把Docker Desk
  • Vs QT 程序添加按钮控件,及使用信号和槽

    include QtWidgetsApplication1 h include
  • 基于python的分布式实现多节点资产收集管理平台

    真正的大师 永远都怀着一颗学徒的心 一 项目简介 基于python的分布式实现多节点资产收集管理平台 二 实现功能 支持域名扫描 支持备案信息查询 支持fofa查询 支持多账号管理 支持web站点扫描 支持目录扫描 支持端口扫描 支持漏洞扫
  • ESP32 ADC –使用Arduino IDE读取模拟值

    本文介绍了如何使用Arduino IDE通过ESP32读取模拟输入 模拟读取对于从电位计或模拟传感器等可变电阻读取值非常有用 模拟输入 ADC ADC是非线性的 analogRead 函数 其他有用的功能 使用ESP32从电位计读取模拟值
  • MySQL 事务隔离级别,读现象,MVCC

    目录 数据库读现象 事务隔离级别 错误日志 详情参见 MySQL日志管理 JasonJi 博客园 mvcc多版本并发控制 多版本并发控制mvcc multi version concurrency controll 基于多版本的并发控制 在
  • 区块链应用开发入门

    区块链技术如今是非常火热 不仅让金融家和创投家趋之若鹜 如今已经在多个领域遍地播种 作为拥有锐利触角的创业家们 是否也想将区块链集成到你们现有的应用中去 而作为IT技术工程师的你 是否也是跃跃欲试 想基于区块链来练一下手 以免日后被新技术淘
  • tcpdump: syntax error 解决-linux 下安装tcpdump 和 libpcap

    关键 linux 如何下载包 wget 下载指定目录 linu 下载文件到指定目录 今天心血来潮突然想在自己的服务上抓某个端口 结果执行tcpdump时报错了 http www tcpdump org index html 找到Latest
  • 基于C语言的分页管理方式下存储分配情况模拟

    1 题目简介 借用外存空闲分区管理中位示图的方法来表示主存分配情况 实现主存空间的分配和回收 要求能显示和打印分配或回收前后的位示图和当前空闲块数 对完成一次分配后还要显示或打印为作业建立的页表 2 所用数据结构 为要分配的作业建立数据结构
  • 时钟抖动(Jitter)和时钟偏斜(Skew)

    在进行时序分析时 经常会遇到两个比较容易混淆的概念 那就是时钟抖动 Clock Jitter 和时钟偏斜 Clock Skew 下面就解释下两者的区别 一 Jitter 由于晶振本身稳定性 电源以及温度变化等原因造成了时钟频率的变化 指的是
  • ipc_perm 详解

    系统为每一个IPC对象保存一个ipc perm结构体 该结构说明了IPC对象的权限和所有者 每一个版本的内核各有不用的ipc perm结构成员 若要查看详细的定义请参阅文件
  • 【二十五】springboot整合jedis和redisson布隆过滤器处理缓存穿透

    springboot篇章整体栏目 一 springboot整合swagger 超详细 二 springboot整合swagger 自定义 超详细 三 springboot整合token 超详细 四 springboot整合mybatis p
  • win10 win11下添加nfs客服端到linux

    在控制面板中找到程序和功能 点击 启动或关闭windows功能 打上这两个 然后确认 在资源管理器中添加linux中的nfs目录 点击如下位置 配置本地驱动器和服务器路径 以上配好后就可以访问linux上的资源了 但只有只读权限 解决办法如
  • SpringCloud分布式开发五大神兽

    SpringCloud分布式开发五大神兽 服务发现 Netflix Eureka 客服端负载均衡 Netflix Ribbon 断路器 Netflix Hystrix 服务网关 Netflix Zuul 分布式配置 Spring Cloud
  • js基础学习第一天(关于DOM和BOM)一

    关于BOM和DOM BOM 下面一幅图很好的说明了BOM和DOM的关系 BOM提供了一些访问窗口对象的一些方法 我们可以用它来移动窗口位置 改变窗口大小 打开新窗口和关闭窗口 弹出对话框 进行导航以及获取客户的一些信息如 浏览器品牌版本 屏
  • pikache靶场通关——XSS漏洞

    文章目录 前言 环境 第一关 反射型xss get Step 1 输入特殊字符测试 Step 2 输入js语句 Step 3 在URL中输入js语句 第二关 反射性xss post Step 1 输入获取cookie的js语句 第三关 存储