Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

NetHand Soluções Web

site invadido

Recommended Posts

Bom dia pessoal...

recentemente o site de um cliente vem sendo invadido frequentemente, sempre pelo mesmo grupo...

 

aparentemente o acesso é feito pelo proprio gereciador, pois já foram modificadas notícias, fotos, destaques etc..

 

gostaria de pedir a ajuda de vocês para analizar este código de login, para saber se há alguma brecha..

 

segue o código:

 

If request.QueryString("action") = "CheckUser" Then

login = request.Form("login")
login = replace(login,"'","''")
login = replace(login,"#","''")
login = replace(login,"$","''")
login = replace(login,"%","''")
login = replace(login,"¨","''")
login = replace(login,"&","''")
login = replace(login,"'or'1'='1'","''")
login = replace(login,"--","''")
login = replace(login,"insert","''")
login = replace(login,"drop","''")
login = replace(login,"delet","''")
login = replace(login,"xp_","''")
login = replace(login,"select","''")
login = replace(login,"*","''")

senha = request.Form("senha")
senha = replace(senha,"'","''")
senha = replace(senha,"#","''")
senha = replace(senha,"$","''")
senha = replace(senha,"%","''")
senha = replace(senha,"¨","''")
senha = replace(senha,"&","''")
senha = replace(senha,"'or'1'='1'","''")
senha = replace(senha,"--","''")
senha = replace(senha,"insert","''")
senha = replace(senha,"drop","''")
senha = replace(senha,"delet","''")
senha = replace(senha,"xp_","''")
senha = replace(senha,"select","''")
senha = replace(senha,"*","''")

  Set RS = Server.CreateObject("ADODB.Recordset")
  RS.Open "SELECT * FROM tb_administradores WHERE email = '"& login &"' AND senha = '"& senha &"'", CX, 1, 3

  If RS.BOF Then 
  	Session("grav_email") = login
response.Redirect("default.asp?session=login&msg=E-mail ou senha não correspondem!")
else
  dbLogin = RS.Fields("email")
  dbSenha = RS.Fields("senha")
  nome = RS.Fields("nome")
  id = RS.Fields("id")
  End if

  Session("logUser") = "true"
  Session("login") = dbLogin
  Session("nome_user") = nome
  Session("id_user") = id
  Session.Timeout = 960

  	Session("grav_email") = ""
response.Redirect("default.asp?session=admin")

  Set RS = Nothing
End if

 

 

desde já obrigado a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código acima faz o básico, mas não é garantido 100%. Remova qualquer tipo de carácter especial do login. Não precisa nem fazer isso tudo, se o login pode usar somente letras e números, então valide utilizando expressão regular que só permite letras e números.

 

- Já pensou em utilizar Captcha no formulário de login?

 

- Os clientes já alteraram a senha dos usuários?

 

- Já pensou em mudar o nome da pasta onde está localizado os arquivos da administração do site?

 

- Todas as páginas internas estão bem protegidas?

Por exemplo, já vi um gerenciador que apesar de ter o login ao entrar, mesmo sem estar logado era possível acessar qualquer uma das páginas internas, caso soubesse qual era o endereço delas. E o endereço ficava gravado no navegador durante a navegação, logo qualquer um que utilizasse o navegador, teria acesso as páginas internas.

 

Instrua seus clientes a não acessarem o gerenciador do site em locais públicos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.