关键词不能为空

自动任务处存在任意代码执行

作者:admin
来源:http://www.sdzsb8.cn/sbwd/25763.html
日期:2022-07-18 16:55
评论:0
阅读 124

自动任务处存在任意代码执行?设置自动执行任务?前言 ImpressCMS 是一个开源内容管理系统,旨在轻松安全地管理多语言网站。点击Create new task,红框中自动执行就是自动执行的任务的源代码。现在我们不知道这个框中是否可以输入任意代码?先随便创建一个任务。生成处理程序对象,设置用户输入的值,传递给处理程序进行处理。至此,Source Code窗口的处理过程基本分析完毕。跟进exec(),可以看到,没有对要执行的代码做任何过滤和拦截。

自动任务处存在任意代码执行

ImpressCMS是一个开源的内容管理系统,旨在轻松安全地管理多语言网站。

自动任务中存在任意代码执行,导致RCE。

功能点分析

安装cms后,登录管理员帐户密码。大概是这样的。

转到管理菜单-自动任务

点击新建任务,红框中的自动执行就是自动执行任务的源代码。

现在我们不知道这个框里能不能输入任何代码?即使可以输入任何代码,还有后续的过滤吗?

我们从源头层面来分析一下。

源代码分析

我想到的第一件事就是找到这个功能点对应的源代码,一步一步跟着做。但是这里一看,流程有点多。所以我决定采用关键词法。

先创建一个任务。

通过捕获包,我们找到了源代码窗口对应的关键字,关键字sat_code,并响应了一个跳转。响应正文为空。

在下面搜索这个关键字,并跟踪它的处理过程。大家可以看到,主要集中在这三档。

让我们来看看调用这个关键字最少的文件:update-112-to-122.php。是创建数据库表字段的位置。同时我也通读了这个文件,没有变量,没有输入,直接忽略。不一定代表这个文档就一定可以,只是这里不考虑。

让我们看看第二个相关的文件:modulesadmin.php。

第一个地方:将自动任务模块的任务添加到系统自动任务列表中。生成handler对象,设置用户输入的值,并将其传递给处理程序进行处理。

继续跟进以下处理程序。

处理程序位置:/modules/system/admin/auto task/class/auto task . PHP

处理程序:SystemAutotasksHandler

最后,转到文件/modules/system/admin/auto task/class/auto task . PHP

第一名:

第二名:

至此,源代码窗口的处理基本分析完毕。可以看到,中间没有过滤。可以直接执行任意代码。

我的方法和平时的流程调试不一样。这比一步一步调试代码的过程要快得多。

当然也可以补充工艺调试。如前所述,用户创建的任务被传递给系统。

在核心启动过程结束时触发的函数,断点位于以下位置:

然后创建一个新的自动任务。

来到断点

跟进execTasks()

跟进exec(),可以看到没有对要执行的代码进行过滤和拦截。

测试和验证

创建自动任务

执行

这篇文章最初由浪客发表。

转载请参考转载声明,注明出处:https://www.anquanke.com/post/id/254633

安全客——贴心的安全新媒体


本文来自网络,不代表「专升本要什么条件_专升本要几年_成人高考专升本_山东专升本信息网」立场,转载请注明出处:http://www.sdzsb8.cn/sbwd/25763.html

自动任务处存在任意代码执行的相关文章

网站公告