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、加密随机数等,大幅提升了凭证的不可预测性,从根源上降低了猜解、爆破类攻击的可行性,有效强化了会话安全防护能力。

相关推荐
三8441 小时前
应急响应之账户排查 + 计划任务排查 + 进程排查
web安全·应急响应·windows账户排查·应急响应linux排查
2501_915106322 小时前
安卓抓包软件2026,免证书抓包 应用层抓包 代理抓包全解析
网络协议·计算机网络·网络安全·ios·adb·https·udp
严谨的麻辣烫2 小时前
2026 年静态 IP 为什么重新受到关注?从住宅代理安全问题看固定网络出口
运维·服务器·tcp/ip·网络安全
菩提小狗2 小时前
每日安全情报报告 · 2026-09-02
网络安全·漏洞·cve·安全情报·每日安全
0xBADCODE3 小时前
CTF Writeup 合集
安全·web安全·网络安全·系统安全·密码学·php·ctf
数据知道5 小时前
恶意软件分析实验室搭建——沙箱、快照、网络隔离
网络·安全·web安全·网络安全
Lust Dusk7 小时前
【最新】VMware虚拟机下载安装教程
网络·网络安全·系统安全
奔跑的卡卡9 小时前
线上Web异常发现为什么总是滞后?一套自研Web实时异常分析监控系统整体架构拆解
前端·web安全·架构
马立杰9 小时前
IE241209_路由安全技术(三层安全)
安全·网络安全
Sagittarius_A*9 小时前
【好靶场】SQL 注入-布尔盲注-2
sql·web安全·网络安全·sql注入