2024-03-16
3.3k 字
15 分钟
内存马Tomcat回显
内存马Tomcat回显所谓回显,其实就是获取命令执行的结果,这种技术常用于目标机器不出网,无法反弹shell的情况。其实关键就是获取request和response对象。
参考:
Java安全学习——内存马 - 枫のBlog
https://johnfrod.top/%e5%ae%89%e5%85%a8/java-%e5%9b%9e%e6%98%be%e6%8a%80%e6%9c%af/
https://xz.aliyun.com/t/12494
示例我们以上文提到的Tomcat Filter内存马为例,获取对应的回显,关键代码如下
<%! public class Shell_Fi
2024-03-12
2k 字
7 分钟
线性回归
线性回归(Linear Regression)机器学习中的两大类问题:回归问题和分类问题
回归问题就是进行预测,如股票、房价预测分类问题就是将多个事物进行分类
线性回归是一种用于预测连续数值输出的监督学习算法,它通过建立一个线性方程来描述输入变量与输出变量之间的关系。该算法的目标是使预测值与真实值之间的差异最小化。
概述线性回归是通过一个或多个自变量与因变量之间进行建模的回归分析,其特点为一个或多个称为回归系数的模型参数的线性组合。样本点为历史数据,回归曲线要能最贴切的模拟样本点的趋势,将误差降到最小。
线性回归方程 线形回归方程,就是有 n 个特征,然后每个特征 **Xi **都有相
2024-03-12
6.1k 字
28 分钟
Spring内存马
Spring内存马参考:
Java安全学习——内存马 - 枫のBlog
Spring内存马——Controller/Interceptor构造 - 先知社区
Java内存马-SpringMVC篇_”expected lookuppath in request attribute \“org.sp-CSDN博客
在学习spring内存马的时候,最好知道spring、springmvc、springboot的开发知识和基本使用,下面就不多介绍基础的开发知识
基础知识依赖
<dependency> <groupId>org.springframewo
2024-03-06
4.3k 字
19 分钟
Tomcat内存马
Tomcat内存马前置知识:Tomcat架构
参考:Java安全学习——内存马 - 枫のBlogJava内存马系列-04-Tomcat 之 Listener 型内存马 | Drunkbaby’s Bloghttps://su18.org/post/memory-shell/
介绍就是根据Tomcat的三大件servlet、linstener、filter注入内存马,Servlet在3.0版本之后能够支持动态注册组件。而Tomcat直到7.x才支持Servlet3.0,因此通过动态添加恶意组件注入内存马的方式适合Tomcat7.x及以上调式时候需要导入对应tomcat版本的jar包依赖
<
2024-02-27
2.5k 字
9 分钟
sklearn与特征工程
sklearn与特征工程简介sklearnScikit-learn(简称为 sklearn)是一个流行的 Python 机器学习库,用于在数据挖掘和数据分析领域中进行各种机器学习任务。它提供了简单而高效的工具,用于数据挖掘和数据分析,以及构建和评估各种机器学习模型。以下是关于 scikit-learn 的一些重要信息:
功能特点:
简单而一致的 API: Scikit-learn 提供了简单而一致的 API,使得用户可以方便地使用各种机器学习算法和工具。
广泛的算法库: Scikit-learn 包含了大量的机器学习算法和工具,涵盖了分类、回归、聚类、降维、模型选择、预处理等多个方面。
易于
2024-02-24
2.2k 字
9 分钟
C3P0链
参考:Java安全学习——C3P0链 - 枫のBlog
C3P0介绍C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。
JDBC是Java DataBase Connectivity的缩写,它是Java程序访问数据库的标准接口。使用Java程序访问数据库时,Java代码并不是直接通过TCP连接去访问数据库,而是通过JDBC接口来访问,而JDBC接口则通过JDBC驱动来实现真正对数据库的访问。连接池类似于线程池,在一些情况下我们会频繁地操作数据库,此时Java在连接数据库时会频
2024-01-22
3.1k 字
11 分钟
SnakeYaml反序列化漏洞
SnakeYaml反序列化漏洞 SnakeYaml 是java解析yaml格式的组件库,将yaml格式的数据转为java对象称为反序列化,反过来就是序列化。
漏洞版本: 1.xx
Yaml介绍特性:
大小写敏感
使用缩进表示层级关系
缩进不允许使用tab,只允许空格
缩进的空格数不重要,只要相同层级的元素左对齐即可
‘#’表示注释
YAML 支持以下几种数据类型:
对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
纯量(scalars):单个的、不
2023-12-26
1.2k 字
5 分钟
JDBC反序列化攻击
JDBC反序列化攻击介绍JDBC(Java DataBase Connectivity)是一种用于执行Sql语句的Java Api,即Java数据库连接,是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,可以为多种关系数据库提供统一访问,提供了诸如查询和更新数据库中数据的方法,是Java访问数据库的标准规范。简单理解为链接数据库、对数据库操作都需要通过jdbc来实现。
Mysql JDBC 中包含一个危险的扩展参数: “autoDeserialize”。这个参数配置为 true 时,JDBC 客户端将会自动反序列化服务端返回的数据,造成RCE漏洞。
分析
JDBC定义了一个叫j
2023-12-10
2.8k 字
12 分钟
java类加载机制与应用
java类加载机制与应用学习类加载,有助于更好的进行攻击。如:
使用冰蝎和哥斯拉的webshell,利用字节码加载的方式绕过waf检测
在其他反序列化漏洞(比如fastjson反序列化漏洞)中的利用链中使用
我的感受:
开始学java时候学这些东西的时候,我确实搞得一脸懵。当学过一些java反序列化后。学到fastjson反序列化的时候,就是这里没搞好,也搞搞得懵逼了。但又回来学习这个类加载的时候,就感觉刚刚好
Java是一个依赖于JVM(Java虚拟机)实现的跨平台的开发语言。Java程序在运行前需要先编译成class文件,Java类初始化的时候会调用java.lang.ClassLo
2023-12-05
1.8k 字
6 分钟
fastjson反序列化解析过程调试
fastjson反序列化解析过程调试简单水一下fastjson反序列化解析过程的调试
介绍 fastjson是阿里巴巴开源的java中解析json的一个组件。其功能就是将json字符串与java对象进行相互转化。正如其名,解析j转化速度很快
但fastjson多个版本都爆出反序列化漏洞,因此当遇到json时,可以看是否用了fastjson,再测是否存在漏洞
当json中含有@type字段时,fastjson会将json解析为对应类的对象
本篇文章主要是fastjson在反序列化解析的调试
调式的代码环境:
jdk8
fastjson 1.2.24
导入(pom.
2023-11-06
618 字
2 分钟
IDA的使用与re浅浅入门
IDA的使用与re浅浅入门界面介绍
左侧是函数窗口,显示一些函数,可以crtf+f寻找main函数,找到主程序
主体是汇编代码,可以通过空格切换查看视图
内存分段,直接明了看所在内存的位置
常用快捷键
F5键–反汇编,,转化为伪C代码
shift+F12 切换到字符串展示界面(String Window)所有字符串在这里显示
crtf+X 交叉引用 寻找数据被引用的地方
g键 跳转到地址处
alt+t 搜索指令
n键对函数进行重命名
ctrl+z撤销操作
数据操作
d键转化数据格式,h结尾代表十六进制
2023-10-15
486 字
1 分钟
创建和配置Servlet项目
创建和配置Servlet项目servlet是原生的javaweb
这里学习javaweb时候,配置Servlet项目,idea社区版怎么手动配置Servlet项目,于是就搞了一个教程,也是算入坑javaweb了
1.创建一个项目
2.添加web模块先选择创建的项目,打开模块设置
在模块中选中自己的项目,添加web模块
然后确定
3.配置web模块在生成的web目录下的WEB-INF目录下创建classes目录,用于存放编译后的文件
再次打开模块设置,在模块中选择我们的项目,设置输出路径,将两个路径改为刚创建好的classes目录
点击修正,然后创建一个工件