简要分析学习spring内存马,劫持马
本文主要是通过SpringMemShell这个工程,来对spring内存马进行演示,利用。
写在前面:
参考的是大佬给的流程以及思路,其中的解释与分析非常详细
----->>大佬的链接
这里的内存马文件取自github,仅供学习研究,无其他用途
github工程链接
- 在工程中,发现这个InjectToController方法中,通过:
new PatternsRequestCondition("good");
语句注册good的url,调用前面的test方法
- 而在test方法中,主要还是通过拿到cmd中的值,来调用对应的方法执行,这里分为windows和linux两种情况
这里提供大佬的运行流程:
在注入后,如果访问/api一切正常
如果访问/api?cmd=whomai等情况则执行命令
隐形马核心原理
产生思路:把反射调用的方法改成特殊的方法
不含有cmd参数时返回和以前一样的结果,伪装正常
如果有cmd参数传入则执行命令回显,做到内存马的效果
思路简单,实际上并不是很容易修改
本次学习就到这里,并没有对spring内存马充分掌握,还有待理解,望各位大佬不吝赐教,交流探讨
- 附带一份简单的学习思维导图,后续完整思维导图会分享在资源中