关于spring内存马的解决思路分享

admin 2025-12-22 04:38:10 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍了一个Spring内存马的检测和卸载工具,能够识别controller基于Bean名称、URL模式和注解的映射以及interceptor类型的内存马。工具部署简单,只需将两个类放入controller包并修改相关配置,即可通过界面扫描和卸载内存马。作者在实际项目中进行了测试,并讨论了可能遇到的Java版本兼容性、扫描限制、dump源字节码限制以及权限控制等问题。该工具为Spring应用提供了一种实用的内存马应急响应方案。 综合评分: 89 文章分类: WEB安全,应用安全,漏洞分析,应急响应,安全工具


cover_image

关于spring内存马的解决思路分享

原创

洞洞拐

安服小兵洞洞拐

2025年12月14日 15:00 河南

·项目地址

https://github.com/h3ll0yoyo9527-techhttps://gitee.com/beiyouyun

1、使用方式介绍

1.1、部署

·项目依赖(spring项目应该都有这个依赖):

·拖:把两个类拖入controller包。把前端文件拖入/src/main/resource/static目录

·改:包名称。添加信任的controller:MS_C_SKController类的isEssentialClassByName方法(不需要添加自身,已经在后边代码排除扫描自身了)。

·启动项目后,刷新页面即可。

·注意:controller卸载工具按方法名卸载(同一个类的其他方法不受影响)、interceptor工具按照类卸载(卸载指定类名的所有拦截器实例,interceptor其实也没多少,关注度也不大)

1.2、测试(写一个漏洞点,动态加载冰蝎马)

2、实际项目部署

·实际整一个springboot项目搞一下:

https://gitee.com/aun/Timo#https://gitee.com/link?target=http%3A%2F%2F42.194.205.137

·改好数据库连接密码,把两个类和两个前端文件复制过去(包文件名都不用改,自动改了)

·访问http://127.0.0.1:8080/login,触发了拦截器,需要登录:admin/123456

3、可能遇到的问题

·java版本,这个是最烦人的。jdk1.8、springboot2.4.5和2.6试过。按理说就是一个正常的功能类代码,应该不至于版本上有大问题,大多会出现些语法问题。

·某些类型的内存马可能无法扫描到,可能内存马的处理器不一样。可以扫出:controller基于Bean名称的映射、基于URL模式的映射、基于注解的映射。Interceptor利用的不多。

·有磁盘类文件的可以dump,没有磁盘类文件的无法dump源字节码。如果点击dump后会有报错是正常现象。如果真需要dump,可以用阿尔萨斯反编译,可以看前一篇文章。

·是否考虑权限及拦截问题。涉及内部控制器,如果泄露也会很麻烦。部署到测试项目后一定要考虑此文件无鉴权,如果其他的类被鉴权是扫描不到的。可以考虑让这个文件在访问的时候也带上鉴权凭证,比如上边的“二、1.1实际项目部署”,就是需要先登录后才可以访问。

·思路介绍看后续文章


查看原文:《关于spring内存马的解决思路分享》

评论:0   参与:  1