Se um hacker mudou 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 personagens estranhos aparecendo em seu site, como  e Æ. Acontece que os hackers mudaram o blog_charset para UTF-7 na tabela wp_options no banco de dados. Eu o configurei de volta para UTF-8, mas fiquei me perguntando se durante o tempo em que foi definido como UTF-7, isso poderia criar alguma vulnerabilidade de segurança?

Eu fiz algumas pesquisas e descobri que costumava haver uma vulnerabilidade WordPress UTF-7 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 há outras explorações relacionadas ao UTF-7? Realmente, existe 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á ligado de alguma forma.

    
por Jennette 24.12.2012 / 03:28

2 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. Ele vai passar 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 para UTF-8, isso nunca resultará em erro de SQL e mysql_real_escape ou htmlspecialchars não tocarão nele.

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

  4. WordPress exibe o comentário, esperando dados com escape. 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 em seu sistema operacional) ou como UTF-8. O principal problema é: escapar não funcionará mais.

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

    
por fuxia 24.12.2012 / 03:59
0

Além disso, pode ser necessário (reconverter todas as codificações de suas tabelas): enlace

    
por tfont 10.02.2017 / 16:28