Bodies in cars, on the ground after Zaporizhzhia civilian convoy strike

Ukrainian servicemen carry victims' remains from the scene, after a missile strike near Zaporizhzhia, PHOTO: AFP

ZAPORIZHZHIA, Ukraine - The body of a man in a chequered jumper inside a car with blown-out windows, his tattooed hand still clutching the steering wheel.

A woman's purple manicure and golden rings visible as her body lies in a pool of blood on the ground.

These are just some of at least 30 civilians killed in a strike on a humanitarian convoy outside Ukraine's southern city of Zaporizhzhia on Friday.

The deadly attack came in the morning, when hundreds of people were waiting in a line of vehicles to cross into the Russian-controlled part of the region.

Obtaining permission to move between Kyiv- and Moscow-held territory can be a lengthy process, with families divided by a moving frontline in a conflict that has ravaged Ukraine for seven months.

The strike came just hours before President Vladimir Putin declared four Ukrainian regions - including Zaporizhzhia - to be Russian in a lavish annexation ceremony at the Kremlin.

An AFP journalist at the scene saw bodies lying between damaged cars, with suitcases and handbags scattered nearby.

One man, 56-year-old Viktor, said his life was saved by the fact that he left the queue to find coffee.

"The waitress gave it to me, then there was a bang. She got scared and ran out. A few minutes later, another one. Now she is on the floor," he said.

"I managed to hide. She did not."

A few metres behind him, the body of a young woman in a pink jacket was lying on the ground, her leg contorted.

Another woman's body was lying face down.

Both were killed between two rows of cars, the front of a convoy hoping to return to parts of southern Ukraine under Russian control.

Ukrainian Interior Minister Denys Monastyrskyi visits the site of the Russian missile strike. PHOTO: REUTERS

Drivers and passengers were waiting outside a logistics centre for permission to cross, which can take days or even weeks, according to Viktor.

Another woman who survived and asked to use the pseudonym Katya said some 300 cars were waiting around 8am when the rockets hit.

Ukrainian security forces said three S-300 missiles hit the transit centre and a small forest nearby.

Police inspected a large crater several meters deep near the line of cars.

'Ukrainian, not Russian'

AFP saw more than a dozen damaged cars and vans on Friday afternoon, all with their windows blown out.

The bodies of their former passengers, covered with a white sheet, were still inside.

A soldier opened a minivan door, first discovering a small dog that had been killed, before pulling out the body of a man by his black jacket.

The remains of half a dozen victims in black body bags were placed in an ambulance nearby.

Ukrainian security forces said three S-300 missiles hit a transit centre for crossing into Russian-occupied Zaporizhzhia territory and a small forest nearby. PHOTO: REUTERS

President Volodymyr Zelensky called Russia "bloodthirsty scum" after the attack.

"Only complete terrorists could do this," the Ukrainian leader said.

His aide Kyrylo Tymoshenko said it was an "inhumane" attack.

Moscow-backed forces claimed Kyiv was behind the attack.

Inside the makeshift logistics centre near the line of cars, signs bore the names of cities under Russian occupation - Melitopol, Berdyansk and others that people in their cars had been hoping to reach.

Hundreds of people were waiting in a line of vehicles to cross into the Russian-controlled part of the Zaporizhzhia region. PHOTO: NYTIMES

Moscow has held so-called "referendums" in the occupied areas that Kyiv and the West have decried as a sham.

Katya, who was on her way to Moscow-held territory, said "the referendum means nothing".

"I am Ukrainian, not Russian," said the mother of two children, who are being looked after in Dnipro, a central city under Ukrainian control.

She said she was returning to the south to be able to earn a living.

"I have no work elsewhere," she said. AFP

Join ST's Telegram channel and get the latest breaking news delivered to you.