Falha no IIS permite executar qualquer extensão como ASP

O site Secunia divulgou uma falha no IIS descoberta por Soroush Dalili que pode ser explorado por pessoas maliciosas para potencialmente ignorar certas restrições de segurança e comprometer um sistema vulnerável.

A vulnerabilidade é causada devido ao servidor web interpretar de forma incorreta a execução de scripts em ASP. Por exemplo, incluindo em um arquivo com várias extensões separadas por “;”, mas executando como se fosse “. Asp” (por exemplo “file.asp;.Jpg”). Essa falha pode ser explorada em sites que permite o envio de imagens, onde você envia uma foto foto.asp;.jpg, e se o explorador conhecer o caminho das imagens, consegue executar um script ASP malicioso (existem vários na internet), por exemplo: http://www.site.com.br/foto.asp;.jpg. O IIS irá executar o .jpg usando a DLL do ASP (asp.dll).

Existem maneiras de se proteger que Soroush Dalili sugere:

  • Remover o “Executar” do diretório das imagens;
  • Usar sequência aleatória no nomes dos arquivos que são feitos upload e definir sua extensão pelo próprio aplicativo Web (utilizando switch?case ou select?case) e nunca aceitar que o usuário defina o nome do arquivo;
  • Restringir o upload de arquivos para os usuários confiáveis.

A Microsoft ainda não se pronunciou, assim que sair algum patch ou informação eu posto aqui.

Esta entrada foi publicada em IIS. Adicione o link permanente aos seus favoritos.

3 respostas a Falha no IIS permite executar qualquer extensão como ASP

  1. Rafael Pazio disse:

    Olá Pablo.

    Uma opção também, é validar o mime type do arquivo ao ser feito o upload. Normalmente nunca se faz essa validação, somente se faz através da extensão, o q quando muda a extensão, tem um problema. Com essa validação seria impossível enviar um arquivo .ASP com uma extensão .JPG.

    Abraço.

  2. admin disse:

    Fica outra excelente dica do Rafael.

  3. Ramon Durães disse:

    Simples. Nunca grave localmente como “.asp”. E como citado defina o nome
    do arquivo com uma GUID.
    [],

Deixe uma resposta

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