定位源码
全局搜索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
登录后台
4.ZoomEye语法
app:"亿赛通电子文档安全管理系统"
推荐阅读
渗透实战|记一次简单的Docker逃逸+反编译jar接管云主机