2021 OWASP TOP 5: Erros de configuração de segurança

Em aplicativos da Web, problemas de segurança causados ​​por erros de configuração de segurança são comuns.As configurações de segurança comuns são problemas de segurança de configuração do Apache, problemas de segurança de configuração do Nginx e problemas de segurança de configuração do Tomcat. Aqui descrevemos brevemente os problemas de configuração desses três softwares de servidor.

insira a descrição da imagem aqui

1. Problemas de configuração de segurança do Apache

O arquivo de configuração do Apache é chamado httpd.conf Antes de iniciarmos nossa própria aplicação web, primeiro precisamos modificar sua configuração.

Se quisermos que o Apache o analise com x-httpd-php quando encontrar um arquivo de página com a extensão PHP, podemos adicionar o código AddHandler application/x-httpd-php .php ao arquivo de configuração

insira a descrição da imagem aqui

Antes de uma análise aprofundada, precisamos entender um recurso básico do Apache, ou seja, o Apache permite que os arquivos tenham vários sufixos e suporta a execução de diferentes programas de análise para diferentes sufixos. Quando configuramos as opções acima, se nosso sufixo de arquivo contiver o sufixo l.php, o apache chamará o programa de análise do PHP para analisar o arquivo.

Aqui usamos o campo de tiro como exemplo:

Primeiro carregue test.test.php.xyz.jpg, o conteúdo do arquivo é:<?php phpinfo();?>

De acordo com a lógica normal, devemos mostrar o resultado de um de nossos formatos de imagem.

Mas neste momento nós modificamos o conteúdo do arquivo de configuração do apache e adicionamos: AddHandler application/x-httpd-php .php. Em seguida, reinicie o serviço Apache2.

Em seguida, visite o arquivo que enviamos e o conteúdo da resposta obtido é o seguinte:

insira a descrição da imagem aqui

Aqui você pode ver que o código PHP malicioso que carregamos foi executado. Neste ponto, o aplicativo da web não é mais seguro.

Pode-se ver que, se nosso gerenciador de aplicativos da Web configurar essa opção, nosso invasor poderá usar essa configuração para ignorar o limite de upload e obter shell.

2. Problemas de configuração de segurança do Nginx

Nginx é um servidor web HTTP e proxy reverso de alto desempenho, podemos executá-lo em Unix e Linux. É amplamente utilizado, perdendo apenas para o software de servidor web do apache, e sua taxa de utilização está aumentando ano a ano, e tende a alcançar o apache.

Quando nosso nginx não está configurado corretamente, também causará problemas de segurança.

O código a seguir é um arquivo de configuração para um host virtual do Nginx:

server {
    
    
       listen 8080;
       root /usr/share/nginx/html;
       index index.html;
       server_name _;
       location / {
    
    
       return 302 https://$host$uri;
   }
}

Neste arquivo de configuração do Nginx, a configuração problemática está na última linha, só precisamos prestar atenção nesta parte:

return 302 https://$host$uri;

$host pode ser simplesmente entendido como as informações do host na solicitação original, enquanto $uri é a chave para questões de segurança e representa o caminho de solicitação decodificado na solicitação. Se o invasor definir as informações de URL solicitadas da seguinte maneira:

http://ip:port/%0a%0dSet-Cookie:%20a=test

Nesta URL, %0a é CR após a decodificação, %0d é LF após a decodificação e %20 corresponde a um espaço após a decodificação. Portanto, quando o Nginx decodificar $uri, ele decodificará %0a%0d em CRLF, o que fará com que a mensagem HTTP seja agrupada e, em seguida, iniciará uma solicitação Set-Cookie, que é o efeito da injeção de CRLF.

Vamos fazer um teste, acesse 127.0.0.1:8080/%0a%0dSet-Cookie:%20a=test, e veja que salta para https, mas o conteúdo do nosso Set-cookie é encontrado na resposta, indicando nossa CRLF Injection foi um sucesso.

insira a descrição da imagem aqui

3. Problemas de configuração de segurança do Tomcat

O servidor Tomcat é um servidor de aplicativos da Web gratuito e de código aberto, que é um servidor de aplicativos leve e é comumente usado em sistemas de pequeno e médio porte e em ocasiões em que não há muitos usuários de acesso simultâneo. Na verdade, o Tomcat é uma extensão do servidor Apache, mas é executado de forma independente no tempo de execução; portanto, quando você executa o Tomcat, ele é executado como um processo separado do Apache.

Há um problema de configuração de segurança bem conhecido no Tomcat, que é CVE-2017-12615. O problema específico é que, quando o Tomcat está sendo executado em um host do Windows e DefaultServlet readonly é definido como false no arquivo de configuração conf/web.xml, então, se ele ativar o método de solicitação HTTP PUT, levará à segurança da gravação arbitrária do arquivo ocorre o problema. Isso é um pouco semelhante à vulnerabilidade de upload IIS PUT.

Aqui chegamos ao teste real, ligue nossa máquina de destino, a exibição é Tomcat 8.5.19:

insira a descrição da imagem aqui

Em seguida, usamos a ferramenta de verificação de vulnerabilidade para realizar uma verificação de vulnerabilidade:

insira a descrição da imagem aqui

Os resultados da verificação mostram que nossa máquina de destino tem várias vulnerabilidades de segurança e nossa vulnerabilidade Tomcat PUT também é verificada e, em seguida, usamos a ferramenta de exploração de vulnerabilidade Tomcat PUT para explorar a vulnerabilidade:

insira a descrição da imagem aqui

Pode-se ver que a exploração foi bem-sucedida e os privilégios de administrador foram obtidos.

4. Princípios de configuração de segurança

Para evitar erros de configuração de segurança, precisamos seguir vários princípios ao configurar aplicativos da web:

  • Princípio de serviço mínimo
我们需要将 Web 应用不需要的服务进行关闭或限制,防止攻击者通过这些服务发起恶意行为 
  • Configurações de relatórios de erros generalizados
将 Web 应用的报错信息设置得通用化,使得报错信息中不包含错误发生的细节信息,防止因此导致的敏感信息泄露
  • Modificar informações de conta padrão
将 Web 应用默认的账户信息进行修改,尽量让账户密码变得复杂,否则攻击者很容易就会猜出账户信息,登陆进 Web 应用的管理后台

Acho que você gosta

Origin blog.csdn.net/qq_45590334/article/details/125753513
Recomendado
Clasificación