当前位置: 首页 > news >正文

有缺陷的访问控制

HijackSessionAssignment

在 HijackSessionAuthenticationProvider 类中,ID 的生成由以下代码控制:

private static long id = new Random().nextLong() & Long.MAX_VALUE;
// ...
private static final Supplier<String> GENERATE_SESSION_ID = () -> ++id + "-" + Instant.now().toEpochMilli();
  • 使用 Random().nextLong() 生成初始随机数,并通过 & Long.MAX_VALUE 确保为正数
  • 每次生成新 ID 时使用 ++id 递增
  • 附加当前时间的毫秒数(Instant.now().toEpochMilli())

@Overridepublic Authentication authenticate(Authentication authentication) {if (authentication == null) {return AUTHENTICATION_SUPPLIER.get();}// 检查1:如果提供了ID且该ID在有效会话列表中if (StringUtils.isNotEmpty(authentication.getId())&& sessions.contains(authentication.getId())) {authentication.setAuthenticated(true);return authentication;}
// 检查2:如果ID为空则生成新IDif (StringUtils.isEmpty(authentication.getId())) {authentication.setId(GENERATE_SESSION_ID.get());}authorizedUserAutoLogin();// 25%概率自动授权新会话return authentication;}protected void authorizedUserAutoLogin() {if (!PROBABILITY_DOUBLE_PREDICATE.test(ThreadLocalRandom.current().nextDouble())) {Authentication authentication = AUTHENTICATION_SUPPLIER.get();authentication.setAuthenticated(true);addSession(authentication.getId());}}

总而言之,这道 题就是有百分之二十五的概率自动授权新对话,把它加入有效会话列表,而题目过关要求是输入的cookie值在有效会话列表中,所以根据会话id递增的规律,可以爆破解题。

先不设置cookie值,查看返回的cookie值

5307212479590026264-1750838353211

5307212479590026265-1750838369939

5307212479590026266-1750838383003

5307212479590026268-1750838396384

发现丢失了67号,所以以这个开始爆破

不安全的直接对象引用

直接对象引用是指应用程序使用客户端提供的输入参数来访问数据或对象的一种设计方式。

如使用GET方法的直接对象引用通常表现为以下形式:

https://some.company.tld/dor?id=12345
https://some.company.tld/images?img=12345  
https://some.company.tld/dor/12345

IDORLogin

输入tom和cat就行

这里利用hashmap的方式存储数据

IDORDiffAttributes

抓包获取属性列就行

IDORViewOwnProfile

/IDOR/profile/{userId},userId可以由前面抓包的时候看到,也可以爆破

IDORViewOtherProfile

查看其他人的profile,根据id号爆破

源码就是直接匹配了388这个id号

Missing Function Level Access Control

功能级访问控制缺失

MissingFunctionACHiddenMenus

隐藏的菜单项

MissingFunctionACYourHash

访问上题得到的/access-control/users路由,并添加Content-Type: application/json,返回hash数据

源码就是比对Jerry的Userhash

http://www.dtcms.com/a/272821.html

相关文章:

  • Agent调用(高德地图)MCP服务
  • Java虚拟机栈Test01
  • 盲盒一番赏小程序技术实现方案:高并发与防作弊的平衡之道
  • C#System.Runtime.InteropServices.ExternalException (0x80004005): GDI+ 中发生一般性错误。
  • Kettle导入Excel文件进数据库时,数值发生错误的一种原因
  • 计算机视觉速成 之 概述
  • Ubuntu如何快速搭建docker以及使用代理访问
  • Linux入门篇学习——Linux 工具之 make 工具和 makefile 文件
  • 数据结构 顺序表(1)
  • 等保-linux-三权分立账号设置,系统管理员、安全管理员、审计管理员
  • 目标检测中的评价指标计算
  • 数据结构 —— 键值对 map
  • Git操作技巧(一)
  • shell学习从入门到精通
  • 数据仓库:企业数据管理的核心枢纽
  • 创客匠人视角:从信任经济看创始人 IP 如何重塑 IP 变现逻辑
  • nmap扫描指定网段中指定开放端口的主机(IP,mac地址)
  • 量子计算系统软件:让“脆弱”的量子计算机真正可用
  • 有什么好使用的内网ip映射软件?可以让家庭/公司网络局域网端口,让公网互联网跨网访问
  • Spring boot整合dubbo+zookeeper
  • 26-计组-外存
  • 基于云端EC2的O3DE机器人仿真环境搭建指南
  • python自动化面试问题——关于python
  • 029_构造器重载与默认构造器
  • 【报错】Could not find a package configuration file provided by ‘glog’”
  • “Datawhale AI夏令营”基于带货视频评论的用户洞察挑战赛
  • 使用Tensorflow和CNN进行猫狗图片训练的实战总结
  • P1722 矩阵 II 题解 DFS深度优先遍历与卡特兰数(Catalan number)解
  • Spring Boot+Redis+Caffeine 二级缓存架构的终极实现方案、包含万级QPS下的黄金配置参数、全文超过2500字(博君一赞)
  • XGBoosting算法详解(Boosting思想的代表算法)