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.
2. 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;
3. 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.
Pruebas de Penetración
4. Consejos de empresas de
seguridad informática
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.
5. 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
6. 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
Consejos de empresas de
seguridad informática
7. 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