1.mobile aloha代码解析和复现
2.Apache Tomcat 反序列化代码执行漏洞复现(CVE-2020-9484)
3.log4j2远程代码执行漏洞本地复现
4.shiro反序列化漏洞原理分析以及漏洞复现(Shiro-550/Shiro-721漏洞复现)
5.notepad++堆缓冲区溢出漏洞CVE-2023-40031分析与复现
6.fastjson 1.2.24源码分析以及漏洞复现
mobile aloha代码解析和复现
本文基于 mobile-aloha的源码开源代码复现工作,分为四大部分:下载与修改源代码、泄漏安装依赖、复现准备数据集、源码训练与评估。泄漏
首先,复现美联储黄金指标源码下载仓库源代码,源码链接为:github.com/MarkFzp/act-plus-plus。泄漏注意,复现源代码中存在一些小错误或说明不清,源码已做修改。泄漏可直接pull本仓库代码。复现
为简化步骤,源码使用requirements.txt文件通过pip安装依赖。泄漏部分代码错误已解决,复现可直接pull代码。
运行代码前,确认默认代码使用wandb进行日志记录和可视化。若希望自行可视化,修改wandb用户名和key,查看相关教程。默认代码使用wandb,自定义设置账号。
数据集分为实际采集和仿真两种。实际数据需下载解压,确保路径正确。仿真数据集通过特定脚本可视化,实际数据集则使用不同脚本处理。
训练过程包括数据准备、训练和评估。下载数据、执行训练脚本并选择适当任务。使用预设参数训练策略,记录训练过程。X的源码评估策略时,考虑策略表现和潜在改进。
算法实现细节解析中,mobile-aloha核心为ACT算法,模仿学习过程通过行为克隆、GAN、VAE等模型实现。VAE架构包含编码器、隐变量、解码器。编码器输出高斯分布,解码器预测动作序列。推理阶段隐变量设置为标准高斯分布。
文章结束处提及后续研究方向,包括泛化性、任务适应性和结合大模型等。对代码理解不清晰或有遗漏之处,欢迎指出。
Apache Tomcat 反序列化代码执行漏洞复现(CVE--)
Apache Tomcat的CVE--远程代码执行漏洞概述,漏洞的详细信息与影响范围如下。 Apache Tomcat是一个开放源代码的Java Web应用容器,该漏洞存在于使用了自带session同步功能,而没有正确使用EncryptInterceptor配置的场景中。攻击者利用精心构造的数据包,可以对部署了Tomcat且具有特定配置的服务器进行攻击。 成功利用此漏洞需要满足以下四个条件:攻击者能够控制服务器上的文件内容和文件名。
服务器配置了PersistenceManager使用了FileStore。
PersistenceManager的sessionAttributeValueClassNameFilter配置为“null”或者过滤机制不严格,允许攻击者提供恶意反序列化的对象。
攻击者知道FileStore存储位置到攻击者可控文件的相对路径。
该漏洞的威胁等级为中危,主要影响版本在CVE--漏洞公告覆盖的范围内。 漏洞复现实验可以在本地环境或Docker容器中进行。59站源码本地环境搭建步骤:
设置server.xml文件参数,如debug、saveOnRestart、maxActiveSession等,然后部署一个依赖commons-collections4的web应用到Tomcat中。Docker环境搭建步骤:
克隆相关代码,构建Docker镜像,运行Docker容器,并通过特定端口访问容器内的Tomcat服务。 验证漏洞的存在,可以通过以下步骤:使用ysoserial工具生成恶意序列化数据,利用文件上传功能将数据上传到服务器。
发起恶意请求,携带恶意数据。
漏洞检测方法包括:检查安装的Apache Tomcat版本,确认是否受影响。
检查配置文件(如context.xml或server.xml)中是否存在FileStore配置。
修复建议包括:使用最新版本的Apache Tomcat,官方已修复该漏洞。
禁用或正确配置FileStore的使用,避免使用不安全的反序列化过滤机制。
华云安安全威胁管理平台提供了一套自动化漏洞挖掘与利用能力,帮助客户实现持续的风险检测和威胁防御。 “以攻促防,攻防兼备”的理念贯穿华云安的产品与服务,通过一流的安全攻防团队和网络安全产品,服务于关键信息基础设施行业,构建全面的网络安全保障体系。log4j2远程代码执行漏洞本地复现
本文仅供学习参考,请勿在真实环境进行网络攻击行为。
一、背景
Log4j 2 是 Java 中应用非常广泛的一个日志框架,在 年底,alice源码分析一个名为 CVE--(也称为 Log4Shell)的严重漏洞被发现,该漏洞被CVSS评为分最高级别。网络攻击者利用这个漏洞不需要服务器密码就可以访问并操作服务器,攻击方式非常简单,技术门槛低,危害极大。受影响版本:Apache log4j2 2.0 - 2..1 下面先简单看一下攻击原理,然后直接开始操作。
二、攻击原理
假设现在有个网站,当用户登录时,正常请求路径如下:
如果应用服务端的登录接口中使用漏洞版本的log4j2打印请求参数的日志,就有可能被注入。如图所示:
三、复现步骤
以下代码已放在github仓库:log4j漏洞复现代码
1. jdk版本
作者使用jdk1.8.0_和1.8.0_复现成功,1.8.0_复现失败。
JDK 6u、7u、8u之后:增加了com.sun.jndi.ldap.object.trustURLCodebase选项,默认为false,禁止LDAP协议使用远程codebase的选项,把LDAP协议的攻击途径也给禁了。
使用1.8.0_的情况下,将trustURLCodebase属性设置为true也没复现成功,原因暂未深究。
2. 模拟被攻击的应用服务器
写一个springboot项目,模拟被攻击的应用服务端登录接口,接口中打印了userName参数日志,启动此项目。端口为。访问地址为 .0.0.1:/login
3. 编写恶意代码
写一个在应用服务端执行的恶意代码,这里用删除一个服务器文件做演示,实际上可以使用反弹shell等做更多有害操作。sdl源码阅读编译这个类,生成class文件。
4. 启动/webraybtl/CV...链接。
fastjson 1.2.源码分析以及漏洞复现
反序列化,这个过程将字节序列恢复为Java对象。例如在使用Python做自动化测试时,通过字符串名字调用相同名字的方法。Fastjson的功能允许通过字符串引用如`@type":"com.sun.rowset.JdbcRowSetImpl`来执行内部方法。由此,我们能利用Fastjson提供的便利,通过调用对应的函数来验证漏洞。
在渗透测试中,漏洞的验证通常需要满足几个条件:判断指纹和指纹回显,Fastjson的特性使得这一步变得简单。然而,在利用过程中,要考虑到Fastjson本身的限制、JDK的限制以及可能的安全配置限制。因此,POC验证方案需考虑这些限制的版本和配置。
Fastjson通过JSON抽象类实现JSONAware接口,并提供两个常用方法:`toJSONString`用于对象转换为JsonString,`parseObject`用于将JSON字符串转换为对象。这次的漏洞主要与反序列化相关。
反序列化的执行发生在`DefaultJSONParser.java`类中。关键代码中,固定键`@type`对应反序列化类的全路径,其中`typeName`为传入类的全路径。在Fastjson 1.2.版本中,`loadClass`方法未进行任何过滤,允许传入任何JVM加载的类,并执行`setKey`方法,其中Key为可变参数。
要利用这个反序列化漏洞,需要满足以下条件:JVM加载的类、有非静态set方法和传入一个参数。使用RPC远程执行代码的思路实现POC,此处使用了`com.sun.rowset.JdbcRowSetImpl`实现。
JNDI全称为Java Naming and Directory Interface,主要提供应用程序资源命名与目录服务。其底层实现之一是RMI(Remote Method Invocation),用于Java环境的远程方法调用。在`com.sun.rowset.JdbcRowSetImpl`类中,关注点在于`getDataSourceName()`和`setAutoCommit()`方法。`getDataSourceName()`用于传值,`setAutoCommit()`用于确认调用set方法。
实现过程包括引用`com.sun.rowset.JdbcRowSetImpl`类、设置`dataSourceName`传值以及通过`autoCommit`属性触发执行方法。完成方法确认后,使用`marshalsec`项目启动RMI服务并加载远程类。
POC的实现步骤如下:首先确认目标是否使用Fastjson且存在漏洞;利用Fastjson的反序列化功能传输引用类和执行方法;使用`com.sun.rowset.JdbcRowSetImpl`执行验证POC的脚本,并观察回显结果;最后,完成漏洞利用。
具体操作包括搭建环境,如使用CentOS虚拟机作为RMI服务器和远程调用服务,KALI机器作为靶机和抓包测试。进行指纹确认、安装maven、构建RMI服务器和客户端、调用测试文件,并观察DNS日志以验证漏洞成功利用。通过DNS日志确认漏洞利用成功后,可以进一步尝试反弹shell,实现远程控制。
综上所述,Fastjson的反序列化漏洞是一个可以被利用的安全问题,通过合理的利用,可以实现远程代码执行。了解和研究这类漏洞有助于增强对Fastjson以及类似技术的防御能力。
Web中间件漏洞之Tomcat篇
Tomcat简介
Tomcat服务器是免费开放源代码的Web应用服务器,专为轻量级应用设计,在中小型系统和并发访问用户不多的场合广泛使用。对于新手,它可作为开发和调试JSP程序的首选服务器。运行在Windows主机上时,Tomcat作为Apache服务器的扩展独立运行,可响应HTML页面的访问请求。
远程代码执行漏洞及修复
通过构造攻击请求,利用Tomcat在Windows主机上运行且启用HTTP PUT请求方法,攻击者可以上传包含任意代码的JSP文件,从而实现任意代码执行。此漏洞影响的版本为Apache Tomcat 7.0.0至7.0.。复现步骤包括配置漏洞、开启PUT方法上传文件功能、插入相关配置文件、重启服务、通过burp抓包并修改请求方式为PUT,创建并上传包含命令执行代码的JSP文件,最后验证代码执行成功。
修复措施包括检测当前版本是否受影响并禁用PUT方法,或者更新至最新版。
后台弱口令war包部署漏洞及修复
Tomcat支持后台部署war文件,直接在web目录部署webshell。若后台管理页面存在弱口令,则攻击者可通过爆破获取密码,进而上传和执行webshell。修复方法包括在系统上以低权限运行Tomcat,创建专门的Tomcat服务用户并设置最小权限,增加本地和基于证书的身份验证,部署账户锁定机制,并针对特定目录设置最小权限访问限制,避免使用弱口令。
反序列化漏洞及修复
此漏洞与Oracle发布的mxRemoteLifecycleListener反序列化漏洞相关,由使用JmxRemoteLifecycleListener的监听功能引起。在Oracle发布修复后,Tomcat未能及时修复更新,导致远程代码执行。漏洞影响的版本包括9.0.0.M1到9.0.0.M、8.5.0到8.5.6、8.0.0.RC1到8.0.、7.0.0到7.0.、6.0.0到6.0.。复现步骤需要外部开启JmxRemoteLifecycleListener监听的端口,修改配置文件和脚本,下载并部署相关jar包,验证远程代码执行。
修复措施包括关闭JmxRemoteLifecycleListener功能或对远程端口进行网络访问控制,增加严格的认证方式,并根据官方更新相应版本。
Shiro反序列化漏洞原理详解及复现
要进行Shiro反序列化漏洞的探究,首先需要搭建一个vulhub提供的Shiro环境,通过访问端口进行测试确认。
Shiro是个开源的安全框架,核心功能包括身份验证、授权和会话管理。当我们尝试登录并勾选"Remember me"选项,Burp抓包会发现响应包中的set-cookie字段包含'rememberMe'。如果不勾选,set-cookie则会设置为'rememberMe=deleteMe',这成为判断网站是否使用Shiro和是否存在漏洞的线索。
虽然不深入分析源码,但服务端在处理cookie时,会经历一系列操作,包括读取、处理和存储。这个过程中的一个环节,URLDNS链可以被利用,从HashMap的readObject方法开始,通过一系列转换最终发送DNS解析请求。利用ysoserial工具生成URLDNS链,然后对特定payload进行加密和编码,隐藏JSESSIONID并修改rememberMe字段。
通过这种方式发送请求,DNS日志会显示成功,表明存在可利用的漏洞。进一步,可以尝试生成CC链,利用它执行反弹shell攻击,但需要注意,vulhub靶机可能缺少nc工具,需要先进行上传。
关于Shiro的不同版本,1.4.2版本之前的使用CBC加密,虽然密钥不再硬编码,可以通过padding oracle攻击,但1.4.2及以后的版本切换到了GCM加密,这为防御带来了变化,需要在实际环境中考虑相应的防护措施。
TomCat 弱口令漏洞复现
Tomcat,一个流行的Java Web服务器,因其开源特性而广泛使用,但也曾暴露出一个严重的安全漏洞。这个漏洞源于管理界面的弱口令设置,攻击者能轻易利用暴力破解或预设的账号密码,非法闯入服务器的管理界面,进行恶意操作。
为了重现此漏洞,首先需要确保Java环境已安装并配置。通过解压Tomcat软件,启动服务后,可以进入源码目录查看已有的更改。然后,我们需要开启管理控制台的远程访问权限,编辑webapps/manager/METAINF/context.xml文件来配置管理控制台的密码,这样就能访问后台管理界面。
利用这个弱口令漏洞,恶意攻击者可以将恶意的war包上传到服务器,通过名为jsshell的功能部署恶意软件。上传成功后,通过在URL中添加特定路径,如jshell.jsp,进入后门页面。输入特定脚本密码后,攻击者可以完全控制网站和服务器后台,权限甚至达到root级别。
这段描述揭示了TomCat弱口令漏洞的复现过程及其潜在的危害,提醒用户务必加强服务器安全设置,避免此类漏洞被恶意利用。