Introdução

Essa vulnerabilidade diz a respeito a um método conhecido como HTTP Verb Tempering, descrito no CWE-650. Ele mode ser explorado quando se envia requisições com métodos não esperados pelo servidor, o que pode ocasionar em bypasses em mecanismos de autorização ou controles de segurança. Esse tipo de vulnerabilidade é um forma, dentre diversas outras, de explorar uma má configuração do servidor web ou da aplicação através de requisições HTTP.

A dos desenvolvedores web atualmente comumente preferem usar apenas dois métodos HTTP para suas aplicações, sendo ele o GET e o POST. Nesse contexto, se o servidor estiver configurado apenas para aceitar esses tipos de solicitações, caso o usuário mude manualmente o método, isso irá gerar uma mensagem de erro. Isso, por si só, não é uma vulnerabilidade tão severa, apesar de afetar a experiência do usuário e poder levar a um potencial vazamento de informações. Entretanto, caso o servidor não esteja configurado corretamente, ele pode aceitar outros métodos HTTP, (como o HEAD e o PUT), o que pode ser explorado e permitindo o bypass em certos controles de segurança.

Exemplos

O seguinte exemplo é de um código inseguro para controle de acesso a páginas administrativas:

<Directory "/var/www/html/admin">
    AuthType Basic
    AuthName "Admin Panel"
    AuthUserFile /etc/apache2/.htpasswd
    <Limit GET>
        Require valid-user
    </Limit>
</Directory>