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. 提权利用
相关推荐
恋猫de小郭1 分钟前
Flutter 凉了没?Flutter 2026 的未来行程和规划,一些有趣的变化
android·前端·flutter
Beginner x_u3 分钟前
前端手动实现大文件分片上传调度层:分片计算、并发上传与断点续传
前端·状态模式·断点续传·大文件分片上传
胖纳特7 分钟前
Nextcloud 文件预览困局与破局:集成 BaseMetas Fileview 实现全格式在线预览
前端·后端
一个心烑8 分钟前
Layui结合springboot读取返回值,前端展示简单示例
前端·spring boot·layui
天天向上10248 分钟前
openlayers 加载Shapefile文件
前端·javascript·html
亿元程序员11 分钟前
手工拼豆有风险?手把手教你开发个电子版的
前端
hhhhhh_we14 分钟前
再定义“皮肤人格”:从Baumann 16型分型到预颜美历的AI时序人格
前端·图像处理·人工智能·python·aigc
鹏程十八少16 分钟前
10. 2026金三银四 Android 组件化 & ARouter 面试杀手锏:33 道高频题 + 答案 + 流程图 + 源码,资深工程师必刷
前端·后端·面试
yqcoder16 分钟前
CSS 布局双雄:浮动 (Float) vs 绝对定位 (Absolute) 深度解析
前端·css
朝阳3921 分钟前
react【实战】首页 -- 白天/黑夜主题切换(含组件封装)
前端·react.js·前端框架