又看到了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
  • 动动手指,沙发就是你的了!
登录 后跟帖