WEBIMPRINTS Explotando PL Inyecci贸n / SQL en Oracle 11g Con Herramientas de Pruebas de Penetraci贸n
Pruebas de Penetración Oracle no hace declaraciones SQL por batch y esto hace que la explotación de los errores de inyección SQL ligeramente es más complicado de Microsoft SQL Server. Si el atacante, por ejemplo, quería conceder mismos privilegios arbitrarios; no sería capaz de hacer esto directamente en que se inyectan en una query SELECT. Por el contrario, necesitarían inyectar una función en la vulnerabilidad y es esta función que realizar el trabajo de la concesión de los privilegios. Estas funciones se conocen como funciones de inyección auxiliares. Si el atacante tiene el privilegio CREATE PROCEDURE que podrían, por supuesto, crear su propia función de inyección auxiliar e inyectar esto. CREATE OR REPLACE FUNCTION INJECT RETURN NUMBER AUTHID CURRENT_USER IS PRAGMA AUTONOMOUS_TRANSACTION; BEGIN EXECUTE IMMEDIATE 'GRANT DBA TO PUBLIC'; RETURN 1; END;
Pruebas de Penetración Hay dos puntos importantes a tener en cuenta aquí. El AUTHID CURRENT_USER asegura que, cuando se inyecta, la función toma sobre los privilegios del procedimiento vulnerables y la PRAGMA AUTONOMOUS_TRANSACTION permite sentencias DML y DDL para ser ejecutados, incluso si el vector de inyección es una sentencia SELECT. Por supuesto, si el atacante no tiene el privilegio CREATE PROCEDURE entonces tendrían la necesidad de encontrar una función existente que les permite ejecutar SQL arbitrario. Un número de funciones posibles, pero estos han sido arreglados en Oracle 11g impedir su uso. Antes de Oracle 11g, la La función del paquete DBMS_SQL EXECUTE podría ser utilizado como una función de inyección auxiliar para ejecutar SQL arbitrario después de abrir primero un cursor y analizar una consulta. Este método de ataque es conocido como inyección de cursor.
Consejos de empresas de seguridad informát Para evitar ataques de inyección de cursor y defectos cursor snarfing Oracle hizo cambios de seguridad en el paquete DBMS_SQL, o más bien el paquete DBMS_SYS_SQL subyacente. En primer lugar, el valor de un cursor de regresar de DBMS_SQL.OPEN_CURSOR ya no es secuencial y es aparentemente al azar. Anteriormente, los cursores se emitieron comenzando con 1 a continuación, a continuación, 2 3 y así sucesivamente. Cuando está cerrado, un valor cursor estaría disponible para su reutilización. En 11g embargo, cualquier intento de realizar una acción en un cursor no válido dará lugar a la denegación de acceso a DBMS_SQL. Para utilizar el paquete, la sesión debe ser derribado y vuelve a conectar. Esto ayuda a prevenir los ataques de cursor snarfing.
Consejos de empresas de seguridad informática Un segundo cambio a DBMS_SQL es que si un cursor se analiza bajo un identificador de seguridad, pero se hace un intento para ejecutarlo bajo otro identificador de seguridad, una violación de seguridad se lanza. Esto evita que los ataques de inyección cursor. Debido a estos cambios DBMS_SQL.EXECUTE ya no se puede utilizar como una función de inyección auxiliar. Como tal, hay que encontrar nuevas funciones según Profesionales de Seguridad Informática en México.
Consejos de empresas de seguridad informática Otra mejora de seguridad hecha a Oracle 11g es el bloqueo hacia abajo de ciertos servicios públicos PLSQL como UTL_INADDR, UTL_TCP, UTL_HTTP, UTL_MAIL, paquetes UTL_SMTP y el tipo httpuritype. Salvo autorización específicamente otorgada a hacerlo, un usuario con privilegios bajos no puede utilizar estos. Cualquier intento de resultados en un error: "ORA-24247: el acceso a la red negada por la lista de control de acceso (ACL)". Estas utilidades se han protegido, ya que pueden ser objeto de abuso por exfiltrating datos en los ataques de inyección SQL fuera de la banda. Si están siendo inyectados en un Procedure propiedad de un usuario que tiene privilegios para utilizar los servicios públicos, por ejemplo, un SYS procedure, entonces el atacante aún puede utilizarlos - la mejora de la seguridad no tiene efecto. Fuera de la banda de los ataques de inyección SQL se utilizan normalmente sin embargo, cuando el atacante es "ciego", como ocurre a menudo en ataques a aplicaciones web según expertos de Profesionales de Seguridad Informática en México
CONTACTO
w w w. w e b i m p r i n t s . c o m
538 Homero # 303 Polanco, México D.F 11570 México México Tel: (55) 9183-5420 DUBAI 702, Smart Heights Tower, Dubai Sixth Floor, Aggarwal Cyber Tower 1 Netaji Subhash Place, Delhi NCR, 110034 India India Tel: +91 11 4556 6845