potrebbe istanziazione di oggetti dinamici + cast arbitrario in java potrebbe portare a un RCE?

2

Ero pentesting per un programma di bug bug, non posso dire di più perché è stato corretto ma non rivelato. Mi chiedo comunque, il reporter ha ottenuto un RCE?

Un webservice ha aspettato l'XML, prima ho provato a XXE, ho combinato con la logica del business, niente di succoso lì. Poi un attributo attirò la mia attenzione, inutilizzato in qualsiasi cosa fosse riuscito a catturare, ho trovato in JavaScript.

<blaa fieldtype="java.lang.ProcessBuilder"/>

porta a quell'errore (blaa è inizialmente una stringa)

could not convert java.lang.ProcessBuilder into java.lang.string

Ho provato

<blaa fieldtype="java.lang.ProcessBuilder"><command>bla</command></blaa>

stesso errore. Tuttavia:

<blaa fieldtype="java.lang.ProcessBuilder"><foo><foo></blaa>

ha dato

unknown field java.lang.ProcessBuilder.foo

Quindi, a questo punto, sono in grado di creare un'istanza di qualsiasi oggetto arbitrario, impostare qualsiasi proprietà pubblica e ordinare il cast da qualsiasi cosa a qualcosa, mi sono confuso per ore e non ho trovato alcun modo di chiamare un metodo. C'è un RCE qui? O hanno corretto da un rapporto che diceva "L'input dell'utente non dovrebbe essere usato dinamicamente nel codice"?

    
posta user3512344 07.01.2017 - 14:35
fonte

1 risposta

1

La risposta dipenderà molto da cosa si trova nel classpath. Tuttavia, non riesco a vedere nel tuo snippet XML in cui passeresti il comando da eseguire nell'esempio.

Quindi, senza saperne di più sull'ambiente, è impossibile rispondere alla tua domanda. Tuttavia, sarebbe utile per te controllare alcuni gadget di deserializzazione java .

Se non hai sentito parlare della vulnerabilità di java deserialiaztion ti consiglio questo e this .

    
risposta data 07.01.2017 - 17:07
fonte

Leggi altre domande sui tag