inyección SQL: insertar datos desde Obtener solicitud

3

Estoy utilizando la aplicación web vulnerable mutillidae .

Hay una página web donde puede ver información de un perfil, pero primero debe proporcionar un usuario y una contraseña. Una vez que haces clic en enviar, lo envía a una base de datos mysql con esta URL:

http//192.168.x.x/mutillidae/index.php
 ?page=user-info.php&username=the_userd&password=the_pass&user-info-php-submit-button=View+Account+Details

Sé que la tabla es accounts y las columnas son: cid, username, password, mysignature, is_admin .

Esta captura de pantalla muestra las cuentas de la tabla: enlace

Deseo poder agregar un nuevo usuario a la base de datos (cuentas de tabla)

He intentado con estas URL:

http//192.168.x.x/mutillidae/index.php
 ?page=user-info.php&username=d"union insert into accounts ("cid","username","password","mysignature","is_admin") values ("18","bob1", "bob1","mysign","FALSE");--&password=d&user-info-php-submit-button=View+Account+Details 

http//192.168.x.x/mutillidae/index.php
 ?page=user-info.php&username=d";insert into accounts ("cid","username","password","mysignature","is_admin") values (18,"bob1", "bob1","mysign",FALSE);--&password=d&user-info-php-submit-button=View+Account+Details

Si puede ayudar, aquí está el archivo de la página vulnerable (código fuente de php): enlace con una muestra:

            //Accept data from either GET or POST to make this target soft for SQLMAP
            $lUsername = $_REQUEST["username"];
            $lPassword = $_REQUEST["password"];

            $LogHandler->writeToLog($conn, "Recieved request to display user information for: " . $lUsername);

            $lQuery  = "SELECT * FROM accounts WHERE username='".
            $lUsername .
            "' AND password='" .
            $lPassword .
            "'";
            $lEncodeOutput = FALSE;
    
pregunta Bob Ebert 19.03.2016 - 21:15
fuente

1 respuesta

1

Supongo que te gustaría descubrir el método exacto por ti mismo y solo buscas ser orientado en la dirección correcta.

Los métodos de consulta de la base de datos PHP normalmente solo permiten una única consulta por llamada. Por lo tanto, debe realizar una inyección que sea parte de la consulta que se ejecuta.

Sin embargo, estoy bastante seguro de que no puede INSERTAR datos usando una inyección, solo manipular el resultado de un SELECT.

    
respondido por el Jacco 20.03.2016 - 21:22
fuente

Lea otras preguntas en las etiquetas