引言

今天与大家分享的文章是关于审计思路的知识点,用到的是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没做任何过滤。

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

审计篇丨PHPcms9.6.3后台XSS审计的更多相关文章

  1. 帝国CMS(EmpireCMS) v7.5 后台XSS漏洞分析

    帝国CMS(EmpireCMS) v7.5 后台XSS漏洞分析 一.漏洞描述 该漏洞是由于代码只使用htmlspecialchars进行实体编码过滤,而且参数用的是ENT_QUOTES(编码双引号和单 ...

  2. 蝉知CMS5.6反射型XSS审计复现

    0x00 源起 最近在深入学习反射XSS时遇到蝉知CMS5.6反射型XSS这个案列,乍一看网上的漏洞介绍少之又少,也没有详细的审计复现流程.虽然是17年的漏洞了,不巧本人正是一个喜欢钻研的人.这个CM ...

  3. 实战篇丨聊一聊SSRF漏洞的挖掘思路与技巧

    在刚结束的互联网安全城市巡回赛中,R师傅凭借丰富的挖洞经验,实现了8家SRC大满贯,获得了第一名的好成绩!R师傅结合自身经验并期许新手小白要多了解各种安全漏洞,并应用到实际操作中,从而丰富自己的挖洞经 ...

  4. iOS开发——高级篇——Parse 教程:网络后台基础

    本教程已针对Swift, iOS 8.3, Xcode 6.3及最新的Parse SDK(1.7.1版本)更新. 网络后台支持可以为你的App添加许多崭新的功能:不论是数据同步,社交分享,还是云端存储 ...

  5. 技能篇丨FineCMS 5.0.10 多个漏洞详细分析

    今天是一篇关于技能提升的文章,文章中的CMS是FineCMS,版本是5.0.10版本的几个漏洞分析,主要内容是介绍漏洞修补前和修补后的分析过程,帮助大家快速掌握该技能. 注:篇幅较长,阅读用时约7分钟 ...

  6. vue-element-admin实战 | 第二篇: 最小改动接入后台实现根据权限动态加载菜单

    一. 前言 本篇基于 有来商城 youlai-mall微服务项目,通过对vue-element-admin的权限菜单模块理解个性定制其后台接口,实现对vue-element-admin工程几乎不做改动 ...

  7. 用SVG绕过浏览器XSS审计

    [Translated From]:http://insert-script.blogspot.com/2014/02/svg-fun-time-firefox-svg-vector.html === ...

  8. [代码审计]青云客Cms前台有条件注入至getshell,后台xss至getshell、至弹你一脸计算器

    之前写了一篇关于青云客cms的文章,发在了t00ls,就不copy过来了. 给个链接,好记录一下. https://www.t00ls.net/thread-43093-1-1.html

  9. 新手篇丨Python任意网段Web端口信息探测工具

    你学习Python的目的是什么?是想写爬虫爬取数据(数据.图片等内容),还是想自写自动化的小工具,又或是作为一个新手小白单纯的欣赏这门语言呢? 今天i春秋分享的是一篇关于多线程工具的文章,工具使用效率 ...

随机推荐

  1. 基于Microsoft Graph打造自己的Timeline应用

    原文链接:https://github.com/chenxizhang/office365dev/blob/e9b5a59cb827841d36692cc4ec52c11d43062e04/docs/ ...

  2. RNN(Recurrent Neural Network)的几个难点

    1. vanish of gradient RNN的error相对于某个时间点t的梯度为: \(\frac{\partial E_t}{\partial W}=\sum_{k=1}^{t}\frac{ ...

  3. 升讯威微信营销系统开发实践:(4)源代码结构说明 与 安装部署说明( 完整开源于 Github)

    GitHub:https://github.com/iccb1013/Sheng.WeixinConstruction因为个人精力时间有限,不会再对现有代码进行更新维护,不过微信接口比较稳定,经测试至 ...

  4. nginx常用配置系列-反向代理

    接上篇,反向代理的原理与用途很多地方有讲,用文字说再多可能也表达不清楚,下面贴一张拓扑图,介绍下什么叫反向代理 以上图有两种情景 1. 访问者的客户端是 local ,要访问baidu的服务器,bai ...

  5. PAT1017:Queueing at Bank

    1017. Queueing at Bank (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Supp ...

  6. RedHat Linux下iptables防火墙设置

    一般情况下iptables已经包含在Linux发行版中.运行 # iptables --version 来查看系统是否安装iptables 启动iptables:# service iptables ...

  7. c++ 输出精度

    1  保留小数点后**位 cout.flags(ios::fixed); cout.precision(4); //设置输出精度,

  8. JavaScript-点击任意点显示隐藏

    //开/关 var only = document.getElementById('only'); var centerBox = document.getElementById('centerBox ...

  9. Springboot2.0(Spring5.0)中个性化配置项目上的细节差异

    在一般的项目中,如果Spring Boot提供的Sping MVC不符合要求,则可以通过一个配置类(@Configuration)加上@EnableWebMvc注解来实现完全自己控制的MVC配置.但此 ...

  10. mybatis通用mapper的使用

    项目中持久层封装了两套,一个hibernate,一个是mybatis.hibernate中封装了一些通用的方法,但是mybatis中没有,基于这个需求开始使用mybatis的通用mapper.     ...