Quindi il bug di heartbeat può portare a sovraccarichi di memoria, esponendo (parti di) la memoria di processo, perché legge il payload quando in realtà non c'è (o meno) un payload.
Ma a cosa serve un carico utile, soprattutto in un battito di cuore?
Sembra che sia appena memcpy nella risposta. Come si usa, esattamente?
Modifica :
Domanda simile, risposta molto interessante: Perché il client fornisce la lunghezza del messaggio?
Modifica in risposta al commento di TildalWave :
-
Questa domanda non è un duplicato di 55116 . Sto chiedendo per cosa viene usato il payload. L'altra domanda si chiede come funziona l'exploit in generale ("Come funziona esattamente l'exploit heartbeat (Heartbleed) di OpenSSL TLS?") E non contiene nemmeno la parola "payload".
-
Chiarimento: sembra che la mia domanda sia poco chiara.
- In genere viene utilizzato un heartbeat per verificare se l'altro sistema è ancora lì, che in pratica è una domanda si / no - quindi perché c'è un enorme carico di 64 KB (Mark ha già numeri di sequenza citati però)?
- Il server non si preoccupa del contenuto del payload, lo copia semplicemente nella risposta (aspettandosi che il client fornisca la lunghezza del payload invece di controllarlo, almeno prima della correzione heartbleed), giusto?
- Che tipo di dati metterebbe un cliente nel carico utile? Un numero? Una parola? Una stringa casuale? Se possibile, fornire un collegamento a un file sorgente (preferibilmente C) insieme alle righe di codice pertinenti.
- Qualcuno può fornire un esempio per un caso d'uso che richiede che il carico utile sia più lungo di, diciamo, 8 byte? Perché usare un numero di sequenza esadecimale a 8 byte è una cattiva idea?