小菜只能找找没人用的cms练练手了

cnvd上有个 CoverCMS V1.16存在多个漏洞

漏洞描述 :CoverCMS V1.16存在重装、信息泄露、暴力破解、存储型跨站脚本和反射型跨站脚本漏洞。攻击者可利用漏洞获取敏感信息,如数据库账号密码、数据库名泄露、后台默认弱口令;在用户投稿文章页面中插入恶意js代码,可获得用户cookie等信息,导致用户被劫持;在前台搜索框处构造XSS语句,可进行弹框操作,获得用户cookie等信息。

简单安装完后看看代码吧。

重装漏洞

安装完后会在/dynamic/下生产install.lock

install.php

$lockfile = './dynamic/install.lock';
$step = $_POST['step'] ? $_POST['step'] : ($_GET['step'] ? $_GET['step'] : 1);
.../省略
if(!isset($dbhost) || !isset($ckpre)){
$ierror = lang('base.inc.php noexist , please upload .');
}elseif(!ini_get('short_open_tag')){
$ierror = lang('shorttaginvalid');
}elseif(file_exists($lockfile)){
$ierror = lang('lockexist');
}elseif(!class_exists('cls_mysql')){
$ierror = lang('include/mysql.cls.php noexist , please upload .');
}

安装时会进行判断是否存在install.lock

如果存在会进行提示,但是没有exit()

我们再次访问http://localhost/covercms/install.php

发现开始安装的按钮无法点击。

if($step == 1){
ins_header(1);
echo "<div class=\"licence\">".lang('ins_introduce')."</div>";
ins_mider();
hidden_str('step',2);
button_str('submit',lang('start install'),$ierror ? 1 : 0);
ins_footer(1);
$ierror && ins_message($ierror);
}elseif($step == '2'){
ins_header(1);
echo "<div class=\"licence\">".lang('ins_license')."</div>";
ins_mider();
hidden_str('step',3);
button_str('submit',lang('agree'),$ierror ? 1 : 0);
ins_footer(1);
$ierror && ins_message($ierror);
.../省略

button_str函数会根据$ierror在html标签添加 disabled=""

F12删掉 或直接http://localhost/covercms/install.php?step=2

就可以跳步骤了

虽然能看到 数据库账号密码、数据库名泄露、后台默认弱口令

但还是重装不了啊...

前台搜索xss

search.php

if($searchword){
$filterstr .= ($filterstr ? '&' : '').'searchword='.rawurlencode(stripslashes($searchword));
}

对搜索词根本没过滤

闭合前后标签即可

"> <script>alert(/xss/)</script> <"

在用户投稿文章页面中插入恶意js代码

没找到 先留着

任意文件包含漏洞 (多处)

搜索带include和$的 可能存在漏洞

带后缀的就不看了

answers.inc.php

if(!submitcheck('barcsedit')){ //满足barcsedit为空 不设置即可
if(empty($u_tplname)){
//$u_tplname 可以变量覆盖(general.inc.php中伪全局 在admina中引用)
echo form_str($actionid.'arcsedit',"?entry=answers&action=answersedit&page=$page$param_suffix");
//搜索区块
tabheader_e();
....//省略
}else include(M_ROOT.$u_tplname);
....//省略

.inc.php的文件会在admina.php中引用

include_once M_ROOT.'./admina/'.$entry.'.inc.php';

构造url http://localhost/covercms/admina.php?entry=answers&action=answersedit&u_tplname=robots.txt

其他include $u_tplname的与之类似

代码审计:covercms 1.6的更多相关文章

  1. [代码审计]covercms 后台getshell

    0x00 环境介绍 CMS名称: covercms 运行环境: php 5.6.27-nts + apache + mysql 系统版本: 1.16 漏洞等级:高危 漏洞简介: 后台awnotas.i ...

  2. PHP代码审计中你不知道的牛叉技术点

    一.前言 php代码审计如字面意思,对php源代码进行审查,理解代码的逻辑,发现其中的安全漏洞.如审计代码中是否存在sql注入,则检查代码中sql语句到数据库的传输 和调用过程. 入门php代码审计实 ...

  3. 技术专题-PHP代码审计

    作者:坏蛋链接:https://zhuanlan.zhihu.com/p/24472674来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 一.前言 php代码审计如字面 ...

  4. 关于PHP代码审计和漏洞挖掘的一点思考

    这里对PHP的代码审计和漏洞挖掘的思路做一下总结,都是个人观点,有不对的地方请多多指出. PHP的漏洞有很大一部分是来自于程序员本身的经验不足,当然和服务器的配置有关,但那属于系统安全范畴了,我不太懂 ...

  5. Kindeditor 代码审计

    <?php /** * KindEditor PHP * * 本PHP程序是演示程序,建议不要直接在实际项目中使用. * 如果您确定直接使用本程序,使用之前请仔细确认相关安全设置. * */ r ...

  6. 一个CMS案例实战讲解PHP代码审计入门

    前言 php代码审计介绍:顾名思义就是检查php源代码中的缺点和错误信息,分析并找到这些问题引发的安全漏洞. 1.环境搭建: 工欲善其事必先利其器,先介绍代码审计必要的环境搭建 审计环境 window ...

  7. php代码审计基础笔记

    出处: 九零SEC连接:http://forum.90sec.org/forum.php?mod=viewthread&tid=8059 --------------------------- ...

  8. 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 3.全局防护Bypass之Base64Decode

    0x01 背景 现在的WEB程序基本都有对SQL注入的全局过滤,像PHP开启了GPC或者在全局文件common.php上使用addslashes()函数对接收的参数进行过滤,尤其是单引号.同上一篇,我 ...

  9. 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 2.全局防护Bypass之UrlDecode

    0x01 背景 现在的WEB程序基本都有对SQL注入的全局过滤,像PHP开启了GPC或者在全局文件common.php上使用addslashes()函数对接收的参数进行过滤,尤其是单引号.遇到这种情况 ...

随机推荐

  1. 更换python版本后出现 No module named "apt_pkg"

    本文链接:https://blog.csdn.net/jaket5219999/article/details/78464310 $ sudo apt-get remove --purge pytho ...

  2. Idea2019.2破解

    1.在 hosts 文件里加入如下的配置:C:\WINDOWS\system32\drivers\etc\hosts 0.0.0.0 https://account.jetbrains.com:443 ...

  3. Python的开源人脸识别库:离线识别率高达99.38%(附源码)

    Python的开源人脸识别库:离线识别率高达99.38%(附源码) 转https://cloud.tencent.com/developer/article/1359073   11.11 智慧上云 ...

  4. Python脚本实现Linux/MAC中Xmind Zen去水印等其他功能的过程(V0.1)

    说明本脚本仅作为学习使用,请勿用于任何商业用途.本文为原创,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明.功能简介 去除软件右上角激活按钮 去除导出时激活弹窗 去除导出PDF文 ...

  5. 005-guava 集合-集合工具类-java.util.Collections中未包含的集合工具[Maps,Lists,Sets],Iterables、Multisets、Multimaps、Tables

    一.概述 工具类与特定集合接口的对应关系归纳如下: 集合接口 属于JDK还是Guava 对应的Guava工具类 Collection JDK Collections2:不要和java.util.Col ...

  6. IFC构件位置数据与revit模型中对应构件位置数据对比

    IFC构件位置数据与revit模型中对应构件位置数据对比

  7. Spring cloud微服务安全实战-4-5搭建OAuth2认证服务器

    现在可以访问我们的认证服务器,应用我们已经配置好了. 下面配置让用户可以访问我的认证服务器.再来重写一个方法. EndpointConfigure端点的配置. authenticationManage ...

  8. python web开发Django连接mysql

    需要MYSQL-python,一般情况下直接pip install window系统会报错,所以要去 https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml  ...

  9. Fastjson 序列化与反序列化

    JSON这个类是fastjson API的入口,主要的功能都通过这个类提供. 序列化API // 将Java对象序列化为JSON字符串,支持各种各种Java基本类型和JavaBean public s ...

  10. python通过socket实现多个连接并实现ssh功能详解

    python通过socket实现多个连接并实现ssh功能详解 一.前言 上一篇中我们已经知道了客户端通过socket来连接服务端,进行了一次数据传输,那如何实现客户端多次发生数据?而服务端接受多个客户 ...