EsTE MÓDULO TIENE UN GRAVE FALLO DE SEGURIDAD
¡Hace público parámetro CIP!
Para que realmente una firma garantice la integridad de un mensaje es imprescidible que
cualquiera no pueda generar una firma válida, por lo que en el proceso de firma hay una
clave. Esta clave tiene que ser secreta. En ceca le llaman clave de encriptación, en el BBVA
palabra secreta, en servired palabra secreta o clave secreta etc... en el caso de ¡CajaRural
se llama CIP!
El módulo publicado muestra el valor de este campo, que debería ser secreto como campo
hidden en el formulario que se envía a CajaRual, cualquiera lo puede ver oulsando en mostrar
código.
¿Que peligro tiene esto? Si cualquier puede generar una clave válida podriamos hacer una
compra de 1000? modificar el importe a 0,01? generar una firma válida para este nuevo
importe y procesar el pedido, con lo que en la tienda constaría como pagado el pedido y en
caja rural nos habrían admitido el pago de sólo 1 céntimo.
Como solución:
Primero quitar ese hidden del formulario.
Segundo en los ficheros a compilar que dan los de Caja Rural va "hard codeado" ese código
por lo que el ejecutable generado debería ser secreto y no público como en
http://bullbikes.com/Firmar ya que si es público podemos generar una firma válida incluso
sin conocer el CIP. Lo suyo sería modificar los ficheros a compilar para que acepte como
parámetro el CIP.
Adicionalmente usar este método, tiene los peligros adicionales de necesitar el safe_mode a
off y tener habilitada la función exec(). Caja Rural permite contratar el TPV con la
modalidad de firma por sha1 . Esta modalidad sin duda es la que convendría usar en tiendas
osCommerce.
Por último, también es altmente recomendable cambiar el valor del CIP que por defecto suele
ser 111111 , por lo que poco tiene de secreto.
More...





LinkBack URL
About LinkBacks









Bookmarks