Funciones RCE maliciosas en CGI y Java

3

Sé que hay algunas funciones en CGI y Java de las que se puede abusar para realizar un ataque de ejecución remota de código.

Por ejemplo, podemos ver el abuso de la función "eval" en Movable Type CMS:

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

¿Quiero saber si hay otras funciones que permitan al atacante ejecutar comandos arbitrarios en CGI y Java?

    
pregunta Matthew 03.08.2015 - 08:32
fuente

1 respuesta

1

El equivalente directo en Java estaría usando cargadores de clases o implementando un intérprete, particularmente si permite llamadas de método arbitrarias a través de la reflexión. Un IDE u otro visor de código que permita rastrear las llamadas de métodos le mostrará las API que indirectamente usan esto (o usan grep ).

Las Pautas de codificación segura de Oracle para Java SE tienen una lista de ejemplos en Pauta 3-8 / INJECT-8: Tenga cuidado al interpretar un código no confiable .

    
respondido por el Tom Hawtin - tackline 04.08.2015 - 14:35
fuente

Lea otras preguntas en las etiquetas