[PHP代码审计]iWebShop开源商城系统V5.9.21010存在命令执行漏洞

Posted Y4tacker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[PHP代码审计]iWebShop开源商城系统V5.9.21010存在命令执行漏洞相关的知识,希望对你有一定的参考价值。

@Y4tacker

写在前面

本漏洞是后台权限,配合sql注入导致的文件删除,之后导致可重装从而实现RCE,搞了一天还是很累的

iWebShop5.9存在命令执行漏洞

目录结构

在这里插入图片描述

漏洞演示及利用

该漏洞的利用比较巧妙,首先我们登录后台,点击添加商户功能

在这里插入图片描述

这里添加一个y4tacker/y4tacker,记得开通功能,这里先备用

接下来我们访问,用刚刚的商户账号登录即可

http://url/index.php?controller=systemseller&action=index

这里我们添加一个商品

在这里插入图片描述

接下来我们去管理员后台点击数据库备份功能

在这里插入图片描述

这里只需要选中三个表即可

iwebshop_goods和iwebshop_goods_photo以及iwebshop_goods_photo_relation,为了方便截图我删除了点页内元素,实际上这两个表在下方

在这里插入图片描述

接下来下载这个备份

在这里插入图片描述

修改里面内容,这个要保证对应关系

在这里插入图片描述

在数据库里面就是这样的映射对应关系,这一步千万不要错

在这里插入图片描述

接下来我们点击本地导入上传功能

在这里插入图片描述

我们来跟踪这个过程,在controllers/tools.php下面的174行localUpload函数

在这里插入图片描述

跟进parseSQL函数,由于首行sql文件是DROP TABLE IF EXISTSiwebshop_goods_photo;他进入default分支

在这里插入图片描述

//执行SQL
	function query($sql)
	{
		//创建数据库对象
		$dbObj = IDBFactory::getDB();
		$dbObj->query($sql);
	}

能看见这个文件导入执行sql功能,并没有对语句进行过滤,也因此导致了sql注入产生

做完上述准备工作以后,我们再回到商户中心,此时这个文件还存在

在这里插入图片描述

我们点击删除功能

在这里插入图片描述

再去文件目录看已经被删除了

在这里插入图片描述

跟踪这个过程在controllers/seller.php下面根据传入id

在这里插入图片描述

跟进del函数在classes/goods_class.php下481行左右,看图很清楚的一个调用链

在这里插入图片描述

接下来执行unlink功能成功删除任意文件

在这里插入图片描述

删除文件以后我们便可以访问install/index.php

在这里插入图片描述

接下来在install/include/function.php下的install_sql函数,可以看见下面有一个写入配置文件的功能,后缀是php懂得都懂

在这里插入图片描述

跟踪create_config

在这里插入图片描述

其中小细节不多说,自己看看,最后传参数,下面最好用root数据库,小细节

在这里插入图片描述

访问

http://flag.flag/config/config.php

在这里插入图片描述

查看写入的文件

在这里插入图片描述

分析完毕

以上是关于[PHP代码审计]iWebShop开源商城系统V5.9.21010存在命令执行漏洞的主要内容,如果未能解决你的问题,请参考以下文章

短信插件 IWebShop商城系统,短信验证码开发

[代码审计]phpshe开源商城后台两处任意文件删除至getshell

PHP 代码审计之死磕 SQL 注入

Linux环境部署iwebshop项目

魔众商城系统 v5.5.0 新版支付宝对接 轮播管理升级

魔众商城系统 v5.4.0 菜单快捷搜索,会员隐私协议,若干问题修复