简要分析
-
定位源码
全局搜索LinkFilterService
,在web.xml中找到其定义。
代码路径:com/esafenet/filter/LinkFilter.class
-
分析源码
在service中获取四个参数(path、userId、cur、language),其中language为空时可以自动赋值,所以可忽略此参数。
接下来对于path有一个简单判断,判断是否包含给定的路径,这里不包含此路径即可跳过判断往下走。
再然后对time有一个判断,跟进isOverTime方法,其实就是判断当前是否超时,这里绕过只需要传入的时间比现在大即可。
最终到达最关键的方法buildSessionId
,将userId传入到此方法中。在此方法中,通过数据库查询传入的userId值。
跟进findUserById方法,将userId传入到数据库中进行查询,没有任何的过滤和限制,只需要数据库存在此用户即可。
最后调用login方法给loginMng
属性赋值。
在buildSessionId方法执行完成后,就已经生成了对应用户的cookie值。随后调用了buildLinkURL方法,此方法作用不大,只是根据path的值返回一个路径并在最后自动跳转。
所以这里绕过的思路就出来了,只需要数据库中有对应用户的值(亿赛通默认系统管理员为systemadmin
),且传入的时间未超时即可生成对应用户的cookie值;至于path,可有可无,只是一个跳转而已。
漏洞复现
-
生成用户名和时间
-
获取cookie
-
登录后台
★
原文始发于微信公众号(渗透安全团队):在野亿赛通任意用户登录漏洞分析
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论