O que geralmente acontece é que o hacker (que geralmente é um bot) realiza uma pesquisa no google pelo que parecem ser possíveis pontos de entrada para injeção SQL (procurando por querystrings, procurando por, digamos "inurl: .aspx?" inurl:? id="). e então testa automaticamente a vulnerabilidade de injeção. Se você quiser encontrar o ponto de entrada, pode ser uma boa ideia enviar consultas semelhantes ao google e ver quais sites de querystring indexaram.
Continuando, esses scripts normalmente esperam que o script em execução tenha acesso a sysobjects, e nesse caso ele pode percorrer todas as tabelas do banco de dados e se autoinjetar em todas as colunas. Se isso aconteceu (o que eu acho, caso contrário a vulnerabilidade de injeção poderia ser considerada como sendo o código injetado), eu escrevi um script uma vez, que faz a mesma coisa, para pesquisar o banco de dados inteiro por um determinado valor. pode ser encontrado aqui:
http://pastebay.com/28400
Se você não tem backups (o que eu estou supondo pelo seu tom um pouco desesperado), esse script pode ser usado para localizar todas as colunas injetadas, e com uma pequena modificação, ele também pode ser usado para remover essas injeções fora.
Tanto para restaurar o ambiente. Depois disso vem a tarefa de garantir que isso não aconteça novamente. Você não está com muita pressa, quem te injetou provavelmente bateu em você aleatoriamente e não é provável que tente novamente em breve, mas aprenda uma lição com isso e torne-a uma questão prioritária. de qualquer maneira.
Como para proteger o site, bem, eu já mencionei a maneira do google de obter uma dica de onde estão as vulnerabilidades, mas na verdade, é hora de você enfrentar a tarefa de mover suas consultas sql, uma por uma para procedimentos armazenados, ou um OR / M, ou algo assim. uma vez que você tenha feito isso, você terá ido muito longe para arrumar sua fonte bagunçada.