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 ?

propongo que Freedomcoder pueda dar su charla (por irc aunque sea) y
que se le suspendan las amonestaciones :)

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

Responder a