一文看懂Tomcat架构以及关键知识
Tomcat关键知识了解Tomcat 是由 Apache 软件基金会 开发的一个开源的 Java Web 应用服务器,属于 Jakarta 项目的核心部分。它支持最新的 Servlet 和 JSP 规范,能够运行基于 Java 的动态 Web 应用程序。关键文件及目录说明tomcat源码目录说明在apache的tomcat官网下载的tomcat9源码中,可以看到如下的目录:<img src=
hibernate组件的反序列化漏洞
hibernate组件的反序列化漏洞hibernate是基于Java开发的一个ORM(对象关系映射)框架,通过将Java对象与数据库进行映射,简化了数据库操作。算是一个比较常见的组件,比如常见的SSH(Struts、Spring和Hibernate)框架就使用了这个。但是这里主要来谈谈这个组件存在的反序列化漏洞,在一定的版本下可以打TemplatesImpl的动态加载字节码和打jndi漏洞。在ys
fastjson反序列化调用链分析
这里来调试分析一下fastjson原生反序列化,也就是比较常打的反序列化调用链。Fastjson<=1.2.48&2这里以1.2.48版本为例进行构造,在fastjson1版本下的>=1.2.49需要有一定的绕过方法,这个后面会讲。这里可以利用的类是JSONObject以及JSONArray类,存在利用点的是这两个类的toString()方法,这两个类本
jackson反序列化通杀链
前面简单了解了一下jackson反序列化,可以知道在序列化时会调用getter方法,而反序列化时会调用setter,但是都是有一定限制的,这里就来了解一下原生链的打法。pom.xml文件中使用的依赖项如下:<dependency> <groupId>com.fasterxml.jackson.core</groupI
javasec 动态加载字节码
动态加载字节码字节码Java字节码指的是JVM执行使用的一类指令,通常被存储在.class文件中。加载远程/本地文件在前面类加载机制的学习中,正常情况下URLClassLoader是AppClassLoader的父类。通常情况下,Java会根据配置项sun.boot.class.path和java.class.path中列举的基础路径(这些路径是经过处理后的java.net.URL类)来寻找.
javasec JDK7u21原生链
# JDK 7u21 7u21这条链不需要任何依赖,完全是靠 java 原生类来进行利用。 影响版本:JDK hash中的ctf(TemplatesImpl键值对)。并且调试后也符合情况。 然后我在JDK8也试了一下,也是先反序列化的第二个键值对,但是测试的键值对都是以一个类实例为key,原因大概如下:#CT
javasec CB链
# CB链 ## 环境配置 ##### 环境配置 pom.xml添加: ```java commons-beanutils commons-beanutils 1.8.3
Jinjia2-SSTI响应头带数据分享
Jinjia2-SSTI响应头带数据这个利用方式比较新,只要是打jaijia2的ssti应该都能打。但是以前看过一道java的题,其实思路都是差不多的,就是将回包的响应头的回显改成我们想要的回显。在Python中的利用,第一次见于2024SCTF的题,原题是flask模板,然后利用了内置的jinjia2引擎,所以这里是可以进行尝试的。这里先本地搭建一个环境来进行测试,还是一个简单的falsk
Python内存马分析
Python内存马分析概念常用的Python框架有Django、Flask, 这两者都可能存在SSTI漏洞. Python内存马利用Flask框架中SSTI注入来实现,Flask框架中在web应用模版渲染的过程用到render_template_string函数进行渲染, 但未对用户传输的代码进行过滤导致用户可以通过注入恶意代码来实现Python内存马的注入Flask 请求上下文管理机制当网页请
python栈帧逃逸分析
python栈帧逃逸一个挺新的逃逸方式。生成器(henerator)Python生成器是一个特殊的迭代器,可以逐个产生元素,而不是一次性产生所有元素。生成器的工作方式与迭代器相似,可以通过for循环或者__next__()方法(或者使用next()函数)逐个获取生成器中的元素。生成器使用yield关键字来定义生成器函数。迭代器在执行的过程中,<u>遇到yield语句时&