2010/2/22 Rafael Bidegain <[email protected]>: > El día 22 de febrero de 2010 21:39, Matias Pablo Brutti > <[email protected]> escribió: >> 2010/2/22 Ricardo Markiewicz <[email protected]>: >>>>>> @clientes_movimientos = ClienteMovimiento.find_by_sql("Select >>>>>> clientes_movimientos.* " + >>>>>> "from clientes_movimientos, solicitudes, clientes " + >>>>>> "where clientes_movimientos.solicitud_id = >>>>>> solicitudes.id >>>>>> and " + >>>>>> " solicitudes.cliente_id = clientes.id and " + >>>>>> " clientes.id = #{params[:id]}") >>>>>> AQUÍ NO ESTA EL PROBLEMA, el problema es que en el array que me genera, >>>>> >>>>> Hola, aca tenés un problemón, estás dejando un sql injection re lindo >>>>> al mundo :). >>>> heee, yo no se nada sobre sql injection. >>>> >>>> ¿cual es el problema? ¿como se puede comprobar el problema? y por >>>> último ¿como se evita? >>> >>> El problema es que está pasando al query un string que viene desde el >>> user sin hacerle ningun tipo de limpieza, dejando a algun vivo a hacer >>> cosas como (not tested) >>> >>> /controller_name/25?id=25; INSERT INTO clientes_movimientos (income) >>> VALUES (5000000000); >>> >>> Con sqlmap [1] encontras estos errores bastante facil auditando las >>> URLs donde hagas cosas a mano. >>> >>> Y llenarme de plata con un cronjob. Se evita en principio, por ejemplo >>> en este caso, haciendo un params[:id].to_i, usando los finders de >>> ActiveRecord o haciendo un "escape string" (creo que hay un metodo en >>> AR por si lo necesitas) antes de concatenar. >>> >>>> je, te maté a preguntas. si es muy largo te podrías dar una charlita :) >>> >>> eh, el experto en seguridad es freedomcoder :) >> EHH .... Hacete cargo ahora no me mandes al frente a mi. Yo trate de >> darles una chala una vez ... Te la presto y la das vos, talves a vos >> te dejen. >>> >>> >>> [1] http://sqlmap.sourceforge.net/ > Hola Freedomcoder, Gazer > > gracias a ambos se me aclaró bastante el panorama y pude ver porqué > Gazer detecto al toque el problema del injection. > > ahora, Freedocoder lo tuyo fue /ban o /ignore ? Honestamente, ya fue no vale la pena ni mencionarlo, fue una leccion aprendida sobre como se mueven las cosas. > > propongo que Freedomcoder pueda dar su charla (por irc aunque sea) y > que se le suspendan las amonestaciones :) Si alguna vez hacen algo y tengo tiempo preparo algo para la nueva version de Rails , pero tendria que sentarme a auditar/jugar un rato con codigo.
Slds. > > saludos > -- > Rafael Bidegain > > Ya que los cuerdos no hablan, hablará el loco. > (The Fool, Padraic Pearse) > > # divertite programando > # http://rubytutorial.wikidot.com/introduccion > _______________________________________________ > Ruby mailing list > [email protected] > http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar > -- -- --<自由編碼人>-- B.Sc. Matias Pablo Brutti Senior Security Consultant Email : [email protected] Site: http://www.freedomcoder.com.ar _______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
