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

Responder a