Citizens United was important as a last step. The first step was (IIRC) already in 1967 when the SC decided that corporations are people. That mistake needs to be rectified and it would solve all the other problems.
Right now non-human beings, corporations, have the right to speech. That is ridiculous on its face. Every human owner of a corporation already has the right to speech. A corporation getting speech rights then clearly means that the owners of a corporation have MORE speech, which is unconstitutional.
It is only because big money has corrupted the US government so fully that such a stupid decision was made in the first place.
You're definitely right that it is a tall order, and I agree about Leo. I'm afraid things are going to have to get a lot worse before they get better.