A maior ameaça é que um invasor possa aproveitar uma vulnerabilidade como; passagem de diretório ou usando SQL Injection para chamar
load_file()
para ler o nome de usuário/senha em texto simples no arquivo de configuração e, em seguida, faça o login usando phpmyadmin ou pela porta tcp 3306. Como pentester, usei esse padrão de ataque para comprometer um sistema. Aqui está uma ótima maneira de bloquear o phpmyadmin:
- O PhpMyAdmin não tem proteção forte contra força bruta, então você deve usar uma senha longa gerada aleatoriamente.
- NÃO PERMITIR LOGINS ROOT REMOTOS! Em vez disso, o phpmyadmin pode ser configurado para usar "Cookie Auth"
para limitar qual usuário pode acessar o sistema. Se você precisar de alguns privilégios de root, crie uma conta personalizada que possa adicionar/descartar/criar, mas não tenha
grant
oufile_priv
. - Remover
file_priv
permissões de cada conta.file_priv
é um dos privilégios mais perigosos no MySQL porque permite que um invasor leia arquivos ou faça upload de um backdoor. - Endereço IP da lista de permissões que têm acesso à interface do phpmyadmin. Aqui está um exemplo de reulset .htaccess:
Order deny,allow Deny from all allow from 199.166.210.1
-
Não tenha um local de arquivo previsível como:http://127.0.0.1/phpmyadmin
. Scanners de vulnerabilidade como Nessus/Nikto/Acunetix/w3af irão verificar isso.
-
Firewall fora da porta TCP 3306 para que ela não possa ser acessada por um invasor.
-
Use HTTPS, caso contrário, dados e senhas podem vazar para um invasor. Se você não quiser desembolsar os US $ 30 por um certificado, use um autoassinado. Você o aceitará uma vez e, mesmo que tenha sido alterado devido a um MITM, você será notificado.