[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 EXISTS
iwebshop_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存在命令执行漏洞的主要内容,如果未能解决你的问题,请参考以下文章