Webgoat-(A1)Broken Access Control:Hijack a session

0x00、声明

本文所涉及的任何技术、信息或工具,仅供学习和参考之用,请勿将文章内的相关技术用于非法目的,如有相关非法行为与文章作者无关。请遵守《中华人民共和国网络安全法》。


中华人民共和国网络安全法

第二十七条 规定

任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动;不得提供专门用于从事侵入网络、干扰网络正常功能及防护措施、窃取网络数据等危害网络安全活动的程序、工具;明知他人从事危害网络安全的活动的,不得为其提供技术支持、广告推广、支付结算等帮助。

0x01、概述

本关卡主要考察,当 Cookie 或 Session 凭证不具备足够的随机性时,极易被攻击者猜解利用。例如,攻击者可通过暴力枚举的方式,劫持到合法用户的登录凭证。

0x02、测试

2.1、抓包分析

发现响应返回的信息中,响应头有个 Set-Cookie 的字段,且其中有个参数为 hijack_cookie,对应的值为 8092411644494503772-1766252500550; 猜测 hijack_cookie 很有可能是用户登录的凭证。

2.2、重复发包测试

通过重复发包,可以观察到hijack_cookie的变化,似乎能够发现一定的规律。

通过分析总结可以得出hijack_cookie是由两部分组成的,"-"的前一部分是一个长度为19的一串整形且是有规律的递增,即服务器每收到一个请求就加一;而"-"的后面部分看似像一个时间戳,验证确实是毫秒级时间戳

2.3、爆破cookie

继续观察,发现少了4537219065067353713开头的cookie,猜测该cookie可能被分配给了合法用户,由于我们可以推测出前部分,而后部分是时间戳,所以可以通过遍历时间戳去爆破出完整的cookie值。

遍历时间戳,成功找到合法cookie凭证,即:4537219065067353713-1766254121659

yakit配置与规则:

请求包

复制代码
POST /WebGoat/HijackSession/login HTTP/1.1
Host: 127.0.0.1:8001
Content-Length: 32
sec-ch-ua: "Not-A.Brand";v="99", "Chromium";v="124"
Accept: */*
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.6367.60 Safari/537.36
sec-ch-ua-platform: "Windows"
Origin: http://127.0.0.1:8001
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: http://127.0.0.1:8001/WebGoat/start.mvc?username=admin123
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=28C57508AB3F802ACE7C903398B5DC45; hijack_cookie=4537219065067353713-1766254121659
Connection: keep-alive

username=test&password=admin123

0x03、完成

0x04、总结

本文以 WebGoat 靶场中 A1 "失效的访问控制" 分类下的 "Hijack a session" 关卡为场景,剖析了会话劫持漏洞的核心成因,即会话凭证随机性不足的安全隐患。

在该关卡中,通过抓包分析发现,响应头中hijack_cookie参数的结构存在明显规律:其由 "19 位递增整数" 与 "毫秒级时间戳" 两部分拼接而成,其中整数部分会随服务器接收的请求数逐次累加。借助这一可预测的生成模式,攻击者通过枚举时间戳、结合整数递增规律,可快速爆破出合法用户的cookie会话凭证,最终成功实现会话劫持。

此案例中的攻击过程虽相对简单,但现实环境中此类爆破攻击已大幅减少,现代系统普遍采用高熵值的随机算法生成会话凭证,如结合 UUID、加密随机数等,大幅提升了凭证的不可预测性,从根源上降低了猜解、爆破类攻击的可行性,有效强化了会话安全防护能力。

相关推荐
Chengbei113 小时前
CVE-2025-24813 Tomcat 最新 RCE 分析复现
java·安全·web安全·网络安全·tomcat·系统安全·网络攻击模型
德迅云安全-小潘3 小时前
网络空间资产安全发展演进与实践框架
数据库·web安全
QZ166560951593 小时前
2025年国内精细化、可交互、轻量级的泛监测体系产品推荐
网络安全
Blossom.1184 小时前
多模态大模型实战:从零实现CLIP与电商跨模态检索系统
python·web安全·yolo·目标检测·机器学习·目标跟踪·开源软件
GoldY丶4 小时前
【Geek渗透之路】小迪安全笔记——web安全(3)
笔记·安全·web安全·网络安全·安全威胁分析
晚风(●•σ )5 小时前
【华为 ICT & HCIA & eNSP 习题汇总】——题目集27
网络·计算机网络·网络安全·华为
unable code19 小时前
攻防世界-Misc-Miscellaneous-200
网络安全·ctf·misc
unable code1 天前
攻防世界-Misc-4-1
网络安全·ctf·misc·1024程序员节
金灰1 天前
一带一路(金砖)--网络安全防护治理赛项
网络·计算机网络·安全·web安全·网络安全·网络攻击模型·安全威胁分析