50 tons de segurança Drupal

  1. Para o hash de senha, é usada uma versão modificada do phpass , da qual eles renegaram no site oficial. Mas eles não têm pressa em mudar o mecanismo [# 1845004] .
  2. Eles nem desejam fornecer a opção de escolher um mecanismo de hash [# 2939888] .
  3. O número de iterações para persistência de hash não foi atualizado por mais de 7 anos [# 1850638] , embora se esperasse que as iterações aumentassem pelo menos 2 anos [# 1203852] .
  4. Ao usar o PostgreSQL, os hashes de senha são comparados sem distinção entre maiúsculas e minúsculas [# 2475539] .
  5. O PostgreSQL também possui problemas de suporte a SSL [# 850600] .
  6. A versão mínima permitida do PostgreSQL 9.2, que tem estado sem suporte de segurança [# 2846994] .
  7. A assembléia oficial do Drupal contém versões desatualizadas das bibliotecas de fornecedores (devido à compatibilidade com o PHP 5.5). Alguns deles, por exemplo, Zend, até têm vulnerabilidades conhecidas [# 2989631] .
  8. Também estão na montagem todos os testes, módulos de teste, tópicos de teste e bibliotecas de fornecedores para teste, o que aumenta não apenas o tamanho do arquivo morto , mas também a área de possíveis lacunas [# 2338671] .
  9. A idéia de mover arquivos executáveis ​​para fora do site [# 1672986] também foi interrompida .
  10. A verificação de atualizações é implementada usando solicitações GET usando um protocolo HTTP inseguro [# 1538118] . Durante um ataque do MITM, você pode desativar todos os links para os arquivos do módulo (os valores de domínio e hash não são verificados). Você também pode coletar informações sobre a composição do site, a lista de desenvolvedores e suas atividades (solicitações de versões locais de sites coincidirão com ip e contas no d.org). O protocolo HTTP permite que você coloque um script para coletar informações fora do drupal.org.
  11. Um usuário com id = 1 é o objeto mais saboroso para atacar, porque ele sempre tem todas as permissões existentes no site e também tem todas as tentativas de retirar esses direitos [# 540008] .
  12. Esse comportamento não é totalmente óbvio, porque visualmente no painel de administração esse usuário não é diferente dos outros. Mas mesmo uma tentativa de destacar esse recurso terminou em nada [# 572240] .
  13. Qualquer administrador ou outro usuário com os direitos necessários pode assumir o controle desse usuário divino com id = 1 [# 39636] .
  14. Certos direitos implicitamente dão controle sobre o site inteiro, mas também não se destacam de forma alguma [# 2846365] , [# 594412] .
  15. Alguns direitos podem ser enganosos, mesmo pelo nome. Por exemplo, o direito de visualizar os logs permite que você os exclua [# 1635646] .
  16. A restauração da ordem nas permissões tem sido uma tarefa urgente, mas é simplesmente ignorada [# 2628870] , [# 2667018] .
  17. O administrador não pode excluir o objeto de arquivo baixado por outro usuário, não importa quão malicioso ele seja [# 2949017] .
  18. O gancho hook_file_download não usa o controlador apropriado durante a validação [# 2148353] .
  19. A validação de arquivos no lado do cliente não funciona [# 2938441] .
  20. Verificações fracas ao carregar arquivos arbitrários [# 2543590] , para não mencionar todos os tipos de colas RarJpeg.
  21. Algumas verificações de arquivo contam apenas com a regra .htaccess [# 2829048] .
  22. O .Htaccess possui outras regras de segurança que são perdidas implicitamente ao alternar para outro ambiente (especialmente o Nginx), mas a implementação das regras web.config semelhantes foi interrompida [# 154339] , [# 2669870] .
  23. Por padrão, em qualquer site com Drupal 8, você pode fazer upload de imagens com uma solicitação POST simples, consistindo no nome do formulário de registro e no campo de avatar do usuário. Vale ressaltar que no Drupal 7 a saída desse campo foi rejeitada por padrão [# 31056] , mas esses dias acabaram.
  24. Ao carregar um arquivo com o mesmo nome várias vezes, surge um problema relacionado à implementação do algoritmo para gerar nomes de arquivo exclusivos [# 2684403] .
  25. A filtragem de endereço de imagem também é ruim. Portanto, você pode desconectar usuários com uma imagem com src = '/ user / logout' [# 144538] ou implementar um ataque do DOS colocando algumas centenas de fotos com src = 'very / hard / page'.
  26. Outra maneira de economizar recursos é carregar imagens de 1000 x 1 em campos processados ​​usando o efeito "Escala e corte" [# 2931533] , [# 872206] .
  27. Você pode simplesmente preencher o banco de dados com o cache de lixo, classificando os URLs [# 1245482] , embora o sistema de armazenamento em cache retire perfeitamente todos os recursos para armazenar resultados que seriam mais rápidos mesmo do zero [# 2888838] .
  28. Você pode carregar o site e preencher os logs com mensagens de erro usando solicitações especiais para links contextuais [# 2864933] .
  29. O acesso aos arquivos e imagens anexados está sempre lá, independentemente do acesso ao conteúdo [# 2904842] .
  30. Comentários sobre o conteúdo também permanecerão disponíveis quando o acesso ao conteúdo for negado [# 1781766] .
  31. Você pode descobrir se pode usar o Zaregan no site pela mensagem para recuperação de senha [# 1521996] .
  32. O formulário de redefinição de senha não está protegido contra inundações [# 1681832] .
  33. Ao criar e verificar senhas, sem nenhum aviso, todos os caracteres de espaço em branco ("\ t \ n \ r \ 0 \ x0B") ao redor de [# 1921576] são excluídos . Isso pode ser uma surpresa para o usuário e um pequeno alívio para o algoritmo de pesquisa.
  34. Se você não tiver a oportunidade de obter um hash de senha para força bruta, mas houver uma sessão do usuário, poderá alterar a senha sem restrições através da própria conta, por exemplo, alterando a caixa de correio [# 2339399] .
  35. A propósito, se isso, o usuário nem sabe que sua caixa foi alterada, pois a tentativa de implementar esse recurso está parada há vários anos [# 85494] .
  36. O algoritmo de geração de sessões também é mais ou menos [# 2238561] .
  37. Os cookies fluem entre sites localizados em subpastas [# 2515054] .
  38. Em alguns casos, você pode bloquear usuários manipulando solicitações para entrada incorreta de senha [# 2449335] .
  39. O acesso à edição de modelos do Twig permite que você obtenha controle ilimitado sobre o site [# 2860607] .
  40. O ataque XSS através dos atributos Twig [# 2567743] , [# 2552837] , [# 2544110] é teimosamente ignorado .
  41. Você também pode incorporar o XSS nos arquivos de informações. Por exemplo, através dos campos de descrição ou pacote, que podem ser interessantes para explorar por meio de recursos [# 846430] .
  42. O cabeçalho de segurança X-XSS-Protection [# 2868150] não é usado.
  43. O XSS também pode ser enviado através do método de redirecionamento de classe PlainTextOutput, embora o nome da classe diga o contrário [# 2896735] .
  44. Também pode ser uma surpresa que alguns métodos verifiquem e armazenem em cache os direitos de acesso do usuário atual, e não o que foi transferido para eles [# 2628870] , [# 2266809] .
  45. Devido a configurações incorretas de cache, você pode impossibilitar o usuário de ver seu próprio perfil [# 2614230] . Um truque semelhante pode ser feito com determinadas configurações, tanto com o conteúdo [# 2982770] quanto com a mídia [# 2889855] .
  46. As estatísticas das visualizações de material podem ser facilmente manipuladas através do loop for usual no console do navegador, gerando milhares de visualizações por minuto, mesmo se você não tiver acesso ao próprio material. Você pode acabar com os materiais ainda não existentes [# 2616330] .
  47. Validação esfarrapada de URLs externos [# 2691099] , [# 2652236] .
  48. Não há proteção completa contra breachattack.com [# 2234243] .
  49. Se você configurar a Política de segurança de conteúdo, o editor de conteúdo será desativado [# 2789139] .
  50. Esta é uma seleção amadora, sem reivindicar nada. Talvez alguém conheça piores buracos? De 30/01/2019 a 15/10/2020, é válida uma recompensa do orçamento da UE de 89.000,00 €. Você pode tentar consertar alguma coisa. Mas se não der certo, não se desespere, as maneiras deste projeto são treinadas para habilmente manobrar entre tarefas, a fim de manter o Drupal em um lugar por anos.

Source: https://habr.com/ru/post/pt437820/


All Articles