Jeecgboot-sql布尔盲注

发布时间 2023-09-16 17:10:19作者: uein

最近大四在找实习工作,实在没什么心思学习,准备入职还被hr阴阳怪气,难受死我了

昨天看到微步发的jeecgboot的sql注入

其实主要是绕过sql黑名单检查,不止/show接口存在sql注入

漏洞分析

上一篇模板注入那里有提到sql注入黑名单检查

jimureport-spring-boot-starter-1.5.8.jar!\org\jeecg\modules\jmreport\common\b\i.class

    public static void a(String var0) {
        String[] var1 = " exec |peformance_schema|information_schema|extractvalue|updatexml|geohash|gtid_subset|gtid_subtract| insert | alter | delete | grant | update | drop | chr | mid | master | truncate | char | declare |user()|".split("\\|");
        if (var0 != null && !"".equals(var0)) {
            b(var0);
            var0 = var0.toLowerCase();
            c(var0);
            var0 = var0.replaceAll("/\\*.*\\*/", "");

            for(int var2 = 0; var2 < var1.length; ++var2) {
                if (var0.indexOf(var1[var2]) > -1 || var0.startsWith(var1[var2].trim())) {
                    a.error("请注意,存在SQL注入关键词---> {}", var1[var2]);
                    a.error("请注意,值可能存在SQL注入风险!---> {}", var0);
                    throw new JimuReportException(1001, "请注意,值可能存在SQL注入风险!--->" + var0);
                }
            }

            if (Pattern.matches("show\\s+tables", var0) || Pattern.matches("user[\\s]*\\([\\s]*\\)", var0)) {
                throw new RuntimeException("请注意,值可能存在SQL注入风险!--->" + var0);
            }
        }
    }

这个漏洞就是黑名单检查不全面,用布尔盲注绕过黑名单

上面提到的show接口

其他相关接口同样存在问题,如CVE-2023-1454的qurestSql