This is perfectly feasible in EE without any add-ons. Since EE doesn't really have a concept of pages, a single channel entry can appear at multiple URIs no problem - You'll just need to use some logic in your template to show the right entry.
There are lots of different ways to approach this, but let's say you want your URIs to be:
You could use a category or custom field to define the colours and then pipe the values through to a channel entries query. For example, with categories, your
products/index template could look a bit like this (also using Low Seg2Cat to get the cat ID here):
You could do the same thing with a custom field, such as checkboxes or radio buttons and the
search parameter. Just be a little bit careful that you don't pipe URI segments directly into a channel entries tag as this could be a (minor) security risk (exposing private entries etc if you're not careful). I would usually use Stash to pre-screen/normalise any incoming segments to prevent this.