Che cos'è un esempio di aritmetica e buffer overflow in un'applicazione php?

4

Sto cercando di trovare la prova se è possibile avere overflow in un'applicazione php, se overflow del buffer o overflow aritmetici.

Credo che sia possibile avere questi overflow nel core del software php, ma questa domanda riguarda gli overflow in un'applicazione scritta in php.

    
posta greggles 21.03.2016 - 20:23
fonte

1 risposta

10

Overflow aritmetico

Non è possibile avere overflow aritmetici in PHP, almeno non nel senso che il numero si avvolge, portando a un risultato inferiore al previsto (che è il tipo che potrebbe avere implicazioni sulla sicurezza).

Ci sono due ragioni per questo:

  • se un numero intero viene aumentato oltre il limite, viene automaticamente convertito in float.
  • se un float viene aumentato oltre il limite, viene automaticamente impostato su INF, che viene considerato come il valore più grande.

Puoi provare tu stesso:

$max = PHP_INT_MAX;
var_dump($max);         // int 9223372036854775807
$max = PHP_INT_MAX + 1; 
var_dump($max);         // float 9.2233720368548E+18

$max_float = 1.8e307;
var_dump($max_float);   // float 1.8E+307
$max_float = 1.8e307 * 10;
var_dump($max_float);   // float INF

Funziona allo stesso modo per i numeri negativi.

Ma anche se non si dispone di un overflow di interi in senso tradizionale, si potrebbero comunque incontrare problemi. Considera, ad esempio, questi casi:

PHP_INT_MAX < (PHP_INT_MAX + 1) // -> false
PHP_INT_MAX == (PHP_INT_MAX + 1) // -> true

Aritmetico Underflow

Puoi avere underflow in PHP:

$min_float = 9.8813129168249E-324;
var_dump($min_float);   // float 9.8813129168249E-324
$min_float = 9.8813129168249E-324 / 10;
var_dump($min_float);   // float 0

Come 0 è uguale a un numero di cose, tra cui NULL , false , "0" , "foobar" , questo potrebbe causare problemi in alcune situazioni. Ma questi problemi non sono in realtà il risultato del underflow.

Overflow del buffer

Il buffer overflow in PHP può esistere a causa di vulnerabilità in PHP stesso, ma non a causa del codice dell'applicazione.

Ecco un elenco di alcuni vulnerabilità di buffer overflow in PHP .

    
risposta data 21.03.2016 - 21:09
fonte

Leggi altre domande sui tag