ma4ter

Index | Photo | About | Friends | Archives

adobe coldfusion CVE-2023-29300补丁绕过

前言

大学生闲来无事在家于是打开电脑看了看coldfusion代码

正片

根据之前官方的补丁代码:

private void validateWddxFilter(AttributeList atts) throws InvalidWddxPacketException {
    String attributeType = atts.getValue("type");
    if (attributeType.endsWith(";")) {
        attributeType = attributeType.replace(";", "");
    }
    if (attributeType.startsWith("L")) {
        String attributeTypeCopy = attributeType;
        validateBlockedClass(attributeTypeCopy.replaceFirst("L", ""));
    }
    validateBlockedClass(attributeType);
}

private void validateBlockedClass(String attributeType) throws InvalidWddxPacketException {
    if (attributeType != null && !attributeType.toLowerCase().startsWith("coldfusion") && !attributeType.equalsIgnoreCase(StructTypes.ORDERED.getValue()) && !attributeType.equalsIgnoreCase(StructTypes.CASESENSITIVE.getValue()) && !attributeType.equalsIgnoreCase(StructTypes.ORDEREDCASESENSITIVE.getValue()) && WddxFilter.invoke(attributeType)) {
        throw new InvalidWddxPacketException();
    }
}

可以看到如果反序列化的类名以coldfusion开头的话还是可以正常反序列化,那么我们就去找类名以coldfusion开头的类,且有一个可以造成rce/jdbc/jndi的setter方法。
包名为coldfusion开头的类基本都在/cfusion/lib/cfusion.jar的jar里面
adobe coldfusion CVE-2023-29300补丁绕过
这里根据经验去找了找打jdbc反序列化的点,找到了coldfusion.sql.DatabaseMetaDataUtil#setSqlImpl(SqlImpl)方法,跟进getCatalogs方法
adobe coldfusion CVE-2023-29300补丁绕过
adobe coldfusion CVE-2023-29300补丁绕过
adobe coldfusion CVE-2023-29300补丁绕过
adobe coldfusion CVE-2023-29300补丁绕过
继续跟进,发现ConnectionSource是一个抽象类,有三个继承的子类
adobe coldfusion CVE-2023-29300补丁绕过
直接进入jdbc子类
adobe coldfusion CVE-2023-29300补丁绕过
使用安装包而不是zip安装的coldfusion自带derby的数据库驱动,那么打derby的反序列化就可以,coldfusion2023 jdk版本是17,目前还没找到办法rce,2021 jdk版本是11 所以直接打cb链templateimpl执行字节码就行
poc就不放了,打derby反序列化参考https://github.com/su18/JDBC-Attack/tree/main/derby-attack 放一个图结束。
adobe coldfusion CVE-2023-29300补丁绕过
没想到在官网直接下载的coldfusion2023版本没有打上补丁,打上补丁之后发现官网已经发布了补丁并且有cve了
https://helpx.adobe.com/security/products/coldfusion/apsb23-52.html
https://helpx.adobe.com/coldfusion/kb/coldfusion-2023-update-6.html
adobe coldfusion CVE-2023-29300补丁绕过