A rocket attack on a village in southern Afghanistan killed at least 45 civilians, a spokesman for Afghan President Hamid Karzai told AFP on Monday.