热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

文件包含漏洞_thinkCMF文件包含漏洞

制丨阿星整理丨阿星昨天小狸给大家复现了tomcatCVE-2020-1938漏洞,那今天咱们一起再来看看,最为经典的thinkCMF文件包含漏洞。首先我

制丨阿星

整理丨阿星

昨天小狸给大家复现了tomcat CVE-2020-1938漏洞,那今天咱们一起再来看看,最为经典的thinkCMF文件包含漏洞。

首先我们在去介绍这个漏洞之前,我们需要先了解一下这个漏洞thinkCMF。

thinkCMF它是一个开源的,支持swoole的开源内容管理框架,让web开发更快,节约时间,这个框架的话是基于thinkphp的二次开发框架,所以说在我们国内还是有大部分的网站使用到这样的一个框架的。

a35ce0b1d89328c34fdcf1a456bfe0d0.png

那么我们可以想象一下如果这个框架出现了一个漏洞,那它的影响范围是不是也同样很广呢?那接下来我们今天进一步的去探索一下thinkCMF的文件包含漏洞。

接下来我们就直接去复现一下这个漏洞。

1、构造a参数的fetch方法,实现任意文件写入,把php代码写入文件。

?a=fetch&templateFile=public/index&prefix="&content=file_put_contents('test.php','')

这个时候我先在本地搭建了这样的一个框架,如果说你们也想去复现一下这个漏洞,同样也是可以在本地搭建这个框架的。

8d9c6898670663d679db78b5b8b531c2.png

这边我们所搭建的版本是ThinkCMFX 2.2.3的版本,然后我们去构造一个这样的漏洞攻击代码。

当我们构造完成以后,回车就会发现网页是空白的,那这个时候我们可以想到test.php文件,我们去访问它一下。

当我们访问test.php文件的时候,就会通过刚才的代码将phpinof写入到test.php里面去。

7ac5932fdc7c203a2ebb97bdbcc8ad59.png

我们可以看到这个文件在当前根目录下方生成了这样的一个文件。

b8f65f8143ded61448af130e80d63c89.png

这个就是任意文件的一个写入。

那么说恶意的用户,把样的一个代码写成一些一句话代码,那么就能够将一句话的木马写入到对方的网站路径下面去,在通过webshell管理工具去进行连接。

我们再去看一下任意内容的包含漏洞。

通过构造a参数的display方法,在去选择模板文件内容为README.md,那么通过这样的一个payload我们就能够去把README.md的这样一个文件给包含出来。

?a=display&templateFile=README.md

然后我们去到浏览器界面输入README.md回车,就可以发现我们能够成功的包含出这样的一个代码。

97f50238dee2e43a93c283c93fed0dd8.png

为了给大家演示得更加明显一点,我们确定能够包含,那么小狸这里手动在网站的根路径下面去创建了一个test.txt文件。

8dbb392ec8b09a56dd8c5e82c7ba3cde.png

那这个文件我们去看一下它的内容。

6ce30654832eaac83d8f3acc2c2c3d42.png

我们通过这样一个文件包含漏洞去包含了一个.txt的文件,那么我们也是能够成功的去解析这里面的phpinof的代码的。那么这个也是一个包含。

那这个漏洞怎么去修复呢?

漏洞修复

将HomebaseController.class.php和AdminbaseController.class.php类中display和fetch函数修饰符改为protected。

这个的原因就是因为它的这两个方法是公用的,我们需要把它改为私用的,这样才可以不被前端的用户去任意的利用。

那么今天小狸就为大家复现到这里,我们今天讲解了thinkCMF文件包含漏洞的一个复现和它的修复方式,如果接下来有什么不懂的可以来问一下我哦,小狸时时刻刻都在为大家服务。

ebd982c323d66e27eb62a9106fdcf7b6.png




推荐阅读
  • 分享2款网站程序源码/主题等后门检测工具
    本文介绍了2款用于检测网站程序源码和主题中是否存在后门的工具,分别是WebShellkiller和D盾_Web查杀。WebShellkiller是一款支持webshell和暗链扫描的工具,采用多重检测引擎和智能检测模型,能够更精准地检测出已知和未知的后门文件。D盾_Web查杀则使用自行研发的代码分析引擎,能够分析更为隐藏的WebShell后门行为。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • 本文介绍了ASP.NET Core MVC的入门及基础使用教程,根据微软的文档学习,建议阅读英文文档以便更好理解,微软的工具化使用方便且开发速度快。通过vs2017新建项目,可以创建一个基础的ASP.NET网站,也可以实现动态网站开发。ASP.NET MVC框架及其工具简化了开发过程,包括建立业务的数据模型和控制器等步骤。 ... [详细]
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • SpringBoot简单日志配置
     在生产环境中,只打印error级别的错误,在测试环境中,可以调成debugapplication.properties文件##默认使用logbacklogging.level.r ... [详细]
  • 本文讨论了在ASP中创建RazorFunctions.cshtml文件时出现的问题,即ASP.global_asax不存在于命名空间ASP中。文章提供了解决该问题的代码示例,并详细解释了代码中涉及的关键概念,如HttpContext、Request和RouteData等。通过阅读本文,读者可以了解如何解决该问题并理解相关的ASP概念。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • 使用这个技巧要达到的目标:一般来说,模型和控制器你都不会有相同的类名字。让我先创建一个取名为post的model。classPostextendsModel{}现在 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • OWASP(安全防护、漏洞验证工具)开放式Web应用程序安全项目(OWASP,OpenWebApplicationSecurityProject)是一个组织 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
author-avatar
采蘑菇的灵的fans
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有