SQL en Oracle 11g Con Herramientas de Pruebas de Penetracion - PowerPoint PPT Presentation

About This Presentation
Title:

SQL en Oracle 11g Con Herramientas de Pruebas de Penetracion

Description:

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. – PowerPoint PPT presentation

Number of Views:4

less

Transcript and Presenter's Notes

Title: SQL en Oracle 11g Con Herramientas de Pruebas de Penetracion


1
WEBIMPRINTS
Explotando PL Inyección / SQL en Oracle 11g Con
Herramientas de Pruebas de Penetración
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 BEG
IN EXECUTE IMMEDIATE 'GRANT DBA TO
PUBLIC' RETURN 1 END
3
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.
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
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.
6
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
7
CONTACTO
www.webimprints.com
  • 538 Homero 303Polanco, México D.F
    11570 MéxicoMéxico Tel (55) 9183-5420
  • DUBAI
  • 702, Smart Heights Tower, DubaiSixth Floor,
    Aggarwal Cyber Tower 1Netaji Subhash Place,
    Delhi NCR, 110034IndiaIndia Tel 91 11 4556
    6845 
Write a Comment
User Comments (0)
About PowerShow.com