Funzioni RCE dannose in CGI e Java

3

So che ci sono alcune funzioni in CGI e Java che possono essere sfruttate per eseguire un attacco di esecuzione di codice in modalità remota.

Ad esempio possiamo vedere l'abuso della funzione "eval" in CMS Movable Type:

sub core_drop_meta_for_table {my $self = shift;
  my (%param) = @_;
  my $class = $param{class};
  my $sql = $param{sql};eval "require $class;";            <-----------------------------
  my $driver = $class->dbi_driver;
  my $dbh = $driver->rw_handle;
  my $err;
  eval {
    $dbh->do($sql) or $err = $dbh->errstr;
  };
  # ignore drop errors; the column has probably been
  # removed already
  #if ($err) {
  #    print STDERR "$err: $sql\n";
  #}return 0;
}

Voglio sapere se ci sono altre funzioni che consentono all'aggressore di eseguire comandi arbitrari in CGI e Java?

    
posta Matthew 03.08.2015 - 08:32
fonte

1 risposta

1

L'equivalente diretto in Java utilizzava i programmi di caricamento di classe o implementava un interprete, in particolare se consente chiamate di metodo arbitrarie tramite la riflessione. Un IDE o un altro visualizzatore di codice che consente di rintracciare le chiamate al metodo ti mostrerà le API che lo utilizzano indirettamente (o utilizzano grep ).

Le Linee guida di codifica sicura di Oracle per Java SE contiene un elenco di esempi in Linea guida 3-8 / INJECT-8: Interpreta attentamente il codice non attendibile .

    
risposta data 04.08.2015 - 14:35
fonte

Leggi altre domande sui tag