I recently discovered that my web site was hacked: there was a hidden HTML div that's about selling shoes...! I googled the text in question and voila: thousands of sites have been hacked.

Check this out: Google the text 'There is also hang tag made of leather, a slip pocket to put cards' and go to the sites in the results and look at the source code of the page. 

You'll see something like:  <div style="position: absolute; top: -966px;left: -966px>...</div> with a lot of spammy shoe keywords in there.

Example of hacked site:


Some band page: http://www.milsteinmusic.com/about.html (In case that should be cleaned up: Shoe-ized version archived here.) (check out the page HTML and look for shoes...).


My question is:  


How did this happen?   
How can we contact all those guys who have been hacked?  
Where can I report this to an authority?   


If you want to do a good turn, you can report the malicious site to several centralized sources.  There are some companies that maintain centralized lists of malicious web sites, and you can report the web sites to those companies.  Here are some places you can report phishing sites:

Report a phishing site to Google
Report a phishing site to Symantec
Report a phishing site to PhishTank (previously existing account required)
Report a phishing email to Anti Phishing Working Group (via reportphishing@apwg.org)
Report a phishing site to the US Government (US-CERT) (via phishing-report@us-cert.gov)

And some places you can report bad/malicious sites in general:

Report a malicious site to Google [*]
Report a phishing or malware site to Spam404
Report a phishing or malware site to Microsoft (account required)

Reporting the site to these lists helps other users.  Many modern browsers will query one of the lists maintained by these companies, and warn other users who try to visit that site.
Here is a good list of places to report to: https://decentsecurity.com/#/malware-web-and-phishing-investigation/
Notifying the owners of the website is a bit harder.  Here are some options:

You can poke around the website to see if it lists any information about how to notify the owners about security problems.
Sometimes email to security@example.org, abuse@example.org, root@example.org, or postmaster@example.org will reach a system administrator (replace example.org with the domain of the malicious site).  You could try emailing all of those addresses.
You could use WHOIS to look for contact information for the site owners.  See, this example.  You can use abuse.net to simplify the process of contacting the site owners: you'll have to register, but once you register, email to example.com@abuse.net is forwarded to the site owners of example.com.

Related:

What are common/official methods of reporting spam/phishing/nasty-grams to organizations?
Unknown malware, how to report it and whom to report it to?
What is a good method to report security breaches that are being used to actively spam?

Footnote: Thanks to Zoredache for the sites listed with a *!
