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

Pikachu靶场XSS通关完整技巧流程

文章摘要

本文是一篇关于XSS(跨站脚本)漏洞的实战教程,通过7个典型关卡详细演示了反射型XSS(GET/POST)、存储型XSS、DOM型XSS以及XSS盲打和过滤绕过等常见攻击场景。文章从XSS的基本概念入手,逐步深入到各种类型的XSS漏洞探测、利用和绕过技巧,适合Web安全初学者、渗透测试工程师以及对XSS漏洞感兴趣的安全爱好者阅读。

通过本文,读者可以学习到:

  • XSS漏洞的基本原理和分类
  • 反射型、存储型、DOM型XSS的实战利用方法
  • 常见的XSS探测技巧和绕过WAF的策略
  • XSS盲打攻击的原理和实践
  • 针对不同过滤机制的绕过思路

目录

  1. 反射型XSS(GET)- 基础反射型XSS漏洞的探测与利用
  2. 反射型XSS(POST)- POST请求下的反射型XSS实战
  3. 存储型XSS- 持久化XSS攻击的原理与实践
  4. DOM型XSS- 客户端DOM操作引发的XSS漏洞
  5. DOM型XSS-X- DOM型XSS的进阶绕过技巧
  6. XSS之盲打- 无即时反馈的XSS攻击方法
  7. XSS之过滤- 针对过滤机制的多种绕过策略

前言:XSS(跨站脚本)概述

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

1. 反射型 XSS;

2. 存储型 XSS;

3. DOM 型 XSS;

XSS 漏洞一直被评估为 Web 漏洞中危害较大的漏洞,在 OWASP TOP10 的排名中一直属于前三的江湖地位。

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

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

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

输入过滤:对输入进行过滤,不允许可能导致 XSS 攻击的字符输入;

输出转义:根据输出点的位置对输出到前端的内容进行适当转义;

你可以通过 "Cross-Site Scripting" 对应的测试栏目,来进一步的了解该漏洞。

1. 第一关反射型 XSS(GET)

点进去就观察到一个可以输入的输入框

于是我们按照探测 XSS 的方法,第一步先进行标签探测(不能直接使用 script 和 alert 等,因为容易引起 WAF 的警觉),这里我给师傅们提供一个好用的不容易被监测的标签。

</textarea><s>123#--+

可以看见 who is 后面全部被划了横线,说明这个地方存在 XSS。

  1. 第二步按 F12 查看,是否是需要闭合的标签类型,如 div 这种无需闭合,<title>、<textarea>、<xmp>、<iframe> 这种需要闭合。第三步看是否有防御 WAF,如果有尝试绕过

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

我们发现输入长度有限制,于是我们打开 F12,再按 Ctrl+Shift+C 定位到输入框

我们可以看到 maxlength 那里长度限制为 20,我们改成 200。再次输入标签,就会发现出现弹窗了。

至此,第一关结束。(后面为了方便不再一步一步解释操作步骤,因为流程都是一样的,关键地方思路会进行讲解)

2. 反射型 XSS(POST)

登录框大概是暴力破解,我们看一下提示果然是前面关卡的内容,账号密码 admin/123456

登录一下发现和第一关一模一样,我们尝试第一关的步骤发现完全一致,所以不再赘述。

3. 存储型 XSS

在师傅们做实战的时候一定要注意遇到留言板、评论、上传链接文件等地方,我们可以尝试一下是否存在 XSS,尤其是这种存储型 XSS,危害尤其大。我们按照我们的三个步骤来。

可以看到是存在 XSS 的,于是我们进行第二步。

<script>alert(document.cookie)</script>

直接出现弹窗,说明成功,然后我们点这些删除等,还会继续弹 cookie 出来,换个浏览器输入这个地址直接就弹窗,说明我们的恶意代码已经存在服务器端了。这些 cookie 一般都会直接传到黑客的服务器。

4. DOM 型 XSS

开局依旧是平平无奇的输入框,我们依旧进行探测。

</textarea><s>123#--+

我擦,居然没反应,难道说有 WAF 或者不存在 XSS?那我只能告诉你其实你是想多了,这是在靶场啊,都叫 XSS 了肯定有呀。那么肯定是程序员编码的时候,将我们这种恶意代码过滤或者拼接了,我们得进行绕过,于是看看 F12(遇事不决,就用 F12)

可以清晰的看到 a 标签中的 href 函数大概是把我们输入里面的标签拼接掉了,无法正常执行,那我们就要尝试绕过。这里是因为可以看见源代码并且有提示,在我们做黑盒测试的时候,这个时候就要不断去测试有哪些绕过,不要轻易放弃也不要钻牛角尖。经过尝试我们发现是单引号闭合了标签。

于是构造 payload:#' onclick="alert(document.cookie)">

至此第四关结束。

5. DOM 型 XSS-X

开局一个很悲伤很令人回忆的表单,我们依旧进行探测,结果发现没有任何变化,肯定是又进行了过滤(有点无语。。。)

还是用我们的 F12

看着跟上一关的 a 标签很像,那我们尝试尝试上个 payload

果然是一样的,至此第五关结束。

6. XSS 之盲打

看着还是跟之前没啥区别,只不过是两个输入框罢了,这有啥直接两个同时插入标签。

提交过后出现个提示反馈成功,没有其他变化,额不会又是过滤了吧,那我们再试试其他 payload。WC 试了又试还是没变化,没招了看看提示吧,原来是要去后台看(神了)

一登录发现已经存储进服务器了,一进去就弹窗 XSS 了

至此第六关结束。

7. XSS 之过滤

http://www.cnnetsun.cn/news/3279469.html

相关文章:

  • MAX30102 PPG信号处理:3种滤波算法对比与STM32F103实现
  • yocto-meta-rockchip常见问题解决:10个Rockchip Yocto构建难题与解决方案
  • 博物馆、名人纪念馆、科技企业展厅设计施工一站式解决
  • 数据结构:设计循环队列
  • YY0505-2012 医用无影灯辐射超标:从 30MHz 到 1GHz 的 6 项滤波整改方案
  • NumPy 2.0 二维数组索引与切片:5种高级用法与性能对比
  • CSAPP BombLab 逆向实战:6个Phase汇编代码逐行解析与GDB调试技巧
  • 基于 Playwright UI 自动化测试
  • ONNX模型C++高性能部署实战:从原理到10倍推理加速
  • PIC18F8722与DTH-08信号切换与上拉下拉配置详解
  • ADS131M02与MK64FX512VDC12的高精度工业测量方案
  • 如何快速掌握中兴光猫配置解密工具:面向开发者的完整指南
  • 微信公众号开发教程
  • Zynq PS 时钟子系统 3 种 PLL 功耗对比:Bypass 模式与动态关断策略
  • Unity AI寻路进阶:NavMeshModifier动态导航网格控制详解
  • AI智能体性能优化:内存管理与模型维护的工程实践
  • 企业微信机器人开发指南:文本消息发送功能实现
  • P8772 [蓝桥杯 2022 省 A] 求和题解前缀和思路
  • 插件化开发:Android端的插件化与ArkUI-X的结合(131)
  • MOSFET GS/G级电阻选型实战:3种应用场景下10K与100Ω阻值对比分析
  • OpenClaw本地AI调度中枢:Node.js版本适配与API路由实战指南
  • Unity URP全屏模糊插件:从Shader原理到工程实践
  • Coze扣子AI智能体开发实战:从零构建多Agent协同应用
  • QP/C++ 7.3.4构建失败:.pack文件缺失的深度解析与解决方案
  • mtr命令,看完这篇就够用!
  • FPGA程序固化实战:Quartus 23.1 转换JIC文件5步避坑指南(含Flash选型)
  • Text2SQL+LangGraph智能体
  • PN结测温电路设计:2N3904/2N3906三极管选型与LTC2991配置实战
  • 零壹教育:打破正则依赖!非结构化文本高效预处理方法总结
  • RTSP 与 RTP/RTCP 实战联调:5步搭建简易流媒体服务器与客户端