简要分析学习spring内存马,劫持马

简要分析学习spring内存马,劫持马


本文主要是通过SpringMemShell这个工程,来对spring内存马进行演示,利用。

写在前面:

参考的是大佬给的流程以及思路,其中的解释与分析非常详细
----->>大佬的链接
这里的内存马文件取自github,仅供学习研究,无其他用途
github工程链接

  • 在工程中,发现这个InjectToController方法中,通过:new PatternsRequestCondition("good");语句注册good的url,调用前面的test方法

在这里插入图片描述

  • 而在test方法中,主要还是通过拿到cmd中的值,来调用对应的方法执行,这里分为windows和linux两种情况
    在这里插入图片描述
    这里提供大佬的运行流程:
    在这里插入图片描述
    在这里插入图片描述
    在注入后,如果访问/api一切正常
    如果访问/api?cmd=whomai等情况则执行命令

隐形马核心原理

产生思路:把反射调用的方法改成特殊的方法

不含有cmd参数时返回和以前一样的结果,伪装正常
如果有cmd参数传入则执行命令回显,做到内存马的效果
思路简单,实际上并不是很容易修改


本次学习就到这里,并没有对spring内存马充分掌握,还有待理解,望各位大佬不吝赐教,交流探讨

  • 附带一份简单的学习思维导图,后续完整思维导图会分享在资源中
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/20146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第100+9步 ChatGPT文献复现:ARIMA预测百日咳

基于WIN10的64位系统演示 一、写在前面 我们来继续换一篇文章来学习学习: 《BMC Public Health》杂志的2022年一篇题目为《ARIMA and ARIMA-ERNN models for prediction of pertussis incidence in mainland China from 2004 to 2021》文章的模拟数据做案例。 这…

hadoop(1)--hdfs部署(亲测可用)

一、准备: 1、三台集群部署,配置hosts #cat /etc/hosts 192.168.46.128 node1 #nameNode dataNode secondaryNameNode 192.168.46.129 node2 #datanode 192.168.46.130 node3 #datanode说明: NameNode: 主节点管理者 DataNode&…

LNMP部署及应用

目录 1.LNMP概述 Nginx 特点 Nginx 作用 2.分布式部署LNMP操练 Nginx主机:CentOS 7-1 PHP主机: CentOS 7-2 1.LNMP概述 Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行&…

Kotlin 对象

文章目录 对象表达式(匿名对象)对象的声明 对象表达式(匿名对象) 在 Kotlin 中可以使用object {}声明一个匿名的对象,我们无需声明这个对象的类: fun main() {val any object {fun greet() print("…

C - Job Interview

思路: 先不考虑溢出,将nm1按照分配的工作分类 会发现,有且仅有一种工作的人数是溢出的,即超过了上限,记作工作1;且另一种工作的人数没有溢出,记作工作2 工作2因为没有溢出,不管没…

CPU/GPU/FPSGO,负载调试/设置命令开关

CPU/GPU/FPSGO,负载调试/设置命令开关 首先,进入: adb shell cat sys/kernel/ged/hal/gpu_utilization 查看GPU的负载情况。输出三个数字,第1个表示使用率,第3个表示空闲率。 echo 0 /sys/kernel/fpsgo/common/force…

Java中的网络编程:构建稳健的分布式应用

网络编程是Java开发中至关重要的一部分,特别是在构建分布式系统和网络应用程序时。Java提供了丰富的网络编程API和库,使开发者能够轻松创建各种网络应用。本文将介绍Java中的网络编程基础、常用的网络通信协议、以及如何利用Java构建稳健的分布式应用。 …

redis教程介绍以及要点和难点

Redis是一个开源的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息代理。以下是关于Redis的详细概述: 定义 Redis,全称Remote Dictionary Server,是一个高性能的key-value数据库。 它支持多种数据结构,如string(字符串)、list(链表)、set(集合)、zset(…

Linux网络-使用Tcp协议进行网络通信并通过网络接口实现远端翻译

文章目录 Tcp协议Tcp协议常见API接口1. int socket(int domain, int type, int protocol);2. int bind(int socket, const struct sockaddr *address, socklen_t address_len);struct sockaddr 3. int listen(int socket, int backlog);4. int accept(int socket, struct socka…

计算机网络——如何保证 TCP 传输的可靠性

TCP 是传输层上的协议,它是可靠的,面向连接的。 概括 1. 设置传输格式,包括分为 TCP 段、使用校验和、使用序列号 2. 数据丢失之后的重传,超时重传、快速重传、SACK 选择确认、D-SACK 重复选择确认 3. 流量控制,控…

关于auto-coder的一次辩经

"其实是这样的,助手只要能给出正确的代码,粘贴一下,不是主要工作量" 这种思路还是把大模型当成一个信息获取工具来用,那么注定难以变革生产力,他和搜索引擎没有任何区别,那么把搜索引擎换成大模型…

spring 事务方式和事务传播

spring 事务方式和事务传播 Spring框架提供了多种方式来处理事务,以确保在应用程序中数据的一致性和完整性。在Spring中,事务可以通过注解、XML配置或编程方式来管理,而事务传播机制定义了事务在多个方法之间的传递和交互方式。 以下是Sprin…

字符串-至多包含K种字符的子串中最长子串(mid)

一、题目描述 二、解题思路 借鉴以下题目思想,使用双指针,外层循环右侧指针移动,内存循环左侧指针移动 字符串-最长不含重复字符的子字符串(mid)-CSDN博客文章浏览阅读622次,点赞17次,收藏4次。java刷题:…

探索第三方美颜SDK:美颜插件的技术原理

本篇文章,我们将深入了解第三方美颜SDK,主要探讨关于美颜插件的工作机制与算法。 一、第三方美颜SDK的概述 第三方美颜SDK是由专业团队开发的一套用于实现美颜功能的软件开发工具包。它通常包括了各种美颜算法、滤镜效果、人脸识别等核心技术&#xff…

Kafka broker的新增和剔除(服役与退役)

说明:集群现有broker:node1,node2,node3三个,broker.id分别为0,1,2 已有两个topic:products、cities 1、退役(Kafka集群中减少一个服务器broker2) 退役后要保证剩下的服务器数量大于等于备份数&#xff0c…

【IC前端Job】

IC前端Job 1 前端1.1 前端设计1.2 前端验证(DV)1.3 FPGA原型验证1.4 Emulator1.5 软件验证 上一篇文章细说了设计文档对于IC前端设计人员的重要性;这次集中在前端设计从RTL编码–>RTL freeze这个过程中所要工作和打交道的地方; IC前端设计具体工作&am…

Pytorch常用函数用法归纳

一、创建tensor张量 1.torch.arange() (1)函数原型 torch.arange(start0,end,step1,*,outNone,dtypeNone,layouttorch.strided,deviceNone,requires_gradFalse) (2)参数说明: 参数名称参数类型参数说明startNumber起始值,默认值为0endNumber结束值stepNumber步…

软件设计不是CRUD(21):在流式数据处理系统中进行业务抽象落地——需求分析

本文主要介绍如何在数据处理系统中应用业务抽象的设计思想。目前业界流行的数据处理方式是流式处理,主流的流式处理引擎有Apache Spark,Apache Flink等等。本文选择Apache Flink作为实战案例的落地。由于本文主要是讲解设计思想和流式处理引擎相结合的方…

使用docker直接运行不同版本nodejs命令

在低版本的操作系统上,安装和使用高版本的node以及相关工具可能会因为兼容性问题而无法使用,比如对Ubuntu 18.04来说,会因为glibc的版本问题而无法直接安装使用nodejs 18以上的版本。运行弄得是可能会遇到类似的报错 node: /lib/x86_64-linu…

Linux基础指令目录管理003

今天我们讲一下目录的切换。 操作系统: CentOS Stream 9 操作命令: cd 改变当前工作目录 [rootlocalhost ~]# cd /usr/local/nginx/conf [rootlocalhost conf]# cd .. [rootlocalhost nginx]# cd .. [rootlocalhost local]# 操作命令: …