Se um hacker alterou o blog_charset para UTF-7, isso torna o WordPress vulnerável a novos ataques?

19

Eu tive um cliente que foi hackeado recentemente e notei que havia caracteres estranhos aparecendo no site dela, como  e Æ. Acontece que os hackers alteraram o blog_charset para UTF-7 na wp_optionstabela no banco de dados. Voltei a configurá-lo para UTF-8, mas fiquei imaginando se, durante o período em que foi definido como UTF-7, isso poderia criar alguma vulnerabilidade de segurança?

Pesquisei e descobri que havia uma vulnerabilidade UTF-7 do WordPress que foi corrigida na versão 2.0.6 . Estamos executando a versão mais recente do WordPress, então eles não poderiam ter usado essa exploração, mas existem outras explorações relacionadas ao UTF-7? Realmente, há alguma razão para os hackers mudarem o blog_charset, além de ser uma dor? Eu tenho tentado determinar como eles entraram e eu estou querendo saber se isso está conectado de alguma forma.

Jennette
fonte

Respostas:

23

<e >são codificados como +ADw-e +AD4-em UTF-7 . Agora imagine o seguinte:

  1. Alguém envia +ADw-script+AD4-alert(+ACI-Hello+ACI-)+ADw-/script+AD4-como texto de comentário. Passará por todo o saneamento sem escape.

  2. O banco de dados espera e trata todos os dados recebidos como UTF-8. Como todos os fluxos UTF-7 também são válidos UTF-8, isso nunca resultará em um erro SQL e mysql_real_escapenem htmlspecialcharso tocará.

  3. WordPress envia um cabeçalho text/html;charset=utf-7.

  4. O WordPress exibe o comentário, esperando dados escapados. Mas, como isso é tratado como UTF-7 pelo navegador, o JavaScript será executado.

Então, sim, é um problema de segurança.

O UTF-7 não é suportado por todos os navegadores; a maioria renderiza o texto como Windows-1252 (ou qualquer que seja a codificação padrão no sistema operacional) ou como UTF-8. O principal problema é: escapar não funcionará mais.


Apenas alterar o valor da codificação de volta não é uma solução. Um visitante regular nunca pode alterá-lo, então você precisa encontrar a porta aberta.

fuxia
fonte
Obrigado! Vou cruzar meus dedos para que a correção dessa entrada no banco de dados tenha fechado a brecha na segurança.
Jennette
Não se preocupe, eu já havia tomado várias ações para fechar as falhas de segurança. Eu simplesmente não conseguia descobrir como eles ainda estavam entrando. Nada parece ter sido hackeado nos últimos dias, por isso, espero que a alteração da codificação de volta para UTF-8 tenha sido o passo final para fechar todos os buracos.
21912 Jennette