Place all the marinade ingredients into a blender (everything except the steak). Blend until the onion, garlic and cilantro are chopped finely.
Put the steak into a non-reactive dish or plastic bag. Pour all the marinade over the steaks, and turn them to coat thoroughly. Marinate for a minimum of 3-4 hours.
Preheat an outdoor grill or cast iron grilled to high heat.
Remove the flank steak from the marinade, and discard excess marinade. Cook on the grill for 7 to 10 minutes per side, or until it reaches your desired doneness.*
Once done, remove from heat and let rest 10 minutes. Slice against the grain, and serve.
*The cook time all depends on the thickness of the meat, so make sure to use a meat thermometer for accuracy.