miércoles, 16 de mayo de 2007

Inyección SQL?

Para empezar el blog voy a explicar los grandes fallos que todos sabeis o deberíais de saber, que hay en sql.
Mejor dicho, no voy a explicar casi nada, simplemente voy a dar una sola "tecla" que hace maravillas.

Como "sabéis" lo más tipico en sql es '1 or 1=1' o era 1 or 1=1 o era'1' o .... el problema es que existe un código que pone:

cadena=replace(cadena,"'","")

y en ese caso nos han jodido el invento.

Tambien se puede poner directamente en la url.

www.miweb.com/arxivo.asp?variable=1 or 1=1

pero si como en mi caso compruebas que sea una cadena lógica y además la pasas por el replace... tampoco.

Ahora bién, hay cientos de webs que lógicamente o no tan lógicamente, ya que son sus BDS las que peligran, que cogen un tutorial y no modifican ni una líneas, las cuelgan en su web y ¡urra! ya están protegidos, se fian solo porque en la web del tuto pone corregir errores FUNCIONA.

¿Seguro?

function acomodar (cadena)
cadena=replace(cadena,"'","")
cadena=replace(cadena,"""","")
cadena=replace(cadena,""","")
cadena=replace(cadena,"=","")
cadena=replace(cadena,"&","")
cadena=replace(cadena," ","")
acomodar=cadena
End function

ademas puedes añadir...

cadena_1=replace(cadena_1,"á","& aacute;")
cadena_1=replace(cadena_1,"à","& agrave;")
cadena_1=replace(cadena_1,"Á","& Aacute;")
cadena_1=replace(cadena_1,"À","& Agrave;")
cadena_1=replace(cadena_1,"é","& eacute;")
cadena_1=replace(cadena_1,"è","& egrave;")
cadena_1=replace(cadena_1,"É","& Eacute;")
cadena_1=replace(cadena_1,"È","& Egrave;")
cadena_1=replace(cadena_1,"í","& iacute;")
cadena_1=replace(cadena_1,"ì","& igrave;")
cadena_1=replace(cadena_1,"ï","& iuml;")
cadena_1=replace(cadena_1,"Ï","& Iuml;")
cadena_1=replace(cadena_1,"Í","& Iacute;")
cadena_1=replace(cadena_1,"Ì","& Igrave;")
cadena_1=replace(cadena_1,"ó","& oacute;")
cadena_1=replace(cadena_1,"ò","& ograve;")
cadena_1=replace(cadena_1,"Ó","& Oacute;")
cadena_1=replace(cadena_1,"Ò","& Ograve;")
cadena_1=replace(cadena_1,"ú","& uacute;")
cadena_1=replace(cadena_1,"ù","& ugrave;")
cadena_1=replace(cadena_1,"Ú","& Uacute;")
cadena_1=replace(cadena_1,"Ù","& Ugrave;")
cadena_1=replace(cadena_1,"ñ","& ntilde;")
cadena_1=replace(cadena_1,"Ñ","& Ntilde;")
cadena_1=replace(cadena_1,"¡","& #161;")
cadena_1=replace(cadena_1,"!","& #33;")
cadena_1=replace(cadena_1,"¿","& #191;")
cadena_1=replace(cadena_1,"º","& #176;")
cadena_1=replace(cadena_1,"ª","& #170;")
cadena_1=replace(cadena_1,vbCrLf,"")
cadena_1=replace(cadena_1,Chr(34),"& #34;")
cadena_1=replace(cadena_1,"“","& #34;")
cadena_1=replace(cadena_1,"”","& #34;")
cadena_1=replace(cadena_1,"«","& #34;")
cadena_1=replace(cadena_1,"»","& #34;")
cadena_1=replace(cadena_1,"¿","& iquest;")
cadena_1=replace(cadena_1,"€"," e uro")
cadena_1=replace(cadena_1,"$"," d olar")


etc, etc...

Ahora no seais tan burros de coger el código y no continuar leyendo...

¡falta en todos los tutos una línea y para mi la mas importante!

¿Que pasa con el comodín de SQL, que pasa con esa tecla maravillosa que ni diós usa?
¿Que pasa? que como este país va tan bién que no hace falta hacer la declaración y por ese motivo no conocemos el fantástico simbolo del iva 16% el tanto por ciento ;)

%%%%%%%%%%%%%% <- lo pongo muchas veces para que os acordéis ;) Entrad en una web, que tenga un buscador apuntando a una BD ej: www.agencias-de-viajes.com <-- no seais capullos e ir probando en otras y no puteéis siempre a las mismas webs que se cuelgan en los tutos. Id donde pone Buscador de Agencias: y escribid % y a esperar. ... esperando ... esperando ... esperando resultados 6856 agencias de viajes.

cadena=replace(cadena,"%","") <-- solo faltaba una línea

Si usáis este código, pediría que hiciérais referencia a este blog, ya se que no se hace casi nunca, pero algún dia se debe empezar.
Gracias de antemano.
SALU2 RK (Códigos desenvolupados o modificados, en ningún caso copiados)

1 comentario:

sparrowise dijo...

Ola q tal redkram??
me a parecido bueno tu blog y muy buena la explicacion de inyeccion SQL.
Me gustaria que visitaras mi blog y colavoraramos juntos :)
Salu2!!
http://sparrowise.blogspot.com