您的位置 首页 > 数码极客

审计篇丨PHPcms9.6.3后台XSS审计

引言

今天与大家分享的文章是关于审计思路的知识点,用到的是PHPcms的最新版本,因为常规扫描无法进入后台,所以我们修改了代码让扫描器爬虫爬到后台。



漏洞复现环境

安装PHPstudy

安装PHPcm版本20170515

安装PHPCMS程序版本:PHPcms V9.6.3 Release 20170515

操作系统:WINNT

服务器软件:Apache (Win32) OpenSSL PHP

MySQL 版本:5.5.53

上传文件:2M

安装上PHPcm,删除管理后台的验证码的代码,主要涉及以下代码:

第一步

找到文件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.

删除以下代码(第38行)

<label> <?php echo L('security_code') ?>: </label> <inputname="code" type="text" class="ipt ipt_reg"onfocus="document.getElementByIdx_x('yzm').;block'"/>

删除以下代码(第39行)

<div id="yzm" class="yzm"> <?php echo form::checkcode('code_img')?><br /> <a href="javascri('code_img').src='<?php echo SITE_PROTOCOL.SITE_URL.WEB_PATH;?>a;m=admin&c=index&a=checkcode&time='+Ma();void(0);"> <?php echo L('click_change_validate')?></a> </div>


使用avws登陆扫描让爬虫进后台



用户名为PHPcms PHPcms


跑了一段时间,发现有结果了。

pc_hash如果失效,就替换掉。

Poc

http://localho;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没做任何过滤。

以上是今天要分享的全部内容,大家学会了吗?

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“php的cms,php的CMS功能”边界阅读