pranjali-sawant/Session-Hijack

GitHub: pranjali-sawant/Session-Hijack

一个基于浏览器的 Web 安全模拟器,以连贯的攻击故事线演示 SQL 注入和 XSS 漏洞的链式利用过程。

Stars: 0 | Forks: 0

# 🕵️ Session Hijack — Web 安全演练 ## 关于 Session Hijack 是一个基于浏览器的 Web 安全模拟器,它以一个连贯的故事形式,演示了两个最著名的 Web 安全漏洞,而不是将它们作为两个独立的演示。访问者使用经典的 SQL Injection 手法绕过登录表单,进入完整的个人资料页面,然后发布一条利用跨站脚本攻击(XSS)漏洞的评论——从而实时触发模拟的账户接管过程。 ## 攻击流程 1. 使用 SQL Injection payload 绕过登录 2. 进入账户的个人资料页面 3. 打开高亮的帖子并阅读实战手册 4. 将 XSS payload 作为评论发布 5. 观察账户是如何被“劫持”的——帖子和粉丝数量实时降至零 ## 功能特性 - SQL Injection 登录绕过——检测 `' OR '1'='1` 样式的模式,以模拟一个无论真实密码如何,总是评估为 true 的查询 - 实战手册部分在攻击发生的位置用通俗易懂的语言解释了每一个漏洞 - 登录后显示全屏的个人资料页面,并且当明确使用了绕过路径时,会展示显眼的“通过 SQL Injection 绕过身份验证”横幅 - 一个可用的帖子流,包含可点击的帖子和实时评论区 - 跨站脚本攻击(XSS)演示——评论框将输入作为原始 HTML 渲染,因此精心构造的 `` payload 实际上会在浏览器中执行 - 戏剧性的动画接管序列——一旦 XSS payload 触发,帖子和粉丝数量就会倒数至零 ## 我的收获 1. **SQL Injection** — 存在漏洞的登录表单通过将用户输入直接拼接到字符串中来构建数据库查询。一个恰到好处的 `' OR '1'='1` 会使条件永远评估为 true,从而完全绕过密码检查。 2. **跨站脚本攻击(XSS)** — 使用 `innerHTML` 渲染输入(将其作为实时代码运行)与使用 `textContent`(将其显示为无害文本)之间的区别,就是整个漏洞的核心。如果站点对用户输入的信任程度达到了足以将其作为 HTML 注入的地步,攻击者的脚本就会在另一个用户的浏览器中运行。 3. **Session Hijacking** — 在真实的攻击中,XSS 并不会直接抹除账户——它通常被用来悄无声息地窃取会话 cookie(`document.cookie`),然后攻击者利用它来冒充受害者,而无需知道他们的真实密码。 4. **漏洞组合利用** — 真实的攻击通常是一个连环过程,而不是单一的漏洞利用。一个弱点(SQL Injection)可以作为入口点,进而在下游引发第二个、不同类型的弱点(XSS)。 5. **浏览器内调试** — 使用 DevTools 控制台将 `TypeError` 追踪到确切的代码行,并了解文件中 `