核心内容摘要
罗志祥的“向日葵”:从偶像到人生玩家的蜕变之路
XSS攻击零基础入门原理、分类与简单复现在Web安全领域XSSCross-Site Scripting跨站脚本攻击是最常见且易被忽视的漏洞之一。
不同于SQL注入直接针对数据库XSS攻击的核心目标是前端页面与用户会话通过注入恶意JavaScript代码窃取敏感信息、劫持用户操作对普通用户和企业业务均存在严重威胁。
本文面向零基础学习者从XSS攻击的本质出发拆解核心分类、攻击逻辑结合反射型、存储型、DOM型三类XSS的本地复现案例帮你快速建立对XSS攻击的基础认知同时明确入门阶段的核心学习重点所有操作均在本地测试环境进行严禁未授权攻击。
XSS攻击的核心本质XSS攻击的本质是Web应用对用户输入的数据缺乏有效过滤和输出编码导致攻击者注入的恶意JavaScript代码被浏览器当作合法脚本解析执行。
核心前提有两个缺一不可输入可控用户输入的内容可被注入到网页源码中即应用未对输入做严格限制输出未转义注入的恶意代码未被转义为普通文本能被浏览器正常解析执行。
典型攻击流程攻击者构造恶意脚本→通过输入点注入网页→用户访问含恶意脚本的页面→脚本执行窃取信息/劫持操作→攻击者获取数据或控制会话。
这里需要注意XSS攻击的受害者是普通用户攻击者通过“借用户的身份”执行操作本质是利用了网页对用户输入的信任缺陷。
XSS攻击的三大核心分类根据恶意脚本的存储位置、触发方式XSS主要分为三类适用场景与危害程度各有差异是入门必须掌握的核心知识点。
反射型XSS非持久化XSS最基础的XSS类型恶意脚本不会被存储到服务器仅通过URL参数、表单提交等方式临时注入到页面中需诱导用户点击特定链接才能触发。
核心特点一次性攻击仅对点击链接的用户生效攻击痕迹不会残留隐蔽性较弱。
典型场景搜索框、URL参数展示页面、表单提交反馈页、登录失败提示页等。
存储型XSS持久化XSS危害最大的XSS类型恶意脚本会被永久存储到服务器数据库中如评论、发帖、用户资料只要用户访问包含该脚本的页面就会自动触发无需额外诱导操作。
核心特点持久化攻击影响所有访问该页面的用户传播范围广、危害极大易引发批量用户信息泄露。
典型场景论坛发帖、评论区、用户资料编辑、留言板、客服聊天窗口等可提交内容并公开展示的功能。
DOM型XSS特殊类型的XSS恶意脚本无需与服务器交互仅通过前端DOM文档对象模型操作注入执行。
攻击者利用页面DOM元素的动态渲染逻辑修改页面DOM结构触发脚本执行。
核心特点攻击全程在前端完成不经过服务器难以通过后端过滤防护隐蔽性强对前端代码审计要求高。
典型场景基于URL参数动态渲染页面内容、前端表单验证逻辑、DOM节点替换/插入等功能。
本地简单复现三类XSS全案例搭建极简本地测试环境推荐XAMPP/WAMP集成Apache、PHP、MySQL分别复现三类XSS攻击直观理解不同类型的攻击逻辑。
案例1反射型XSS复现搜索框场景搭建测试页面创建HTML文件xss-reflect.html模拟无过滤的搜索功能页面直接输出用户输入的搜索内容!DOCTYPE html html headtitle反射型XSS测试/title/head body h3简易搜索框无输入过滤/h3 form methodget action input typetext namesearch placeholder输入搜索关键词 button typesubmit搜索/button /form ?php // 直接输出用户输入无任何过滤与转义 if(isset($_GET[search])){ echo 您搜索的内容 . $_GET[search]; } ? /body /html注入恶意脚本将文件放入XAMPP的htdocs目录启动Apache服务通过浏览器访问 http://localhost/xss-reflect.html在搜索框输入以下脚本并提交scriptalert(反射型XSS触发成功)/script提交后页面会弹出警告框说明恶意脚本已被浏览器解析执行。
若将脚本替换为窃取Cookie的代码即可获取当前用户会话Cookiescriptalert(document.cookie)/script攻击逻辑分析后端PHP代码直接将用户输入的“search”参数拼接输出到页面未做任何过滤。
注入的 script标签被浏览器识别为合法脚本从而触发执行。
这类攻击需诱导用户点击含恶意参数的URL如 http://localhost/xss-reflect.html?search scriptalert(document.cookie)/ script才能完成攻击。
案例2存储型XSS复现留言板场景环境准备启动XAMPP的MySQL服务创建测试数据库和数据表用于存储留言内容-- 创建数据库xss_test CREATE DATABASE IF NOT EXISTS xss_test; USE xss_test; -- 创建留言表message CREATE TABLE IF NOT EXISTS message ( id INT AUTO_INCREMENT PRIMARY KEY, content VARCHAR(
NOT NULL, create_time DATETIME DEFAULT CURRENT_TIMESTAMP );创建留言板页面xss-store.php实现留言提交与展示功能!DOCTYPE html html headtitle存储型XSS测试留言板/title/head body h3简易留言板无过滤存储/h3 !-- 留言提交表单 -- form methodpost action textarea namecontent placeholder请输入留言内容 rows3 cols50/textarea br button typesubmit namesubmit提交留言/button /form hr h4留言列表/h4 ?php // 连接数据库账号密码根据本地环境调整 $conn mysqli_connect(localhost, root, , xss_test); if(!$conn){ die(数据库连接失败 . mysqli_error($conn)); } // 提交留言存储到数据库 if(isset($_POST[submit]) !empty($_POST[content])){ $content $_POST[content]; // 直接存储用户输入无过滤 $sql INSERT INTO message (content) VALUES ($content); mysqli_query($conn, $sql); } // 展示留言从数据库读取并输出 $sql SELECT content FROM message ORDER BY create_time DESC; $result mysqli_query($conn, $sql); while($row mysqli_fetch_assoc($result)){ echo 留言 . $row[content] . brbr; } mysqli_close($conn); ? /body /html注入与触发恶意脚本访问 http://localhost/xss-store.php在留言框输入以下恶意脚本并提交scriptalert(存储型XSS触发所有访问者都会看到)/script提交后脚本会被存储到MySQL数据库中页面展示留言时自动触发弹窗。
此时无论谁访问该留言板页面都会触发该脚本实现批量攻击。
攻击危害分析存储型XSS的危害远大于反射型攻击者只需提交一次恶意脚本就能影响所有访问该页面的用户。
若将脚本替换为“窃取Cookie并发送到攻击者服务器”的代码可批量获取用户会话信息进而劫持账号。
案例3DOM型XSS复现前端动态渲染场景搭建测试页面创建纯前端HTML文件xss-dom.html通过DOM操作读取URL参数并渲染到页面无后端交互!DOCTYPE html html headtitleDOM型XSS测试/title/head body h3DOM型XSS测试URL参数渲染/h3 div idcontent/div script // 读取URL中的name参数 function getUrlParam(name) { let url window.location.search.substr(
; let paramArr url.split(); for(let i0; iparamArr.length; i){ let param paramArr[i].split(); if(param[0] name) return param[1]; } return ; } // 将参数值渲染到页面DOM中 let username getUrlParam(name); if(username){ document.getElementById(content).innerHTML 欢迎您 username; } /script /body /html注入与触发恶意脚本直接访问页面 http://localhost/xss-dom.html?name scriptalert(‘DOM型XSS触发’)/ script页面会直接弹出警告框。
也可使用其他标签触发脚本如利用img标签的onerror事件避免脚本标签被过滤http://localhost/xss-dom.html?nameimg srcx οnerrοralert(‘DOM-XSS’)攻击逻辑分析DOM型XSS全程在前端完成JavaScript代码读取URL参数“name”后通过innerHTML方法直接插入到DOM节点中未做任何过滤。
由于innerHTML会解析HTML标签注入的恶意脚本被浏览器执行。
这类漏洞无法通过后端防护只能通过前端输入校验和转义修复。
XSS攻击的常见危害新手易停留在“弹窗测试”层面忽视XSS的实际危害。
攻击者利用XSS可实现以下核心攻击目标会话劫持窃取用户Cookie冒充用户身份登录系统篡改资料、操作业务敏感信息窃取通过脚本记录用户键盘输入如账号密码、获取浏览器存储数据页面篡改修改网页内容展示虚假信息、钓鱼链接诱导用户操作恶意代码传播通过存储型XSS批量推送恶意脚本感染大量用户内网穿透跳板若被攻击用户为管理员可通过XSS结合其他漏洞突破内网边界。
入门避坑与学习建议避坑1仅停留在弹窗测试。
弹窗只是验证漏洞存在的手段需深入理解脚本的实际危害尝试编写窃取Cookie、记录键盘输入的脚本建立“攻击目标”思维。
避坑2忽视DOM型XSS。
新手易聚焦反射型和存储型忽略前端DOM层面的漏洞。
需学习前端DOM操作基础理解innerHTML、outerHTML等方法的安全风险。
避坑3忽略环境差异。
本地测试无防护真实环境有前端过滤、WAF等机制需后续学习绕过技巧避免生搬硬套本地案例。
学习建议先掌握三类XSS的核心差异与攻击逻辑通过本地复现熟练操作再学习输入过滤、输出编码等基础防护方法形成“攻击→防护”的闭环思维最后通过DVWA、WebGoat靶场强化练习适配真实场景。
六、
总结XSS攻击的核心在于“输入未过滤、输出未转义”三类XSS攻击各有特点反射型需诱导点击存储型危害最大DOM型隐蔽性强。
零基础入门需从原理和本地复现入手先建立对攻击逻辑的认知再逐步深入学习进阶绕过技巧与防护方案。
需要注意的是XSS技术的学习必须坚守合法合规底线仅能在授权靶场、本地环境或正式授权项目中实操严禁用于未授权系统。
后续将针对XSS防护方案、进阶绕过技巧展开详细讲解关注我持续解锁Web安全实战内容网络安全学习资源网上虽然也有很多的学习资源但基本上都残缺不全的这是我们和网安大厂360共同研发的的网安视频教程内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识而且包含了中级的各种渗透技术并且还有后期的CTF对抗、区块链安全等高阶技术。
总共200多节视频100多本网安电子书最新学习路线图和工具安装包都有不用担心学不全。
这些东西我都可以免费分享给大家需要的可以点这里自取:网安入门到进阶资源