UTF-8 Overlong Encoding
UTF-8 Overlong EncodingUTF-8编码UTF-8是一种广泛使用的字符编码方案,它能够对Unicode字符集中的任何字符进行编码。UTF-8是一种变长编码,它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。
编码规则如下:
1.对于单字节的符号,字节的第一位设为0,后面7位为这个符号的 Unicode 码。因此对于英语字母,UTF-8 编码和 ASCII 码是相同的。
2.对于n字节的符号(n > 1),第一个字节的前n位都设为1,第n + 1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的 Unicode 码。
First code point
Last code point
Byte 1
Byte 2
Byte 3
Byte 4
0x0000 0000
0x0000 007F
0xxxxxxx
0x0000 0080
0x0000 07FF
110xxxxx
10xxxxxx
0x0000 0800
0x0000 FFFF
1110xxxx
10xxxxxx
10xxxxxx
...
Nacos <=2.4.0.1 任意文件读写删
Nacos <=2.4.0.1 任意文件读写删前言在Nacos<=2.4.0.1版本中集群模式启动下存在名为naming_persistent_service的Group,该Group所使用的Processor为com.alibaba.nacos.naming.consistency.persistent.impl.PersistentServiceProcessor类型Processor,在进行处理过程中会触发其父类onApply或onRequest方法,这两个方法会分别造成任意文件写入删除和任意文件读取
官方社区公告:https://nacos.io/blog/announcement-nacos-security-problem-file/
漏洞出现在Jraft服务(默认值7848)
环境搭建docker搭建集群参考:https://github.com/nacos-group/nacos-docker
漏洞分析这个漏洞的原理和之前的Nacos Hessian 反序列化漏洞差不多,但是没这么复杂
这里只说重点,请求包的构造参考之前的Nacos H ...
Solon框架注入内存马(二)
Solon框架注入内存马(二)接上一篇文章思考部分,该框架应该还可以注入其他内存马,下面通过对solon-examples这个项目调试分析
Handler内存马命名可能不太准确,暂时这么叫吧,调试的是demo3011-web
在HelloworldController中,在此思考一个问题,路由“/helloworld”是如何绑定HelloworldController类的helloworld()方法的,断点调试一下
逐个查看和分析当前调用栈,来到org.noear.solon.core.route.RouterHandler这个类的handle方法
其中this.router大有来头,里面存储着当前所有的路径信息,包括对应作用的类和方法,请求路径和请求方式
找到“/helloworld”,可以看到ActionDefault对象里存储着对应类HelloworldController
如果能够动态的在routesH添加一条RouterDefault,估计就能够实现内存马了
如何添加?
在org.noear.solon.core.route.RouterDefau ...
JDK17+反射限制绕过
JDK17+反射限制绕过测试环境jdk-17.0.5
测试代码
List<Integer> list = new ArrayList<>();
Field field2 = list.getClass().getDeclaredField("elementData"); //private static final Object[]
field2.setAccessible(true);
for (int i = 0; i < 100; i++) {
Object[] elementData = (Object[]) field2.get(list);
System.out.println(i + "," + "list size:" + list.size() + ", element array length:" + elementData.length);
list.add(i);
}
在JDK17下运行报错:
Excepti ...
Solon框架注入内存马
Solon框架注入内存马Solon简介Solon是Java “新的”应用开发框架,类似Spring boot ,号称Java “纯血国产”应用开发框架
Github地址
官网
架构图:
请求处理过程
Web处理会经过四个路段:过滤器(Filter)->路由拦截器(RouterInterceptor)->处理器(Handler)->拦截器(Interceptor)
Filter内存马去官方下载了个demo
根据官方文档web开发部分编写了个简单的Filter
@Component(index = 0) //index 为顺序位(不加,则默认为0)
public class FilterDemo implements Filter {
@Override
public void doFilter(Context ctx, FilterChain chain) throws Throwable {
System.out.println(ctx.path()); //输出当前访问路径
chain.doFi ...
网传的nacos 0day
网传的nacos 0day分析前言这个”nacos 0day”在今天下午(2024.7.15)在各个公众号和群疯传,漏洞作者在GitHub上给出了POC
没接触过nacos,尝试分析
漏洞复现这里直接使用给POC进行复现,并且作者给出了利用方式
因为某些原因,公开一个nacos的0day
环境准备:
下载nacos2.3.2或2.4.0版本,解压,使用
startup.cmd -m standalone 启动nacos
补充POC信息
POC是一个python项目,依赖requests和flask,请先使用requiments.txt安装依赖
1.配置config.py中的ip和端口,执行service.py,POC攻击需要启动一个jar包下载的地方,jar包里可以放任意代码,都可执行,我这里放了一个接收参数执行java命令的
2.执行exploit.py,输入地址和命令即可执行。
首先下载nacos2.3.2或2.4.0版本(我用的是2.4.0),解压然后在bin目录下运行命令startup.cmd -m standalone
然后修改config.py中的配置,这个配置是远程j ...
CVE-2024-31982 XWiki DatabaseSearch 远程代码执行漏洞
CVE-2024-31982 XWiki DatabaseSearch 远程代码执行漏洞前言XWiki是一个由Java编写的基于LGPL协议发布的开源wiki和应用平台。它提供了一个强大、灵活且易于使用的平台,用于构建、管理和分享知识。XWiki可以运行在多种Servlet容器上,如Tomcat、Jetty、JBoss、WebLogic、WebSphere等,并支持多种关系型数据库,如HSQL、MySQL等。支持创建、编辑和版本控制各类文档,并提供多语言支持,满足全球化团队的需求。平台集成了讨论、评论、投票和任务管理等功能,便于团队成员之间的沟通与协作。拥有丰富的第三方扩展库支持,能够适应各类业务需求。
XWiki 最近发现存在远程代码执行漏洞,该漏洞源于DatabaseSearch 接口代码设置不当缺陷,导致未经身份验证的远程攻击者可以执行任意Groovy代码或任意系统指令,从而获取服务器权限
影响范围从 2.4-milestone-1到14.10.20 之前的版本
从 15.0-rc-1 到 15.5.4 之前的版本
从 15.6-rc-1 到 15.10-rc-1 之前的版本
环 ...
CVE-2024-36401 GeoServer XPath rce
CVE-2024-36401 GeoServer XPath rce前言GeoServer是一个用Java编写的开源软件服务器,允许用户共享和编辑地理空间数据。它为提供交互操作性而设计,使用开放标准发布来自任何主要空间数据源的数据。
漏洞描述该系统不安全地将属性名称解析为 XPath 表达式。GeoServer 调用的 GeoTools 库 API 以不安全的方式将要素类型的属性名称传递给 commons-jxpath 库。该库在解析 XPath 表达式时,可以执行任意代码。影响范围:GeoServer < 2.23.6 2.24.0 <= GeoServer < 2.24.4 2.25.0 <= GeoServer < 2.25.2
环境搭建代码可以直接去github下载,自己编译运行:https://github.com/geoserver/geoserver/
或在Vulhub下载对应的docker-compose.yml
version: '3'
services:
web:
image: vulhub/ge ...
Apache Kafka UI 远程代码执行漏洞分析
UI for Apache Kafka 远程代码执行漏洞分析前言UI for Apache Kafka 是 Provectus 开源的针对 Apache Kafka 的一款管理界面。kafka-ui 0.4.0版本至0.7.1版本存在安全漏洞,第一个漏洞可执行任意的 Groovy 脚本,第二个漏洞可通过滥用 Kafka UI 连接到恶意 JMX 服务器来利用,从而通过不安全的反序列化导致 RCE。UI for Apache Kafka 默认情况下没有开启认证授权。
环境搭建UI for Apache Kafka项目地址:https://github.com/provectus/kafka-ui
目前最新版是v0.7.2,修复了漏洞,这里分析两个漏洞使用的版本是v0.7.1,并且使用的是docker来搭建
Kafka
version: "3"
services:
kafka:
image: 'bitnami/kafka:latest'
ports:
- '9092:9092'
environmen ...
Frida学习
Frida学习简介Frida 是一款开源的动态插桩工具,可以插入一些代码到原生App的内存空间去动态地监视和修改其行为,支持Windows、Mac、Linux、Android或者iOS,从安卓层面来讲,可以实现Java层和Native层Hook操作。 项目地址 官网及使用文档
Frida原理及重要组件frida注入的原理就是找到目标进程,使用ptrace跟踪目标进程获取mmap,dlpoen,dlsym等函数库的偏移获取mmap在目标进程申请一段内存空间将在目标进程中找到存放frida-agent-32/64.so的空间启动执行各种操作由agent去实现
组件名称
功能描述
frida-gum
提供了inline-hook的核心实现,还包含了代码跟踪模块Stalker,用于内存访问监控的MemoryAccessMonitor,以及符号查找、栈回溯实现、内存扫描、动态代码生成和重定位等功能
frida-core
fridahook的核心,具有进程注入、进程间通信、会话管理、脚本生命周期管理等功能,屏蔽部分底层的实现细节并给最终用户提供开箱即用的操作接口。包含了f ...