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

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

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


📄 1. 实验背景(Overview)

🔹 原文核心

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

🔹 中文翻译

在本实验中,我们分析一种经典 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. (Medium1)

🔹 中文翻译

反射型 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

(Medium1)


🔥 中文逐段翻译 + 扩展

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. (Medium1)


🔹 中文翻译

存储型 XSS:

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

🧠 示例场景

评论区:

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

被存储后:

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


⚠️ 危害

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

👉 比反射型更危险


📄 5. DOM XSS(前端型 XSS)

🔹 原文核心

DOM XSS happens in browser JavaScript (document.write / innerHTML). (Medium1)


🔹 中文翻译

DOM XSS:

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

🔥 示例漏洞代码

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

如果 URL:

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

👉 浏览器直接执行


🧠 技术本质

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

常见危险函数:

  • innerHTML ❌
  • document.write ❌

安全替代:

  • textContent ✅ (Pentest-Tools.com2)

📄 6. XSS 类型总结

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

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

🔹 原文总结

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


🔥 常见攻击方式

1️⃣ 诱导点击(Reflected)

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

2️⃣ 存储 payload

html 复制代码
评论区注入

3️⃣ DOM 注入

javascript 复制代码
location.search → innerHTML

🎯 攻击目标

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

(Vulnify3)


📄 8. 防御方法(Defense)

🔹 原文核心

Use input validation and output encoding (Vulnify3)


🔥 实战防御

✅ 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. 提权利用
相关推荐
锋行天下2 小时前
数据库安全并发控制详解:乐观锁 vs 悲观锁 vs 原子操作
前端·数据库·后端
饼饼饼3 小时前
React19 新手指南:JSX 没那么难,用好这几条规则就够了
前端·javascript·react.js
想吃火锅10053 小时前
【前端手撕】new
前端
小小小小宇3 小时前
AI大背景下端到端界面测试
前端
小小小小宇3 小时前
前端端到端界面测试全解析与应用
前端
去伪存真3 小时前
如何将没有字幕的英文视频转换成中文视频?
前端·pytorch·llm
Coisinier3 小时前
RHCE中shell脚本基础(磁盘剩余空间监控,Web 服务状态检查,curl 访问 Web 服务并返回状态)
linux·运维·服务器·前端·nginx·操作系统
ywl4708120873 小时前
springSecurity+jwt,简单版demo
java·前端·servlet
想吃火锅10053 小时前
【前端手撕】promise.all
前端
lichenyang4533 小时前
动态加载 vs 延迟加载:为什么 demo 里「延迟」看起来没效果?
前端