Web 漏洞分析:Reflected / Stored / DOM XSS 实战(完整翻译)

🧠 Web 漏洞分析:Reflected / Stored / DOM XSS 实战(完整翻译)

原始来源:Medium XSS Writeup + Hacklido 实战博客整理 ([Medium][1])


📄 1. 实验背景(Overview)

🔹 原文核心

该实验展示了一种基础的 Web 漏洞 ------ 反射型 XSS(Reflected XSS),漏洞存在于 Web 应用的搜索功能中。 ([Medium][1])

🔹 中文翻译

在本实验中,我们分析一种经典 Web 安全漏洞:

跨站脚本攻击(XSS)

该漏洞出现在应用的"搜索功能"中:

  • 用户输入内容
  • 被服务器直接返回到页面
  • 没有任何过滤或编码

👉 这就导致用户输入可以被当作代码执行


🧠 技术解读

这是 XSS 最典型的触发条件:

text 复制代码
用户输入 → 服务端返回 → 浏览器执行

如果没有处理:

html 复制代码
?q=<script>alert(1)</script>

浏览器就会执行 JS


📄 2. 漏洞原理(Vulnerability Explanation)

🔹 原文核心

Reflected XSS occurs when user input is immediately returned without validation. ([Medium][1])

🔹 中文翻译

反射型 XSS 的本质:

  • 用户输入被立即返回
  • 没有过滤 / 编码
  • 浏览器解析为 HTML / JS

🧠 技术解读

例如:

html 复制代码
<h1>Search: user_input</h1>

如果输入:

html 复制代码
<script>alert(1)</script>

变成:

html 复制代码
<h1>Search: <script>alert(1)</script></h1>

👉 浏览器执行 JS


📄 3. 漏洞利用步骤(Exploit Steps)

🔹 原文步骤(简化翻译)

  1. 打开目标 Web 应用

  2. 找到搜索框

  3. 输入恶意 payload:

    html 复制代码
    <script>alert(1)</script>
  4. 提交搜索

  5. 页面执行 JS

([Medium][1])


🔥 中文逐段翻译 + 扩展

Step 1:访问目标网站

进入存在搜索功能的页面

👉 通常 URL 类似:

复制代码
/search?q=test

Step 2:输入恶意代码

html 复制代码
<script>alert(1)</script>

👉 这是最基础的 XSS payload


Step 3:触发漏洞

点击搜索后:

  • 页面返回你的输入
  • 浏览器执行 JS

🧠 技术关键点

✔ 成功条件:

  • 输入被反射
  • 没有 HTML 编码
  • 在 HTML 上下文中执行

📄 4. Stored XSS(存储型 XSS)

🔹 原文核心

Stored XSS occurs when input is stored and later executed. ([Medium][1])


🔹 中文翻译

存储型 XSS:

  • 用户输入被存储(数据库)
  • 其他用户访问时触发

🧠 示例场景

评论区:

html 复制代码
<script>alert(document.cookie)</script>

被存储后:

👉 所有用户访问页面都会执行


⚠️ 危害

  • 窃取 cookie
  • 会话劫持
  • 钓鱼攻击

👉 比反射型更危险


📄 5. DOM XSS(前端型 XSS)

🔹 原文核心

DOM XSS happens in browser JavaScript (document.write / innerHTML). ([Medium][1])


🔹 中文翻译

DOM XSS:

  • 不经过服务器
  • 发生在前端 JS

🔥 示例漏洞代码

javascript 复制代码
document.write(location.search)

如果 URL:

复制代码
?q=<script>alert(1)</script>

👉 浏览器直接执行


🧠 技术本质

text 复制代码
漏洞 = 不安全 DOM 操作

常见危险函数:

  • innerHTML ❌
  • document.write ❌

安全替代:

  • textContent ✅ ([Pentest-Tools.com][2])

📄 6. XSS 类型总结

类型 特点 危险性
Reflected 即时返回 ⭐⭐
Stored 存储触发 ⭐⭐⭐⭐
DOM 前端执行 ⭐⭐⭐

📄 7. 漏洞利用思路(攻击方法)

🔹 原文总结

攻击者通过构造 payload 并诱导用户点击触发攻击 ([Pentest-Tools.com][2])


🔥 常见攻击方式

1️⃣ 诱导点击(Reflected)

text 复制代码
http://site.com?q=<script>steal()</script>

2️⃣ 存储 payload

html 复制代码
评论区注入

3️⃣ DOM 注入

javascript 复制代码
location.search → innerHTML

🎯 攻击目标

  • 窃取 cookie
  • 劫持 session
  • 执行任意 JS

([Vulnify][3])


📄 8. 防御方法(Defense)

🔹 原文核心

Use input validation and output encoding ([Vulnify][3])


🔥 实战防御

✅ 1. 输入过滤

text 复制代码
过滤 <script>

✅ 2. 输出编码

html 复制代码
< → &lt;

✅ 3. 安全 DOM API

javascript 复制代码
element.textContent = input

✅ 4. CSP(内容安全策略)

限制 JS 执行来源


📄 9. 总结(Conclusion)

🧠 核心一句话

XSS 的本质是:用户输入被当作代码执行


🔥 渗透测试思路总结

text 复制代码
1. 找输入点
2. 看是否回显
3. 构造 payload
4. 绕过滤
5. 提权利用
相关推荐
feng68_2 小时前
Discuz! X5 高性能+高可用
linux·运维·服务器·前端·后端·高性能·高可用
知行合一。。。2 小时前
XSS-跨站脚本攻击
前端·安全·xss
Y君2 小时前
在我当开发工程师的第10年,我完成了一次转向
前端·agent
optimistic_chen2 小时前
【Vue入门】scoped与组件通信
linux·前端·javascript·vue.js·前端框架·组件通信
SuperEugene2 小时前
前端空值处理规范:Vue 实战避坑,可选链、?? 兜底写法|项目规范篇
前端·javascript·vue.js
前端百草阁2 小时前
Vue3 Diff 算法详解
前端·javascript·vue.js·算法·前端框架
im_AMBER2 小时前
前后端对接: ESM配置与React Router
前端·javascript·学习·react.js·性能优化·前端框架·ecmascript
学且思2 小时前
使用import.meta.url实现传递路径动态加载资源
前端·javascript·vue.js
problc2 小时前
OpenClaw 的前端用的React还是Vue?
前端·vue.js·react.js