2010-09-16 15 views
8

Mi compañero de trabajo no está seguro con su código y permite que un usuario cargue un archivo SQL para que se ejecute en el servidor. Se quita cualquier palabra clave en el archivo como "EXEC", "DROP", "UPDATE", "INSERT", "TRUNC"¿Cómo exploto "EXEC @sql"?

Quiero mostrarle el error de sus caminos explotando su EXEC (@sql)

Mi primer intento será con 'EXEXECEC (N''SELECT ''You DRDROPOPped the ball Bob!'')'

pero podría filtrar eso todo en un bucle.

¿Hay alguna manera de explotar el código de mi compañero de trabajo? ¿O está filtrando las palabras clave lo suficiente?

Editar: Tengo que verifique en su código. Si el código contiene una palabra clave, no la ejecuta. Todavía estoy tratando de descubrir cómo explotar esto usando la conversión binaria.

+1

+ 1 Para una pregunta tan increíble. Deberíamos explotar a nuestros compañeros de trabajo con más frecuencia. –

+0

¡Solo danos la 'URL' y registra las cargas! – Quassnoi

+0

En cuanto a su primer intento: ¿nos está diciendo que su compañero de trabajo todavía intenta ejecutar un código subido * después * encontró un 'EXEC' allí? – Quassnoi

Respuesta

5
  1. Dile a tu compañero de trabajo que es un idiota.

  2. Hacer una obfuscated SQL query, algo así como:

    select @sql = 0x44524f5020426f627350616e7473

Esto tendrá algunos ajustes en función de lo que el resto del código es similar, pero la idea es codificar su código en hexadecimal y ejecutarlo (o más bien, dejar que se ejecute). Hay otras maneras de ofuscar el código que se inyectará.

Tienes un gran agujero de seguridad allí. Y lo gracioso es que esto ni siquiera es algo que deba reinventarse. La forma correcta de evitar que sucedan tales cosas es crear y usar una cuenta con los permisos correctos (por ejemplo: solo puede realizar consultas select en las tablas x, yyz).

+1

hee - solo en caso de que no conocieras ese maleficio y cuando se traduce en ascii traduce bobspants –

+0

Jeje, ese código no funciona –

+0

Buena llamada en la cuenta de usuario. Eso resolverá su problema con seguridad. –