CVE-2013-0333 Ruby on Rails Yaml Exploit Question

0

Tengo una pregunta sobre el exploit de Ruby Rails JSON. Entiendo cómo funciona, pero no entiendo cómo se logra la ejecución del código.

Entiendo YAML y cómo construye varios objetos serializados, pero una ruta de explotación común implica el uso de la clase NamedRouteCollection para ejecutar el código. Este artículo lo explica

enlace

¿Por qué funciona este código

unsafe_object = ActionDispatch::Routing::RouteSet::NamedRouteCollection.new
struct        = OpenStruct.new(defaults: {})
unsafe_object["foo; eval(puts '=== hello there'.inspect);" ] = struct

Eché un vistazo a la definición real de clase del repositorio github de rails.

enlace

La línea 105 es el método de adición que parece ser lo que [] = tiene alias como. Así que parece que en algún lugar de este método, la entrada se ejecuta. Simplemente no lo veo.

Realmente apreciaría cualquier idea de cómo el exploit logra el RCE.

    
pregunta CBaker 14.10.2018 - 18:25
fuente

0 respuestas

Lea otras preguntas en las etiquetas