一、XSS攻击原理
XSS(Cross-Site Scripting) 是一种通过向网页注入恶意脚本代码,在用户浏览器中执行的攻击技术。攻击者利用Web应用对用户输入的信任,将恶意脚本植入页面,当其他用户访问该页面时,脚本在其浏览器中执行,从而实现攻击目标。
核心步骤:
-
输入点暴露:Web应用未对用户输入(如表单、URL参数)进行过滤。
-
注入恶意脚本:攻击者提交包含脚本代码的输入(如
<script>
标签)。 -
脚本存储或反射:恶意脚本被保存到数据库(存储型)或直接返回到页面(反射型)。
-
受害者触发:用户访问包含恶意脚本的页面,脚本自动执行。
-
攻击达成:窃取Cookie、会话劫持、重定向到恶意网站等。
二、XSS类型与机制
类型 | 触发方式 | 持久性 | 典型案例场景 |
---|---|---|---|
反射型XSS | 恶意脚本通过URL参数传递,由服务器返回给用户。 | 非持久 | 钓鱼邮件中的恶意链接。 |
存储型XSS | 恶意脚本存储于数据库,页面加载时自动执行。 | 持久 | 论坛评论植入恶意脚本。 |
DOM型XSS | 前端JavaScript动态修改DOM时执行恶意代码。 | 非持久 | URL哈希参数被误用。 |