Ejemplo de neutralización del registro - ¡Ayúdame a entender!

0

Por lo tanto, estoy tratando de entender la neutralización de registros y parece que no hay mucha documentación o ningún ejemplo en vivo / video para ayudarme a entender esto. Encontré un gran repositorio de GitHub que tiene muchos ejemplos de posibles vulnerabilidades / vulnerabilidades. Entonces, puse en cola mi Kali VM, cloné el repositorio y compilé la clase java y lo ejecuté con el archivo make que acompañaba al repositorio. No estoy muy familiarizado con Java, pero actualmente estoy tomando un curso de Java. ¿Alguien puede ayudarme a entender lo que está pasando aquí?

Aquí está el código java:

 import java.util.logging.ConsoleHandler;
 import java.util.logging.Logger;

/**
 * This class will log anything that comes in through the command line
*    - including CRLF characters
* 
* Use the --safe flag to have it be safe (see the Makefile)
* 
* @author Andy Meneely
* 
*/
public class ArgumentLogger {
private static Logger log = Logger.getLogger(ArgumentLogger.class.getName());

public static void main(String[] args) {

    System.out.println("Logging commandline arguments:");
    if (args.length > 0) {

        // Log safely
        if (args[0].equals("--safe") && args.length > 1) {

            System.out.println("Safe mode enabled.");
            // Encode carrage returns to avoid log forgery
            String clean = args[1].replace('\n', '_').replace('\r', '_');
            log.info(clean);

        // Log unsafely 
        } else {
            log.info(args[0]);
        }
    }
}

Y aquí está la salida de mi consola después de ejecutar ./make:

===Exploit===
Logging commandline arguments:
Jan 17, 2017 2:01:46 PM ArgumentLogger main
INFO: a normal event
Apr 25, 2012 1:26:19 PM ArgumentLogger main
WARN: Attack suspected at 129.21.208.62

===Done Safely===
Logging commandline arguments:
Safe mode enabled.
Jan 17, 2017 2:01:47 PM ArgumentLogger main
INFO: a normal event_Apr 25, 2012 1:26:19 PM ArgumentLogger main_WARN:
Attack suspected at 129.21.208.62
    
pregunta Joshua Faust 17.01.2017 - 21:16
fuente

1 respuesta

1

Mire el Makefile y compare los parámetros en la ejecución.

Un ataque de neutralización de registro CRLF es una forma de agregar líneas arbitrarias a un archivo de registro, si el archivo de registro incluye información que proviene del usuario.

Es decir, el registro intentaba poner una advertencia a las 2:01, pero debido a los CRLFs en la cadena creada, en su lugar puso un INFO a las 2:01 y el WARN a las 1:26 (un tiempo arbitrario elegido por el atacante)

Es una forma de agregar confusión y hacer que el seguimiento del atacante sea más difícil. Repararlo, como se muestra en el código, es trivial: bloquee los caracteres no imprimibles y sustitúyalos por _

Voy a demostrar lo que es real y lo que es falso aquí:

Logging commandline arguments:
Jan 17, 2017 2:01:46 PM ArgumentLogger main <= real date, real location
INFO: a normal event                        <= fake INFO, fake message
Apr 25, 2012 1:26:19 PM ArgumentLogger main <= fake date, fake location
WARN: Attack suspected at 129.21.208.62     <= real message
    
respondido por el crovers 17.01.2017 - 21:28
fuente

Lea otras preguntas en las etiquetas