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

相关推荐
IpdataCloud4 小时前
直播打赏异常排查:大额打赏IP来自高风险地区?用IP查询定位触发人工审核
网络·tcp/ip·网络安全·ip
山川绿水4 小时前
bugku——MISC——键盘
安全·网络安全·系统安全·密码学
向往着的青绿色5 小时前
雷池(SafeLine)社区版免费部署教程|从环境检查到防护实操全流程
网络·计算机网络·nginx·网络安全·容器·网络攻击模型·信息与通信
波兰的蓝5 小时前
CVE-2016-4437 Apache Shiro反序列化漏洞复现
web安全·网络安全
2401_865382507 小时前
GB/T22240-2020《信息安全技术 网络安全等级保护定级指南》标准解读
网络安全·信息安全·等保测评·标准·信息化项目
努力的lpp7 小时前
小迪安全课程第一节复习笔记
网络安全
free_738 小时前
超越“回答”,AI Agent迎来全链路安全治理挑战
人工智能·python·网络安全
努力的lpp8 小时前
小迪安全课程第二节复习笔记
网络安全
上海云盾-小余8 小时前
零信任安全落地实战:企业如何构建无边界可信访问体系
网络·安全·web安全·架构
谪星·阿凯9 小时前
从入门到拿Flag:XXE漏洞全解析
安全·web安全·网络安全