4 de setembro de 2023 - Frederico Marinho

Admin do Prestashop 1.7 entra em loop no login

Enfrentamos um desafio enjoado recentemente que foi resolver um problema de loop ao tentar logar no admin do Prestashop de um cliente, versão 1.7. Ao acessar a tela de login e tentar logar, voltava para a tela de login novamente.

De cara já imaginamos que fosse algum tipo de invasão, e estávamos certos: depois de identificar um script que corrigia o problema, identificamos também os arquivos alterados.

Um jeito simples de resolver o problema é restaurar algum backup recente, antes da invasão, mas nem sempre isso é possível e nem sempre é a melhor solução.

Vamos então para a forma que encontramos sem restaurar backup.

Script Cleaner

Encontramos um conteúdo em francês explicando o funcionamento do script Cleaner, que limpa arquivos infectados no Prestashop. Esse tópico especificamente foi criado para Prestashop 1.6 mas funcionou perfeitamente no 1.7.

Pra facilitar, encontramos outro conteúdo em inglês explicando detalhes do funcionamento do script e outros métodos de prevenção de invasões. Esse aqui: https://www.mediacom87.fr/en/how-to-prevent-hacking-on-prestashop-and-thirty-bees/.

O problema é que somente rodar o script não resolveu, aliás, resolve e você consegue logar no admin, mas é só sair e tentar entrar de novo que não funciona. Os arquivos são infectados novamente.

A solução

Fizemos um truque baseado nas instruções que é rodar o script Cleaner e depois substituir todos os arquivos identificados como infectados pelos arquivos originais de uma instalação na mesma versão.

  1. Fazer download do script aqui: https://devcustom.net/public/scripts/cleaner.zip

Caso esse link acima pare de funcionar, use nosso link: https://www.fredericomarinho.com/cleaner.zip

  1. Jogar o arquivo cleaner.php na raiz do site.
  2. Acessar o arquivo cleaner.php pelo browser: http://www.seusite.com.br/cleaner.php
  3. Substituir os arquivos que o script identificar como infectados pelo originais da instalação na mesma versão que a sua loja. No nosso caso, foram:
    • controllers/AdminLoginController.php
    • js/admin/*
  • No topo esquerdo do admin você identifica a versão do seu prestashop:
Identificar versão do Prestashop

————

Conta pra gente nos comentários se funcionou pra você!

0

Em campo

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *