Cómo explotar parámetros JSON que pueden escaparse

1

Tengo una página HTML con este código:

<div>
<div id="login-container"
     class="login-container">
    <login-page params="{&quot;redacted&quot;:&quot;redacted&quot;}"></login-page>

</div>

Entonces, donde dice que se ha redactado, hay muchos parámetros, y uno de ellos es modificable mediante un parámetro de URL, lo que significa que puedo cambiar este parámetro en la URL a abc y pondrá abc en esos corchetes JSON. Al usar esto, descubrí que no filtra correctamente las llaves, lo que significa que en este parámetro puedo poner llaves que se analizan como un área JSON nueva entre las llaves que ya están allí.

Es difícil de explicar pero, por ejemplo, puedo hacer que el parámetro de URL "{test}", y los parámetros anteriores se vean como los siguientes (asumiendo que una de las áreas redactadas fue el resultado del parámetro de URL:

{&quot;redacted&quot;:&quot;{test}&quot;}

Parece que ser capaz de poner mis propios soportes JSON aquí debería permitirme ejecutar mi propio código JSON, pero ¿es esto posible? ¿Existe algún riesgo asociado con el hecho de que no filtren los frenos?

Gracias

    
pregunta Jack 08.07.2018 - 00:59
fuente

1 respuesta

0

Voy a ignorar todo, cept:

  

y hay algún riesgo asociado con el hecho de que no filtran los frenos en absoluto

En una palabra No.

Lo que estás viendo es todo Client Side HTML/JS y si bien puedo ver cómo crees que modificarlo sería un defecto de seguridad ... Realmente no lo es, porque solo te afecta a ti y a tu computadora.

Por ejemplo, si presiona F12 en su navegador y escribe lo siguiente en la consola:

y = document.getElementsByClassName('gravatar-wrapper-32');
for (idx = 0, len = y.length; idx < len; ++idx) {
  y[idx].firstChild.src = "https://www.gravatar.com/avatar/370bb2bee74fc88763dc0fe35477e24c?s=32&d=identicon&r=PG"
}

Todas las imágenes gravatar en la página se cambiarán a las mías ... y así es como hackeas el gibson ... es broma

Pero si aparece la misma página en otra pestaña, notará que este cambio solo afectó a la primera pestaña ... por lo tanto, no afectará a nadie más en el sitio.

Lo mismo es cierto para su login-page params ... si quisiera, simplemente podría cambiar la cadena completa en el lado del cliente y ... a nadie realmente le importaría. Cuando envías el JSON es la prueba real.

Si el desarrollador del código del lado del servidor no valida correctamente el JSON para asegurarse de que no se agreguen o eliminen cosas adicionales ENTONCES, habrá riesgos asociados (pero eso es un tema para otra pregunta).

    
respondido por el CaffeineAddiction 08.07.2018 - 02:11
fuente

Lea otras preguntas en las etiquetas