Come sfruttare i parametri JSON trascurabili

1

Ho una pagina HTML con questo bit di codice al suo interno:

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

</div>

Quindi, dove dice redatto, ci sono molti parametri, e uno di essi è modificabile usando un parametro URL, il che significa che posso cambiare questo parametro nell'URL in abc e metterà abc in quelle parentesi JSON. Usando questo, ho scoperto che non filtra correttamente le parentesi graffe, il che significa che in questo parametro posso inserire le parentesi graffe che sono analizzate come una nuova area JSON all'interno delle parentesi già presenti.

È difficile da spiegare, ma ad esempio, posso impostare il parametro URL "{test}", e quei parametri sopra saranno simili ai seguenti (supponendo che una delle aree redatte sia l'output del parametro URL:

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

Sembra che essere in grado di inserire qui le mie parentesi JSON dovrebbe consentirmi di eseguire il mio codice JSON, ma è possibile, e c'è qualche rischio associato al fatto che non filtrano le parentesi?

Grazie

    
posta Jack 08.07.2018 - 00:59
fonte

1 risposta

0

Ignorerò ogni cosa:

and is there any risk associated with the fact that they don't filter braces at all

In a word No.

Quello che stai guardando è tutto Client Side HTML/JS e mentre vedevo come credevi che la modifica sarebbe un difetto di sicurezza ... Non è vero, perché ha effetto solo su te e sul tuo computer.

Ad esempio, se si preme F12 nel browser e si digita quanto segue nella console:

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"
}

Tutte le immagini gravatar sulla pagina saranno cambiate in miniera ... ed è così che hai hackerato il gibson ... scherzando

Ma se apri la stessa pagina in un'altra scheda noterai che questa modifica ha effettuato solo la prima scheda ... quindi non avrà effetto su nessun altro sul sito.

Lo stesso vale per i tuoi parametri login-page ... se lo volessi, potresti semplicemente cambiare l'intera stringa sul lato client e ... a nessuno interesserebbe davvero. quando invii il JSON è il vero test.

Se lo sviluppatore del codice lato server non convalida correttamente il JSON per assicurarsi che cose extra non vengano aggiunte o rimosse ALLORA ci sarebbero rischi associati (ma questo è un argomento per un'altra domanda).

    
risposta data 08.07.2018 - 02:11
fonte

Leggi altre domande sui tag