news 2026/10/14 10:19:17

pikachu Cross-Site Scripting(XSS)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
pikachu Cross-Site Scripting(XSS)

漏洞描述

XSS漏洞描述 跨站脚本攻击(XSS)属于Web常见注入类漏洞,攻击者向网页输入点注入恶意JavaScript脚本,服务器未对用户输入做有效过滤、转义,导致恶意代码被直接输出到页面中,当其他用户访问该页面时,浏览器会解析执行恶意脚本。攻击者可借此窃取用户Cookie、会话凭证,伪造页面内容欺骗用户,劫持用户会话,执行钓鱼攻击,甚至在用户浏览器执行任意操作,危害用户账号与数据安全。

2.1反射性xss(get)

一般我们先输入<script>alert(1)</script>来测试页面是否存在xss漏洞,之后我们就会发现这道题有最大长度限制,输入不了完整语句,如图所示。

但是我们通过观察可以发现,语句在url中,message后面,我们直接在里面输入完整语句就可以完成xss。

不仅可以这样,我们也可以按f12,在前端代码里面修改最大长度限制,以实现输入完整语句,这里就展示一下如何修改。

按完f12,点击最左边的图标,然后把鼠标放在输入框上,如图所示,然后点击,就会定位到我们需要的那行代码。

随便把数字改成比较大的就行了

此时就可以完整输入了

2.2反射性xss(post)

get和post的区别:二者漏洞原理、危害完全一致,差别只在于 HTTP 提交方式和攻击传播手段:GET 依靠带恶意参数的 URL 直接触发;POST 需要构造自动提交表单的页面来发送恶意 POST 请求,无法直接通过一条链接完成攻击。

我们点击提示,发现账号密码是admin/123456,我们先登陆进去。

完整语句可以输入进去

完成了,查看源代码发现长度是没有限制的。

2.3存储型xss

先随便试一下,发现我们输入的东西可以保存下来,依旧输入<script>alert()</script>形式的语句就可以了。和反射性不同的地方就是,反射性是一次性的请求,而存储型的会把恶意脚本存入数据库内,会被反复触发,危害更大。

2.4 DOM型XSS

DOM型xss漏洞发生在客户端,后端仅把原始页面返回,由页面 JavaScript 脚本读取 URL 等可控数据源。我们在框里输入javascript:alert(1),点击蓝色的 what do you see? 就可以了。

因为输入的内容被写入了a标签的herf属性里面,我们就选择了可以运行的对应代码。

2.5 DOM型XSS-X

原理和上一题相同,就是多了一步点击,输入相同内容就完成了。

2.6 XSS盲打

本质:属于存储型 XSS 的特殊分支。你提交恶意 Payload,但是前端页面不会回显这个内容;只有后台管理员 / 客服在后台面板查看这条数据时,JS 才会执行。攻击者无法直接看到执行结果,所以叫 “盲打”。

我们先在框里正常输入script语句,提交,点一下提示,可以看到提醒我们去输入这个地址。

输入之后就是后台管理员的登录界面,我们输入admin/123456登录,成功登录就会看到弹窗,如图所示。

2.7 XSS之过滤

XSS 过滤,就是网站 / WAF 对用户输入做检查、清洗,阻止恶意 JS/HTML 代码被渲染执行。分为黑名单过滤(最容易被绕过)、白名单 / HTML 净化(可靠)、输出编码(首选防御)三类。

总结几种绕过方法:

1.大小写绕过 <scRipT>alert(1)</SCriPt>

2.双写绕过 <scri<script>pt>

3.换标签 <img src=x οnerrοr=alert(1)>

原理
<img>:图片标签;src=x:x不是合法图片地址
浏览器尝试加载图片失败 → 触发 onerror 事件,执行后面 JS 代码 alert(1),弹出弹窗

4.编码绕过 <img src=x οnerrοr=&#97;&#108;&#101;&#114;&#116;(1)>

随便选一种提交即可。

2.8 XSS之htmlspecialchars

htmlspecialchars() 是PHP 函数,作用:把 HTML 特殊符号转成 HTML 实体,用来防御 XSS;但参数配置错误就会被绕过,这就是 Pikachu 这个关卡的考点。

原字符 转义后实体
& &amp;
< &lt;
> &gt;

所以之前的<script>就用不了了,可以换成

' onclick=alert(1) //

单引号用来闭合前面的内容,onclick=alert(1):新增点击事件,点击输入框就执行弹窗

//:JS 注释,把后面多余的单引号 ' 注释掉,避免语法报错

2.9 xss之href输出

输入javascript:alert(1)就行了,前面2.4提到过,是一样的。

2.10 xss之js输出

用户输入直接拼在 <script> 标签内部,JS 变量字符串里,不是 HTML 正文、不是 HTML 属性

我们可以输入

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

浏览器 HTML 解析器读到</script>,直接关闭当前 script 块,后面新<script>里代码执行,就完成了。

pikachu的xss所有类型就打完了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/14 10:18:50

SwiftUI Skill:纯本地可组合式异步能力封装体系

1. 项目概述&#xff1a;这不是一个“AI Agent”&#xff0c;而是一套 SwiftUI 原生技能封装体系“SwiftUI-Agent-Skill”这个标题&#xff0c;乍看容易让人联想到当前泛滥的“AI Agent”概念——大模型调度、工具调用、自主规划……但实际拆解下来&#xff0c;它完全不涉及任何…

作者头像 李华
网站建设 2026/10/14 10:18:33

Flutter集成端侧嵌入模型:EmbeddingGemma 2本地语义检索实战

做 Flutter 的开发者应该都有同感&#xff1a;产品想靠 AI 加分&#xff0c;但把能力接进来之后&#xff0c;最先撞上的往往不是模型效果&#xff0c;而是网络依赖、密钥管理、API 账单和飘忽不定的首字节延迟。我最近把一个模拟项目完整跑通了&#xff1a;在 Flutter 应用里集…

作者头像 李华
网站建设 2026/10/14 10:18:32

校园兼职系统SSM架构设计与高并发优化实践

1. 项目背景与核心价值 校园兼职系统是连接学生与企业的重要桥梁&#xff0c;传统的人工对接方式存在信息不对称、匹配效率低等问题。这个基于SSM框架的分布式系统&#xff0c;采用SpringBootVueSpringCloud技术栈&#xff0c;实现了兼职信息的智能匹配、信用评价和全流程管理。…

作者头像 李华
网站建设 2026/10/14 10:18:30

Intel 800系主板板载雷电/USB4驱动安装与排查完整指南

如果你刚入手一块基于 Intel 800 系列芯片组的新主板&#xff0c;点亮后进系统&#xff0c;发现设备管理器里躺着一排带黄色感叹号的设备&#xff0c;名字里有 Thunderbolt、PCIe Root Port 或者 USB4 Host Router——那多半就是板载雷电控制器没有正确加载驱动。这个事说难不难…

作者头像 李华
网站建设 2026/10/14 10:18:19

MCP工具调用性能优化:从握手到Token消耗的实操指南

模型上下文协议&#xff08;Model Context Protocol&#xff0c;以下简称 MCP&#xff09;这两年在 AI 工具链里几乎是绕不开的关键词。它解决的核心问题很简单&#xff1a;让大模型应用&#xff08;Host&#xff09;能标准、统一地调用外部工具&#xff08;Tools&#xff09;、…

作者头像 李华