Vulnerabilità legata alla stringa di formato incontrollata in JavaScript

3

Ho lavorato su vulnerabilità di convalida dell'input e molto nuovo a Vulnerabilità legata alla stringa di formato non controllata, come ho appreso finora che è solitamente sfruttato attraverso printf funzioni con " % ".

Ho anche visto che JavaScript (Node.JS) supporta le stringhe di formato usando le funzioni sprintf .

È possibile eseguire attacchi Format String in JavaScript, perché in CWE viene menzionato solo che è raramente visto in Perl, spesso in C e C ++. Se è possibile ci sono esempi o fonti che posso trovare.

Mi sono cimentato con un semplice esempio ma alla fine ho trovato un errore expecting number but found string "Bob"

var val = "Bob"
console.log(sprintf('The %x ran around the tree', val)); 

Non sono sicuro che se lo faccio bene, qualsiasi aiuto sarebbe fantastico.

Grazie in anticipo

    
posta Ekin 28.10.2015 - 09:43
fonte

1 risposta

1

No, non sono possibili in Node.js poiché sprintf è un'utilità di formattazione di stringa di base. Questo è ora incorporato nella lingua come util.format .

Come per la documentazione , questa funzione supporta solo la formattazione di base come %s , %d e %j . Non c'è modo di recuperare un valore del puntatore usando %p , esadecimale formattandolo usando %x o emettendo il numero di caratteri usando %n , che è dove la vulnerabilità si trova in C. C documentazione sulle opzioni di formattazione qui .

C è una lingua nativa, quindi è possibile causare un overflow del buffer utilizzando il formato stringa. Tuttavia, Node.js è un linguaggio gestito e non è possibile controllare direttamente i registri, pertanto non si otterrà lo stesso tipo di vulnerabilità qui.

Vedi qui per alcuni esempi di exploit stringa di formato.

    
risposta data 28.10.2015 - 10:38
fonte