在野0day | 亿赛通任意用户登录分析

admin 2023年12月21日07:54:58评论101 views字数 673阅读2分14秒阅读模式

简要分析

  1. 定位源码

全局搜索LinkFilterService,在web.xml中找到其定义。

在野0day | 亿赛通任意用户登录分析

代码路径:com/esafenet/filter/LinkFilter.class

在野0day | 亿赛通任意用户登录分析

  1. 分析源码

在service中获取四个参数(path、userId、cur、language),其中language为空时可以自动赋值,所以可忽略此参数。

在野0day | 亿赛通任意用户登录分析

接下来对于path有一个简单判断判断是否包含给定的路径,这里不包含此路径即可跳过判断往下走。

在野0day | 亿赛通任意用户登录分析

再然后对time有一个判断,跟进isOverTime方法,其实就是判断当前是否超时,这里绕过只需要传入的时间比现在大即可。

在野0day | 亿赛通任意用户登录分析

最终到达最关键的方法buildSessionId,将userId传入到此方法中。在此方法中,通过数据库查询传入的userId值。

在野0day | 亿赛通任意用户登录分析

跟进findUserById方法,将userId传入到数据库中进行查询,没有任何的过滤和限制,只需要数据库存在此用户即可。

在野0day | 亿赛通任意用户登录分析

最后调用login方法给loginMng属性赋值。

在野0day | 亿赛通任意用户登录分析

在buildSessionId方法执行完成后,就已经生成了对应用户的cookie值。随后调用了buildLinkURL方法,此方法作用不大,只是根据path的值返回一个路径并在最后自动跳转。

在野0day | 亿赛通任意用户登录分析

所以这里绕过的思路就出来了,只需要数据库中有对应用户的值(亿赛通默认系统管理员为systemadmin),且传入的时间未超时即可生成对应用户的cookie值;至于path,可有可无,只是一个跳转而已。

漏洞复现

  1. 生成用户名和时间

在野0day | 亿赛通任意用户登录分析

在野0day | 亿赛通任意用户登录分析

  1. 获取cookie

在野0day | 亿赛通任意用户登录分析

  1. 登录后台

在野0day | 亿赛通任意用户登录分析

原文始发于微信公众号(安全绘景):在野0day | 亿赛通任意用户登录分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月21日07:54:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   在野0day | 亿赛通任意用户登录分析https://cn-sec.com/archives/2320219.html

发表评论

匿名网友 填写信息