又看到了cnvd中的一个有趣的洞!
zzzphp
zzzphp是一款php语言开发的免费建站系统,以简单易上手的标签、安全的系统内核、良好的用户体验为特点,是站长建站的最佳选择。
晚上8点,做完作业发现cnvd报了一个命令执行,本着两天不看代码看不懂的精神赶紧再来看下审计。
产生原因
zzzphp的模板是通过自写函数来进行解析的,过滤参数不严谨导致可以执行任意php代码。
漏洞分析
程序入口index.php
引入require 'inc/zzz_client.php';
E:\code\php\zzzphp\inc\zzz_client.php:56
require 'zzz_template.php';
if (conf('webmode')==0) error(conf('closeinfo'));
$location=getlocation();
引入模板解析类并通过getlocation()
使url和模板关联起来。
91行:当访问http://127.0.0.1/search/
时使用search模板
case 'search':
$tplfile= TPL_DIR . 'search.html';
157行
$parser = new ParserTemplate();
$zcontent = $parser->parserCommom($zcontent); // 解析模板
实例化解析模板类,调用parserCommom()
方法,跟进
inc/zzz_template.php
```
点击收藏 | 3
关注 | 3