WordPress SQL Injection: ferramentas e técnicas para prevenir ataques
Publicados: 2020-09-24
A injeção de SQL costumava ser uma técnica de hacking amplamente usada para manipular o banco de dados WordPress. Hoje em dia, Cross Site Scripting (XSS) é popular e se tornou o método número um para hackear um site WordPress.
Neste guia, estarei cobrindo os fundamentos do WordPress SQL Injection e como se livrar dele. Na próxima parte, abordarei Cross Site Scripting. Vamos começar!
- O que é injeção de SQL?
- Pontos de entrada para ataques de injeção de SQL
- Por que os ataques de injeção de SQL são comuns?
- Como funciona a injeção de SQL?
- Maneiras de prevenir injeção de SQL no WordPress
- Dica nº 1: Verificar vulnerabilidades de injeção de SQL
- Dica # 2: Atualize, atualize, atualize!
- Dica # 3 Tema e plug-ins para WordPress
- Dica nº 4: use plug-ins de formulário confiáveis
- Dica # 5: Ocultar versão do WordPress
- Dica # 6: Alterar o prefixo do banco de dados
- Dica # 7 Sempre faça backups
Dica # 8: Mantenha registros - Dica # 9: use um firewall
- Dica # 10: Remova a funcionalidade de banco de dados desnecessária
- Faça perguntas frequentes
- Palavras finais!
O que é injeção de SQL?
A injeção de SQL é o resultado de lacunas na codificação do backend. Um invasor pode facilmente abusar dos campos de entrada inserindo código malicioso que pode executar comandos SQL e pode criar, recuperar, atualizar e até mesmo excluir os dados no banco de dados.
SQL é a forma abreviada de Structured Query Language - a linguagem mais amplamente usada para banco de dados no desenvolvimento web. Aqui estão alguns mecanismos de banco de dados mais populares que usam SQL.
Bancos de dados usando SQL
Temos muitos softwares de banco de dados disponíveis no mercado. Os mais populares incluem:
- Oráculo
- MySQL
- servidor SQL
- PostgreSQL
- MongoDB, etc.
Como você pode ver, o MySQL é o segundo da lista. WordPress que usa SQL sozinho contribuiu com mais de 35% da WWW e se tornou o alvo mais atraente para invasores.

Pontos de entrada para ataques de injeção de SQL
Todos os campos de entrada são considerados os pontos de entrada mais comuns para ataques de injeção SQL. Em termos de Layman, podemos dizer:
- Formulários de inscrição
- Formulários de login
- Formulários de contato
- Pesquisas de sites
- Campos de feedback
- Carrinhos de compras
Por que os ataques de injeção de SQL são comuns?
Pode haver vários motivos para isso, mas aqui estão os mais comuns de que me lembro ao escrever o guia.
- A maioria dos bancos de dados de sites são baseados em SQL
- WordPress - o CMS mais usado usa SQL para banco de dados
- Quase todos os sites têm campos de entrada para coletar informações de seus visitantes
- Todos os sites têm pelo menos um dos pontos de entrada de injeção SQL
- As ferramentas de varredura do SQL Injection estão prontamente disponíveis online
- Não requer nenhuma complexidade técnica para explorar
Como funciona a injeção de SQL?
Por exemplo, você tem um formulário de contato onde é necessário inserir um número de telefone. Deve haver certos critérios, como um deve inserir os números limitados apenas com um formato adequado.
A maioria dos desenvolvedores que não conhecem as validações de entrada podem definir este campo como texto simples, o que significa que também se pode inserir qualquer string que possa ser o código malicioso. Ao usar algumas consultas SQL alteradas, pode-se solicitar o nome de usuário e a senha do administrador.
Exemplos de injeção SQL do WordPress
Você pode encontrar muitas vulnerabilidades de injeção SQL com uma simples pesquisa no Google. Mas, hoje, deixe-me compartilhar um exemplo da vida real: basta olhar para a indústria de jogos. Acontece que muitos ataques de injeção de SQL se concentram em videogames, um dos maiores e mais lucrativos setores do mercado.
Além disso, no passado, os hackers também atacaram sites individuais ou blogs, lojas de comércio eletrônico e algumas das maiores empresas.
Está acontecendo há muito tempo, outro exemplo de vulnerabilidade no WordPress relatado em setembro de 2017. O WordPress Core não foi afetado diretamente por esta vulnerabilidade, no entanto, um patch (WordPress 4.8.3) foi lançado para impedir que afete os plug-ins e temas do WordPress .
Anthony Ferrara, o homem por trás da vulnerabilidade acima, escreveu um guia extenso sobre WPBD SQL Injection, como isso pode afetar um site WordPress e as precauções para cada usuário WordPress.
Não existe uma maneira infalível de proteger um site WordPress. Na verdade, até mesmo o plugin de segurança do WordPress foi afetado no passado. Em 2014, um dos plug-ins de segurança mais populares demonstrou DUAS vulnerabilidades que permitiam a injeção de SQL.
Maneiras de prevenir injeção de SQL no WordPress
Como disse anteriormente, não há como se livrar completamente das tentativas de hacking. No entanto, pode-se minimizar o risco de ser hackeado. Aqui estão algumas das práticas mais comuns que podem ajudar a prevenir esses ataques.
Procurando por melhor desempenho e segurança?
Migre seu site WooCommerce para Cloudways a custo zero.
Dica nº 1: Verificar vulnerabilidades de injeção de SQL
Você pode encontrar várias ferramentas online para escanear seu site WordPress. Eu selecionei os mais bem avaliados, onde tudo o que você precisa fazer é apenas inserir a URL do site do WordPress e começar a escanear as vulnerabilidades descobertas.
- WordPress Security Scan - Verifica vulnerabilidades básicas em seu site WordPress. Varreduras avançadas estão disponíveis com uma atualização premium.
- Sucuri SiteCheck - Seu site WordPress pode ser verificado quanto a malware conhecido, status de lista negra, erros e se seu site está desatualizado.
- WPScan - Um scanner de vulnerabilidade auto-hospedado que é gratuito para uso pessoal. Você também pode obter uma licença paga para uso comercial.
Ao executar um relatório de verificação, você pode ver exatamente quais áreas precisam ser focadas para melhorar a segurança do WordPress.
Dica # 2: Atualize, atualize, atualize!
O mais importante para cada usuário do WordPress! Mantenha tudo atualizado, incluindo o núcleo, tema e plug-ins do WordPress.
WordPress Core
De acordo com as estatísticas oficiais do WordPress, apenas 29,3% dos sites do WordPress estão usando a versão mais recente (5.5.x). Todas as versões anteriores podem ser vulneráveis e podem resultar em hackers. No exemplo acima de vulnerabilidade de injeção de SQL, você vê, todos os sites que estão abaixo da versão mais recente são vulneráveis à vulnerabilidade descoberta. Se o seu site foi hackeado, espero que você saiba quem será o responsável!


Versões PHP
O PHP, o backend do WordPress, melhorou muito nos últimos anos. Muitos patches e mudanças orientadas ao desempenho foram feitos. Mesmo assim, mais de 23% dos usuários do WordPress estão usando PHP 7.2, que pode ser um dos fatores para injeção de SQL no WordPress. A última versão do PHP é 7.4
Nota: Se sua hospedagem WordPress não suporta as versões mais recentes de PHP, é hora de mudar o host imediatamente para uma hospedagem WordPress gerenciada que suporta as versões mais recentes de PHP como Cloudways.

Dica # 3 Tema e plug-ins para WordPress
A maioria das vulnerabilidades, incluindo SQL Injection no WordPress, foram descobertas nos plug-ins e temas, não no núcleo do WordPress. Fique de olho nas atualizações, correções e adapte-se de acordo.
Se um tema e um plugin não são atualizados regularmente, isso pode ser um ponto de interrogação em seu site WordPress. Sempre use um tema / plugin que atualiza com freqüência.
Observação: antes de realizar uma atualização, verifique a compatibilidade entre o núcleo, temas e plug-ins do WordPress para ter certeza de que seu site está funcionando como deveria. Para testar, você pode fazer uma cópia do seu site ao vivo e, em seguida, verificar a compatibilidade no ambiente de teste do WordPress.
Dica nº 4: use plug-ins de formulário confiáveis
Se você dirige uma empresa ou até mesmo um blog simples, deve saber a importância de formulários como formulários de registro, formulários de login, formulários de contato, etc. Com uma série de plug-ins disponíveis no repositório do WordPress, é difícil encontrar o melhor. Portanto, para restringir sua pesquisa, compilamos uma lista dos melhores plug-ins de formulários do WordPress.
Nota: Não se esqueça de verificar as vulnerabilidades descobertas anteriormente e sua resolução antes de escolher qualquer plugin.
Dica # 5: Ocultar versão do WordPress
É sempre recomendável não exibir a versão do WordPress publicamente. Ter essas informações disponíveis publicamente pode tornar mais fácil para os invasores explorarem vulnerabilidades conhecidas em uma versão específica.
Para ocultar a versão do WordPress, basta copiar e colar abaixo da linha de código no arquivo functions.php do seu tema ativo.
remove_action ('wp_head', 'wp_generator');
Dica # 6: Alterar o prefixo do banco de dados
Quando você instala o WordPress, por padrão, o prefixo do banco de dados é definido como “ wp_ ”. A maioria dos usuários do WordPress ignora e apenas instala com as configurações padrão. Adivinhar as tabelas do banco de dados se torna mais fácil de explorar usando técnicas de injeção SQL.
Não se preocupe, se você já tem o WordPress instalado. Há um excelente guia sobre como alterar o prefixo do banco de dados no WordPress.
Dica # 7 Sempre faça backups
Os backups podem não estar diretamente relacionados à injeção de SQL. Mas, pode ajudá-lo a recuperar um site invadido. Os backups do WordPress podem ser armazenados de duas maneiras:
- Backup local : o backup gerado automaticamente e / ou manualmente e localizado no seu provedor de hospedagem. Não é recomendável manter um backup local se você estiver com hospedagem compartilhada, uma vez que um servidor seja comprometido você também pode perder os backups. No entanto, se o seu servidor estiver em boas mãos, como o Cloudways, você pode manter backups locais para WordPress.
- Backup externo: backups automatizados e / ou manuais serão gerados e enviados para o local de armazenamento externo desejado, como Google Drive, Dropbox, Amazon S3, etc. Escrevemos um guia extenso para fazer backup de sites WordPress.
Dica # 8: Mantenha registros
Dre Armeda, o cofundador da Sucuri disse uma vez:
As pessoas são e continuarão a ser o maior problema de segurança com o WordPress.
Ou seja, você tem que fazer sua parte. Fique de olho nas mudanças e mantenha um registro de tudo o que está acontecendo no seu site WordPress. Isso o ajudará a rastrear as alterações feitas por Você e / ou um invasor para que possa agir de acordo.
Existe um excelente plugin de registro de auditoria de segurança do WordPress que certamente irá ajudá-lo! Além disso, seu provedor de hospedagem também mantém registros de tudo. Continue lendo os registros ocasionalmente.
Dica # 9: use um firewall
Uma das coisas melhores e importantes é usar um firewall que garanta que os dados do cliente estejam seguros e protegidos. Além disso, você também pode definir o nível de acesso dos usuários com base em diferentes fatores, como o pacote assinado. Se você estiver usando Cloudways, não precisa se preocupar com isso. Todos os servidores hospedados em Cloudways são protegidos por firewalls de nível de sistema operacional que filtram o tráfego malicioso e mantêm os intrusos longe.
Dica # 10: Remova a funcionalidade de banco de dados desnecessária
Uma das técnicas mais eficazes para remover a funcionalidade e o conteúdo desnecessários do banco de dados. O mais vulnerável é a um possível ataque de injeção de SQL. Para evitar isso, normalize seu banco de dados e torne seu site melhor e mais inteligente.
Faça perguntas frequentes
P: O que é SQL Injection?
R: A injeção de SQL é o resultado de lacunas na codificação do back-end. Um invasor pode facilmente abusar dos campos de entrada inserindo código malicioso que pode executar comandos SQL e pode criar, recuperar, atualizar e até mesmo excluir os dados no banco de dados.
P: Qual é o exemplo de injeção de SQL do WordPress?
R: Está acontecendo há muito tempo, outro exemplo de vulnerabilidade no WordPress relatado em setembro de 2017. O WordPress Core não foi afetado diretamente por esta vulnerabilidade, no entanto, um patch (WordPress 4.8.3) foi lançado para evitar que afete os plug-ins do WordPress e temas.
P: O que uma injeção de SQL faz?
R: SQL Injection foi a técnica de hacking mais básica e amplamente usada para manipular o banco de dados WordPress. Hoje em dia, Cross Site Scripting (XSS) é popular e se tornou o método número um para hackear um site WordPress.
Palavras finais!
Como disse anteriormente, não existe uma maneira infalível de proteger um site WordPress. Sempre há a possibilidade de ser hackeado, isso pode ser devido à vulnerabilidade no núcleo, tema e plug-ins. É por isso que é sempre sugerido estar ATUALIZADO! O SQL Injection tem sido muito controlado nos últimos anos.
Se você já enfrentou qualquer tipo de ataque de injeção de SQL do WordPress, compartilhe sua experiência e também como se livrar dela. Tenho certeza de que ajudaria outros usuários do WordPress.
