Vulnerabilidades são falhas no código que deixam as aplicações expostas, o que pode levar usuários maliciosos a explorá-las, configurando um ataque. Tanto para a prevenção quanto para a correção dessa brecha, é necessário que o programador tenha conhecimento sobre o funcionamento do ataque, por isso desenvolvemos alguns materiais sobre essas vulnerabilidades, no intuito de auxiliar os desenvolvedores a mitigar esse tipo de falha.

Vulnerabilidade
Mais algumas vulnerabilidades que não foram estudadas por nós durante a Iniciação Científica, mas que compõe o OWASP Top Ten:
- Broken authentication: funcionalidades da aplicação relacionadas à autenticação e sessões são comumente implementadas incorretamente, permitindo que atacantes comprometam senhas, chaves ou tokens de sessão, ou também para assumir a identidade de outro usuário temporariamente.
- Sensitive data exposure: muitas aplicações e APIs não protegem corretamente dados sensíveis, e atacantes podem roubar ou modificá-los, levando a fraudes, roubo de identidade ou outros crimes
- XML external entities: muitos processadores de XML ultrapassados ou mal configurados validam referências de entidades externas no próprio documento XML. Essas entidades externas podem ser utilizadas para acessar os arquivos internos da aplicação, o que pode levar ao compartilhamento de arquivos internos, execução remota de código, e ataques DoS (Denial of Service)
- Broken access control: restrições sobre o que usuários autenticados podem ou não fazer frequentemente não são reforçadas. Atacantes podem explorar essas falhas para acessar funcionalidades ou dados não autorizados, tais como acessar as contas de outros usuários, ver arquivos sensíveis, modificar os dados de outros usuários ou alterar privilégios
- Security misconfiguration: geralmente está relacionada a configurações padrão inseguras, incompletas ou armazenamento em nuvem aberta, cabeçalhos HTTP mal configurados e mensagens de erro contendo informação sensível.
- Insecure deserialization: geralmente leva a execução de código remota. Mesmo que as falhas de desserialização não resultem em execução de código remota, elas podem ser utilizadas para realizar ataques, incluindo ataques de Injection e ataques de aumento de privilégios
- Using components with known vulnerabilities: componentes como bibliotecas, frameworks e outros módulos de software são executados com o mesmo privilégio em um aplicação., Se um componente vulnerável é explorado, um ataque pode facilitar grande perda de dados ou a tomada do servidor.
- Insufficient logging & monitoring: logging e monitoramento insuficientes, juntamente com resposta de incidentes inexistentes ou não efetivas, permitem aos atacantes a atacar sistemas persistentemente. A maioria de estudos de brechas mostra que o tempo para detectá-las pode ser superior a 200 dias, sendo comumente detectado por partes externas em vez de processos internos e monitoramento.