A surfer has described the moment he fought off a shark which charged at him in the water at Cheynes Beach in Western Australia.