1.CmsEasy 5.5 代码执行漏洞复现
2.Log4j2漏洞复现-原理-补丁绕过
3.域渗透- CVE-2020-1472(ZeroLogon)漏洞复现
4.log4j2远程代码执行漏洞本地复现
5.高危 Apache Kafka 远程代码执行漏洞复现及攻击拦截 (CVE-2023-25194)
6.每天3分钟漏洞复现(2.74CMS v5.0.1 后台管理页CSRF漏洞)
CmsEasy 5.5 代码执行漏洞复现
近期,漏洞漏洞我重现了CmsEasy 5.5版本的复现复现一个历史遗留漏洞,该漏洞起源于年,源码源码由于文件上传时对pic参数文件名后缀的什意思忽视,使得恶意用户得以上传php文件,漏洞漏洞但这并非易如反掌。复现复现flask源码加密
常规的源码源码php恶意,经过cut_image_action函数的什意思处理后,往往无法正常工作。漏洞漏洞因此,复现复现我采用了前辈的源码源码脚本(jpg_payload.php)来构造一个在图像处理后仍能执行的恶意。
要成功利用这个漏洞,什意思必须绕过file_exists函数并使其返回True,漏洞漏洞由于HTTP协议的复现复现限制,我选择了FTP作为媒介。源码源码首先,我搭建了一个匿名访问的FTP服务器,并通过POST方法上传恶意,需要注意的是,的尺寸信息应在载荷中准确提供。
使用以下命令可以检查的尺寸信息:
上传的POC载荷如下:
虽然上传成功,但经过PHP图像处理后,恶意代码未能生效,这就需要寻找一种能抵抗图像处理的马,这个过程涉及到Fuzz测试,幸运的是,我找到了相关的脚本。
最终,我成功地上传了一个能对抗图像处理的马,从而实现了代码执行。然而,后续尝试使用蚁剑连接时,却未见到预期的效果。
通过phpinfo检查,我发现部分函数已经被禁用,这增加了漏洞利用的复杂性。
Log4j2漏洞复现-原理-补丁绕过
Log4j2漏洞的核心在于其支持解析ldap/rmi协议,可能导致恶意Class文件加载执行,从而引发攻击。攻击者可通过在日志中插入恶意的JNDI链接,触发恶意Class的咸鱼去除溯源码加载。漏洞复现上,不同JDK版本影响不大,关键在于项目中是否引入了SpringBoot库。
为了验证,可以创建一个Maven项目,引入poc进行简单测试,即进行JNDI注入,多家安全厂商如安恒、都使用不同方法展示了漏洞利用。漏洞原理在于lookup函数的用户可控性,以及对scheme和host的白名单校验,如果没有正确配置,就会成为绕过点。
在log4j-2..0-rc1版本中,开发者通过限制lookup和增加异常处理来增强安全性。但即使如此,通过url语法错误绕过仍有局限,因为配置文件需要用户手动创建和管理,除非配置不当,否则默认是安全的。
总的来说,要防范Log4j2漏洞,关键在于正确配置和使用log4j2,避免默认白名单被滥用,以确保系统的安全。
域渗透- CVE--(ZeroLogon)漏洞复现
本文聚焦于CVE--(ZeroLogon)漏洞的复现,深入探索了NetLogon远程协议在Windows域控系统中的应用,以及攻击者如何利用此漏洞获取域管理员权限,而无需任何凭据。以下将逐步解析这一过程。
### 环境介绍
复现实验首先涉及环境搭建。确保具备目标域控主机的名称和IP地址,且能够访问此域控。
### 漏洞检测与NetBIOS名获取
利用脚本github.com/WiIs0n/Zerol...来检测和获取NetBIOS名称,为后续操作奠定基础。
### 暴力破解域控机器账号密码
针对域控机器账号,通过脚本github.com/dirkjanm/CVE...进行暴力破解,获取域管administrator用户的hash。此步骤留作后续操作的备份。
### 还原机器用户密码
获取旧的x-4 源码机器密码的明文表示形式,使用相关工具进行还原。在过程中会输出大量数据,直至识别出有效信息,确认还原成功。
### 域内hash提取
利用获取的域管administrator hash,执行dump域内用户的ntlm hash操作。此过程会揭示如Guest用户等的密码信息。
### 参考资源
深入了解此漏洞及复现过程的详细信息,建议查阅以下链接:atsud0.me////CV...、github.com/WiIs0n/Zerol...、github.com/dirkjanm/CVE...、github.com/Ridter/Intra...
以上内容深入解析了CVE--(ZeroLogon)漏洞的复现过程,强调了利用NetLogon远程协议获取域管理员权限的关键步骤,为安全专业人员提供了一手资料。
log4j2远程代码执行漏洞本地复现
本文仅供学习参考,请勿在真实环境进行网络攻击行为。
一、背景
Log4j 2 是 Java 中应用非常广泛的一个日志框架,在 年底,一个名为 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的UVM源码怎么学习选项,把LDAP协议的攻击途径也给禁了。
使用1.8.0_的情况下,将trustURLCodebase属性设置为true也没复现成功,原因暂未深究。
2. 模拟被攻击的应用服务器
写一个springboot项目,模拟被攻击的应用服务端登录接口,接口中打印了userName参数日志,启动此项目。端口为。访问地址为 .0.0.1:/login
3. 编写恶意代码
写一个在应用服务端执行的恶意代码,这里用删除一个服务器文件做演示,实际上可以使用反弹shell等做更多有害操作。编译这个类,生成class文件。
4. 启动/。
每天3分钟漏洞复现(2.CMS v5.0.1 后台管理页CSRF漏洞)
本次复现的漏洞是CMS v5.0.1 后台管理页CSRF漏洞。CVE编号为CVE--。CSRF(cross-site request forgery)翻译过来叫跨站点请求伪造。CSRF攻击通过篡改用户请求来执行非预期操作。举一个简单的例子,作为CMS管理员,某天不小心点击了恶意链接,结果第二天发现系统权限被修改,后台页面被篡改。这种攻击就是利用了CSRF机制。
进行漏洞复现,首先需要登录超级管理员账号。
进入网站,随便操作,如新建一个超级管理员账号。同时,使用Burp抓取到相关页面数据。为了构造CSRF攻击,无需验证token,直接创建账号。
创建账号admin成功。
再次尝试创建新账号,通过Burp抓取数据并使用其工具生成CSRF攻击代码。
将生成的代码发送给管理员,管理员点击提交请求。调解系统网站源码
页面跳转显示操作成功。
成功添加了新账号abcdefg。进一步操作,可以设置瞬发攻击,无需提交请求。
ThinkPHP多语言rce复现分析
前言
最近对 ThinkPHP 多语言远程代码执行 (RCE) 漏洞进行了一番深入学习,该漏洞在特定版本的 ThinkPHP 中存在,本文将详细分析其利用条件、环境搭建、漏洞流程以及漏洞复现的过程。
一、漏洞信息
利用该漏洞,需满足以下条件:
1. 确保已安装 ThinkPHP,并知道 pearcmd.php 文件的位置(默认为 /usr/local/lib/php/pearcmd.php,Docker 版本镜像中 pear 默认已安装)
2. 需开启 php.ini 中的 register_argc_argv 选项(Docker 的 PHP 镜像是默认开启的)
3. ThinkPHP 需开启多语言功能
影响范围:
主要影响 ThinkPHP 版本在 6.0.1、5.0.0、5.1.0 以下至对应补丁修复版本的用户。
二、环境搭建
首先,从 GitHub 下载 ThinkPHP 源码(例如,版本为 6.0.),解压后,通过 composer 安装依赖。在 app/middleware.php 文件中取消注释以开启多语言功能。接着,通过 go-pear.phar 或 Docker 安装 pear。
三、漏洞分析
漏洞主要在于 LoadLangPack 类中的 handle 函数,该函数先通过 detect() 方法检查请求参数是否设置了语言,之后将设置值返回并用于切换语言集。在传递给 load() 函数后,参数又传入 parse() 函数,直接用 include 包含文件,此为漏洞触发点。从获取参数到传入 parse() 函数前,均未对内容进行过滤。
四、漏洞复现
在测试环境中(macOS、PHP 7.3、Apache 2.4),通过以下步骤进行复现:
1. 验证 pearcmd 的存在,获取正确路径(当前环境为 /usr/local/pear/share/pear/pearcmd.php)。
2. 了解如何利用 pear,在开启 register_argc_argv 选项后,参数将作为 $_SERVER['argv'] 的一部分传入。
3. 使用 poc 测试,在 /tmp 目录下写入 admin.php 文件,确保正确写入,验证参数解析过程。
4. 利用文件包含访问写入的文件,实现漏洞复现。
注意,除了使用 config-create 命令,还可以使用 Install 命令进行下载操作。若喜欢本文,别忘了点赞与收藏。关注雷石安全实验室,获取更多网络安全知识与技术文章。
Ubuntu内核提权(CVE--)漏洞的复现&脏牛漏洞
Ubuntu内核提权漏洞的复现实例与脏牛漏洞的复现
Ubuntu,一款以桌面应用为主的开源GNU/Linux操作系统,基于Debian GNU/Linux系统,近来爆出存在本地提权漏洞,编号CVE--。该漏洞存在于Linux内核系统中,涉及调用eBPF bpf(2)函数。当用户供给恶意BPF程序,使eBPF验证器模块产生计算错误,导致任意内存读写问题。低权限用户借此漏洞可获得管理权限。
漏洞详情可见以下链接:
- [Ubuntu本地提权(CVE--)](blog.csdn.net/DarkHQ/article/details/)
- [Ubuntu本地提权(CVE--)](blog.cto.com/chenxinjie/)
此漏洞在老版本中已修复,但Ubuntu ..1-..4版本仍存在问题,官方未发布稳定版本的安全更新。建议用户根据风险评估,通过修改内核参数缓解漏洞影响。
具体复现过程如下:
1. 将工具上传至无root权限用户目录。
2. 使用`cat /etc/shadow`查看权限,确定无法访问`/etc/shadow`文件内容。
3. 编译工具:`gcc -o upstream upstream.c`,生成可执行文件`upstream`。
4. 执行编译后的文件,成功获得root权限。
验证部分,执行`whoami`、`id`、`cat /etc/passwd`和`cat /etc/shadow`,以确认已将普通用户提升为root权限。
脏牛漏洞复现实例:
此漏洞命名源于Linux内核内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞,允许低权限本地用户破坏私有只读内存映射。利用此漏洞,低权限用户可能实现全版本Linux系统的本地提权。受影响的内核版本从2.6.(年)开始,直至年月日才修复。
复现过程如下:
1. 使用gcc编译`dirtyc0w.c`文件。
2. 执行命令`gcc dirtyc0w.c`。
3. 使用`./dirtyc0w foo m`,其中`foo`为文件名参数,`m...`为利用漏洞写入的值。
4. 执行漏洞POC后,通过`cat foo`命令查看文件内容,确认字符串已被覆盖。
有兴趣的读者可自行下载相关系统版本进行实践。官方链接提供对应漏洞版本。操作可能繁琐,但成功复现后,无论是大漏洞还是小问题,都会获得成就感。
更多细节与学习资源,请参考:
- [Linux内存管理漏洞脏牛(Dirty COW)](blog.csdn.net/kimqcn4/article/details/)
欢迎关注“破壳学院”公众号,获取更多学习资源与分享。记得点赞哦!
shiro反序列化漏洞原理分析以及漏洞复现(Shiro-/Shiro-漏洞复现)
shiro-反序列化漏洞(CVE--)漏洞简介
shiro-主要是由shiro的rememberMe内容反序列化导致的命令执行漏洞,造成的原因是默认加密密钥是硬编码在shiro源码中,任何有权访问源代码的人都可以知道默认加密密钥。于是攻击者可以创建一个恶意对象,对其进行序列化、编码,然后将其作为cookie的rememberMe字段内容发送,Shiro 将对其解码和反序列化,导致服务器运行一些恶意代码。
特征:cookie中含有rememberMe字段
修复建议:
更新shiro到1.2.4以上的版本。
不使用默认的加密密钥,改为随机生成密钥。
漏洞原理
一、Shiro简介
Apache Shiro 是一个强大易用的 Java 安全框架,提供了认证、授权、加密和会话管理等功能,对于任何一个应用程序,Shiro 都可以提供全面的安全管理服务。
在ApacheShiro<=1.2.4版本中AES加密时采用的key是硬编码在代码中的,于是我们就可以构造Remembe Me的值,然后让其反序列化执行。
二、Shiro服务器识别身份加解密处理的流程
(1)加密
1.用户使用账号密码进行登录,并勾选"Remember Me"。
2、Shiro验证用户登录信息,通过后,查看用户是否勾选了”Remember Me“。
3、若勾选,则将用户身份序列化,并将序列化后的内容进行AES加密,再使用base编码。
4、最后将处理好的内容放于cookie中的rememberMe字段。
(2)解密
1、当服务端收到来自未经身份验证的用户的请求时,会在客户端发送请求中的cookie中获取rememberMe字段内容。
2、将获取到的rememberMe字段进行base解码,再使用AES解密。
3、最后将解密的内容进行反序列化,获取到用户身份。
三、Key
AES加密的密钥Key被硬编码在代码里
于是可得到Payload的构造流程:
恶意命令-->序列化-->AES加密-->base编码-->发送Cookie
Shiro-反序列化漏洞(CVE--)Shiro和Shiro的区别是什么
Shiro只需要通过碰撞key,爆破出来密钥,就可以进行利用 Shiro的ase加密的key一般情况下猜不到,是系统随机生成的,并且当存在有效的用户信息时才会进入下一阶段的流程所以我们需要使用登录后的rememberMe Cookie,才可以进行下一步攻击。
漏洞指纹
URL中含有Shiro字段
cookie中含有rememberMe字段
返回包中含有rememberMe
漏洞介绍
在Shiro中,Shiro通过AES--CBC对cookie中的rememberMe字段进行加密,所以用户可以通过PaddingOracle加密生成的攻击代码来构造恶意的rememberMe字段,进行反序列化攻击,需要执行的命令越复杂,生成payload需要的时间就越长。
漏洞原理
由于Apache Shiro cookie中通过 AES--CBC 模式加密的rememberMe字段存在问题,用户可通过Padding Oracle 加密生成的攻击代码来构造恶意的rememberMe字段,用有效的RememberMe cookie作为Padding Oracle Attack 的前缀,然后制作精心制作的RememberMe来执行Java反序列化攻击
攻击流程
登录网站,并从cookie中获取RememberMe。使用RememberMe cookie作为Padding Oracle Attack的前缀。加密syserial的序列化有效负载,以通过Padding Oracle Attack制作精心制作的RememberMe。请求带有新的RememberMe cookie的网站,以执行反序列化攻击。攻击者无需知道RememberMe加密的密码密钥。
加密方式:AES--CBC 属于AES加密算法的CBC模式,使用位数据块为一组进行加密解密,即字节明文,对应字节密文,,明文加密时,如果数据不够字节,则会将数据补全剩余字节
若最后剩余的明文不够字节,需要进行填充,通常采用PKCS7进行填充。比如最后缺3个字节,则填充3个字节的0x;若最后缺个字节,则填充个字节的0;
若明文正好是个字节的整数倍,最后要再加入一个字节0x的组再进行加密
Padding Oracle Attack原理 Padding Oracle攻击可以在没有密钥的情况下加密或解密密文
Shiro Padding Oracle Attack(Shiro填充Oracle攻击)是一种针对Apache Shiro身份验证框架的安全漏洞攻击。Apache Shiro是Java应用程序中广泛使用的身份验证和授权框架,用于管理用户会话、权限验证等功能。
Padding Oracle Attack(填充Oracle攻击)是一种针对加密算法使用填充的安全漏洞攻击。在加密通信中,填充用于将明文数据扩展到加密算法块大小的倍数。在此攻击中,攻击者利用填充的响应信息来推断出加密算法中的秘密信息。
Shiro Padding Oracle Attack利用了Shiro框架中的身份验证过程中的一个漏洞,该漏洞允许攻击者通过填充信息的不同响应时间来确定身份验证过程中的错误。通过不断尝试不同的填充方式,攻击者可以逐步推断出加密秘钥,并最终获取访问权限。
这种攻击利用了填充错误的身份验证响应来获取关于秘密信息的信息泄漏,然后根据这些信息进行进一步的攻击。为了防止Shiro Padding Oracle Attack,建议及时更新Apache Shiro版本,确保已修复该漏洞,并采取其他安全措施,如使用安全的加密算法和密钥管理策略。
漏洞复现:CVE--
环境:kali linux
靶场使用:vulhub/shiro/CVE--
访问地址:
抓包分析一下:
在返回包当中发现存在rememberMe=deleteMe 字样,可以大概确定有配置shiro,可以进行下一步。因为shiro本身功能就是一个身份验证管理,所以一般都在登录口可以看到。
UI一键利用工具
使用工具再进行检测确认:
输入目标的url地址,根据关键字进行爆破秘钥
接下来爆破利用链以及回显方式:
接下来可进行命令执行:
反弹shell:
可使用工具进行检测:
检测完成后可进行命令执行,反弹shell等操作:
使用工具进行简单的反弹:
设置监听端口
window:
linux:
还有使用ysoserial监听模块JRMP来进行反弹shell,具体可看参考文档,操作都差不多。
正是因为利用简单,所以危害比较大。
工具地址
漏洞复现:CVE--
环境:kali linux
docker进行搭建启动
访问:
利用过程和shiro差不多,shiro需要登录网站,并从cookie中获取RememberMe。
进行登录,使用正确的账号和密码:
先使用正确的账号密码登录后,在抓包获取合法 Cookie(勾选Remember Me)
如果认证失败则只能得到 rememberMe=deleteMe
将登录后获取的set-cookie值当中的rememberMe值,将值复制下来,放到工具当中
选择shiro,输入目标url,设置rememberMe值,点击下一步,等待即可
选择检测方式:
等待即可:
使用shiro综合工具:
输入url后:进行爆破秘钥,爆破利用链以及回显
命令执行:
工具地址