2009-11-30 12 views
9

¿Hay alguna manera de confirmar que una violación de seguridad particular se realizó a través de la inyección SQL?Cómo confirmar la inyección SQL

+0

está seguro de que ha ocurrido, o simplemente sospechoso? – kurast

+0

En realidad, los detalles que están solo en la base de datos se están ... así que lo primero que se me vino a la mente fue que la dbase podría haber sido pirateada. – Sachindra

+0

¿Has probado lo que propuse? – kurast

Respuesta

1

después del ataque ya ha sucedido? no. no hay tendrá que verificar todos sus puntos de acceso sql serevr por posibles riesgos. hay algunas herramientas que puede usar. Compruebe here en la sección Herramientas de inyección de SQL.

0

Una sola manera confiable es probablemente analizar los archivos de registro de SQL. Esos debe hacerlos un DBA que pueda detectar las cosas rápidamente, ya que el tamaño de los registros sería enorme.


Es mejor prevenir eso.

Hay algunos tools para eso, pero el mejor es el cerebro del desarrollador.

Se adhiere a una regla simple - siempre usa los parámetros al generar consultas SQL.
Simplemente haga la revisión del código y si encuentra cadenas de coordenada - ese es el primer y muy posible lugar para la inyección de SQL.

+0

la solicitud usa el tiempo pasado, sospecho que ya sucedió. – lorenzog

+0

Sí. Tienes razón. He actualizado la respuesta un poco. –

-2

Puede registrar todas las solicitudes http y verificar las páginas solicitadas para las pruebas de inyección de GET/POST sql.

7

No hay una manera fácil aquí, pero si tiene habilitado el servidor SQL que usa para registrar cada instrucción sql, esto es lo que haría.

Normalmente, cuando SQL inyecta en algún lugar, utilizo uno de estos como mi declaración siempre verdadera para pasar a través de la cláusula Where, después de terminar la cadena anterior.

1=1 
0=0 

tanto se utiliza como:

blahblahblah' or 1=1 -- 

que no se usará este cláusulas en el código de todos los días. Entonces, si detecta uno de estos en su historia, bueno, es un candidato alto. Prueba de la historia para encontrar sql:

(space)(number)(optional spaces)(equal)(optional spaces)(same number)(space) 

Tenga en cuenta que es heurística, y no siempre funciona, pero podría ser la única manera de dar una pista después de que había sucedido. Además, si tiene dudas sobre la inyección de SQL, debe verificar el código para la concatenación de cadenas y el uso de parámetros.

1

Use mod_security para registrar las solicitudes POST e instale un sistema de detección de intrusos para iniciar/detener la actividad sospechosa a partir de ahora. Registrar cada solicitud SQL es una sobrecarga si solo está buscando los puntos de infracción.

Existen alternativas de código abierto para IDS en estos días. Uso PHPIDS para todas mis aplicaciones PHP.

1

La inyección SQL puede ocurrir cada vez que pasa una consulta a la base de datos.

SQL Injection

Cuestiones relacionadas