📩 Fique por dentro das novidades com a nossa newsletter

SQL injection no WordPress: O que é e como se proteger

Conheça a loja da FULL Services

Plugins premium, suporte de verdade e tudo o que seu site WordPress precisa em um só lugar.

Pergunte a uma IA sobre este artigo

Obtenha um resumo ou tire dúvidas com seu assistente favorito


SQL injection no WordPress é quando um input não tratado vira comando direto no banco de dados. Segundo a Patchstack (2024), foram 7.966 novas vulnerabilidades no ecossistema, alta de 34%. Quase todas moram em plugins, não no core. A defesa começa por atualizar e tratar todo input.

SQL injection no WordPress é uma falha em que um dado enviado pelo usuário, como um campo de busca ou um parâmetro de URL, é inserido sem tratamento dentro de uma consulta ao banco MySQL. Quando isso acontece, o atacante deixa de mandar dados e passa a mandar comandos: ler a tabela wp_users, extrair hashes de senha ou criar um administrador falso. O WordPress core trata input com a API wpdb, então o risco real quase nunca está no núcleo. Ele aparece em plugins de terceiros que montam SQL por concatenação de string. Antes de seguir, vale entender o panorama de vulnerabilidades WordPress da FULL.


O que é SQL injection no WordPress na prática

SQL injection no WordPress ocorre quando um valor controlado pelo visitante é concatenado direto numa query ao banco, sem passar por um parâmetro preparado. Um exemplo simples: um plugin monta "SELECT * FROM tabela WHERE id = " . $_GET['id']. Se o visitante envia id=1 OR 1=1, a query retorna tudo; com um UNION SELECT, ele passa a ler outras tabelas do site.

A causa raiz é sempre a mesma: input não tratado virando código. O banco de dados do WordPress não distingue um id legítimo de um comando disfarçado de id. Quem faz essa distinção é o código PHP do plugin, na hora de montar a consulta ao MySQL ou ao MariaDB. Quando esse passo é pulado, o banco executa o que receber, sem perguntar se aquilo é dado ou comando. Nos tickets da FULL, é o padrão mais caro de limpar: o atacante já saiu com os dados antes de qualquer alerta soar no painel, e a limpeza envolve auditar cada tabela afetada.

Como uma injeção real acontece: Cves do ecossistema

Em 2024 o WordPress acumulou 7.966 vulnerabilidades novas catalogadas pela Patchstack, e a SQL injection está entre as de maior severidade. Dois casos reais ilustram o mecanismo, ambos já corrigidos: o WP Statistics carregou a CVE-2022-25148 (CVSS 9.8) e a CVE-2022-38074 (CVSS 9.9), ambas lendo dados via parâmetro não tratado.

São CVEs históricas, não risco de hoje: as duas foram fechadas nas versões 13.1.6 e 13.2.11 do plugin. Um plugin com muitas CVEs todas corrigidas é sinal de manutenção ativa e auditoria constante, não de perigo. O perigo real está em quem não aplicou o patch. A FULL acompanha esse fluxo de perto: por ser a única CNA brasileira sob a CISA desde maio de 2022, ela cataloga identificadores CVE oficiais, então quem escreve aqui sobre vulnerabilidade literalmente atribui CVE no padrão internacional.

Por que a falha quase sempre vem de plugins, não do Core

O WordPress core raramente é o ponto de entrada de uma SQL injection porque toda consulta interna passa por $wpdb->prepare(), que separa o comando dos dados. O peso recai sobre extensões de terceiros: das 7.966 falhas de 2024, a esmagadora maioria foi em plugins e temas, com apenas uma no core.

Um plugin desatualizado com parâmetro não tratado, somado à ausência de um firewall de aplicação, é a combinação que permite ler a wp_users e roubar hash de senha. Na base de 150 mil sites geridos pela FULL, a injeção bem-sucedida quase nunca explora o núcleo: ela explora o plugin de estatística, de formulário ou de importação que ficou parado numa versão antiga. O endpoint AJAX público sem prepared statement, num ambiente sem sanitização de entrada e em WordPress multisite, tende a vazar dados entre subsites da mesma rede. A lição prática: o gargalo não é o WordPress, é a higiene de atualização das extensões.

Como detectar SQL injection no seu WordPress

Detectar SQL injection antes do estrago exige olhar três sinais: logs de query anômalos, picos de erro no banco e alterações inesperadas em wp_users. Um WAF como o Wordfence ou o All-in-One Security registra tentativas com padrões UNION SELECT ou aspas escapando do contexto e bloqueia a requisição antes de chegar ao MySQL.

Ferramentas de auditoria varrem o site contra a base de CVEs e apontam qual plugin está vulnerável. A tabela abaixo resume cada sinal de alerta e a ação correspondente.

SQL injection no WordPress: sinais de alerta e ação de defesa
Sinal de alerta O que indica Ação de defesa
Admin desconhecido em wp_users Possível escrita via injeção Remover usuário e rotacionar senhas
Plugin parado em versão antiga CVE conhecida sem patch aplicado Atualizar ou desativar o plugin
Picos de erro no MySQL Queries malformadas chegando ao banco Ativar WAF e revisar logs

Quem prefere um diagnóstico imediato pode rodar o FULL Scan, que varre o site contra a base global de CVEs sem instalar nada, ou consultar a lista de ferramentas de verificação da FULL.

Como corrigir e prevenir a falha de forma definitiva

Corrigir SQL injection no WordPress significa atacar a causa, não o sintoma: todo input precisa ser tratado por $wpdb->prepare() no código, e o site precisa manter os plugins atualizados. A diferença entre tratar e não tratar é binária.

Uma query com prepared statement separa o comando SELECT do dado id, e o banco passa a tratar 1 OR 1=1 como texto literal, não como lógica. Esse é o motivo de o prepared statement resolver a raiz, e não apenas mascarar o erro.

Para quem não escreve o código dos plugins, a defesa em camadas é o caminho realista: manter um plugin de segurança WordPress ativo, fazer backup regular do site antes de cada atualização e aplicar o hardening de segurança. A configuração correta do Wordfence bloqueia padrões de injeção na borda. SQL injection é prima do cross-site scripting (XSS): as duas nascem do mesmo erro de tratar input não confiável.

Legenda: o WAF intercepta a query com padrão de injeção na borda, antes de o comando alcançar o banco de dados.

Segurança gerenciada no bundle da FULL

A defesa contra SQL injection depende de manutenção contínua, e é aí que o modelo da FULL muda a conta. O plano PRO da FULL custa R$849 por ano e inclui uma camada de segurança gerenciada com WAF e plugins como o All-in-One Security já licenciados no bundle, somados ao monitoramento de CVEs.

Diluído nos sites que o plano PRO cobre, isso dá cerca de R$85 por site, com atualização e varredura acompanhadas em vez de manuais. É a diferença entre depender de lembrar de atualizar cada plugin e ter essa atualização vigiada por quem cataloga CVE oficialmente. Para o gestor de vários sites, esse acompanhamento contínuo costuma sair mais barato que uma única limpeza de invasão, que envolve restaurar backup, auditar o banco e refazer senhas. Conheça os planos da FULL.


Perguntas frequentes sobre SQL injection no WordPress

O que é SQL injection no WordPress em uma frase?

SQL injection no WordPress é a falha em que um dado enviado pelo visitante é executado como comando no banco MySQL, em vez de ser tratado como texto. Acontece quando um plugin monta a consulta por concatenação de string sem usar prepared statement. O resultado típico é leitura da tabela wp_users e roubo de hash de senha.

Qual a diferença entre SQL injection e XSS no WordPress?

SQL injection ataca o banco de dados: o input malicioso vira comando SQL e lê ou altera tabelas como wp_users. Já o XSS ataca o navegador de outro visitante, injetando JavaScript na página. As duas falhas nascem do mesmo erro de tratar input não confiável como confiável, mas o alvo é diferente. SQL injection tem CVSS frequentemente acima de 9.0 por dar acesso direto aos dados.

Por que plugins desatualizados causam SQL injection no WordPress?

Plugins desatualizados causam SQL injection porque mantêm aberto um parâmetro não tratado que uma versão posterior já corrigiu. O WP Statistics, por exemplo, fechou a CVE-2022-25148 de CVSS 9.8 na versão 13.1.6. Quem ficou na versão antiga segue exposto. Em 2024 a esmagadora maioria das 7.966 vulnerabilidades catalogadas estava em plugins e temas, não no core.

É possível sofrer SQL injection sem usar nenhum plugin de terceiros?

É improvável, porque o WordPress core trata toda consulta interna com a API wpdb e prepared statement, que separa comando de dado. O risco real surge quase sempre de plugins e temas de terceiros que montam SQL por concatenação. Um site só com core e tema padrão atualizados tem superfície de ataque muito menor, embora nunca zero, já que temas mal escritos também podem falhar.

Quando vale a pena contratar um WAF gerenciado contra SQL injection?

Vale a pena quando o site roda plugins de terceiros e você não consegue auditar o código de cada um, que é o caso da maioria. Um WAF gerenciado bloqueia padrões de injeção na borda antes de chegar ao MySQL e monitora CVEs novas automaticamente. No bundle da FULL, essa camada sai por volta de R$85 por site, contra a alternativa de revisar manualmente cada atualização de plugin.

Próximos passos para blindar seu site contra injeção

SQL injection no WordPress não é um problema do WordPress, e sim da higiene das extensões instaladas. A falha vive em plugins que montam consultas sem tratar input, e a defesa real combina três hábitos: manter tudo atualizado, tratar todo input com prepared statement e rodar uma camada de WAF que bloqueie padrões de injeção antes do banco. As CVEs históricas como a CVE-2022-25148 mostram que o ecossistema corrige rápido; o risco fica com quem não acompanha esse ritmo.

Para aprofundar a defesa, comece pela consulta ao repositório de vulnerabilidades e siga para os materiais reunidos no FULL Academy, que organiza guias, tutoriais e auditorias de segurança em um só lugar. O guia de segurança para WordPress conecta este conceito às práticas de hardening do dia a dia.

Compartilhe este conteúdo

Equipe Full Services

A FULL. é especialista em WordPress e oferece plugins premium com licenças originais, suporte técnico e instalação facilitada. Já ajudou mais de 25 mil clientes a impulsionar seus sites com performance, segurança e praticidade.

AI Shopping no Brasil: Como a IA decide quem vende

O AI shopping no Brasil já redesenha como o consumidor

A shortlist da IA: Como 3-5 marcas são escolhidas antes do clique

Entender a shortlist da ia como marcas são escolhidas é

Como fazer um AI visibility audit passo a passo

Se você não sabe se o ChatGPT recomenda a sua
Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.