漏洞概要
关注数(24)
关注此漏洞
漏洞标题:MetInfo5.3最新版CSRF getshell
提交时间:2015-08-04 17:46
修复时间:2015-11-04 13:32
公开时间:2015-11-04 13:32
漏洞类型:CSRF
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2015-08-04: 细节已通知厂商并且等待厂商处理中
2015-08-06: 厂商已经确认,细节仅向厂商公开
2015-08-09: 细节向第三方安全合作伙伴开放
2015-09-30: 细节向核心白帽子及相关领域专家公开
2015-10-10: 细节向普通白帽子公开
2015-10-20: 细节向实习白帽子公开
2015-11-04: 细节向公众公开
简要描述:
MetInfo5.3最新版CSRF getshell
详细说明:
后台文件./admin/system/database/index.php中,变量$action,$tbl,$tables,$fileid用户可控。
问题代码:
下面是去除多余代码后的文件。
分析:
1. 在第129行`cache_write('bakup_tables.php', $tables);`将$tables直接写入bakup_tables.php。
2. 但在第120行`$tables=tableprearray($tablepre);`,为了跳过120行,给$tbl赋值0。
3. 由于我们自定义了$tables,第144行if(trim($sqldump))为false,将会执行165行的`cache_delete('bakup_tables.php');`。
4. 第120行生成,165删除,中间几行执行时间让我们有机会去执行bakup_tables.php。
5. 如果自己测试,我们可以多线程访问bakup_tables.php来触发恶意代码。
6. 但在实际情况中,CSRF触发时间不确定(不确定管理什么时候访问),我们需则要管理员访问`./admin/system/database/index.php`的同时,帮我们执行`./admin/databack/bakup_tables.php`。
POC:
成功可访问http://www.xxx.com/admin/databack/z.php?1=phpinfo();
漏洞证明:
1. 本地搭建测试环境:http://localhost/fuzz/MetInfo5.3/并登录后台。
2. 目前./admin/databack目录下的文件。
3. 执行POC(http://localhost/fuzz/p.html),模拟管理员访问我们的网页。
调式工具中可见有bakup_tables.php是访问成功的
4. 现在./admin/databack目录下的文件,出现了我们的后门z.php
5. 访问z.php
修复方案:
版权声明:转载请注明来源 zhk@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:15
确认时间:2015-08-06 13:31
厂商回复:
是系统BUG,后续版本修复。
最新状态:
暂无