Quais são as vulnerabilidades mais comuns em programas de recompensa?

Se você esta começando hoje na área de Bug Bounty você provavelmente quer saber quais vulnerabilidades são mais encontradas em programas de recompensa, correto?

Eu vou listar algumas, mas não significa que outras não possam ser achadas, porém as que você vai notar muito em writeups e sendo reportadas, serão essas:

Cross Site Scripting (XSS)

Os ataques de cross-site scripting (XSS) são um tipo de injeção, na qual scripts maliciosos são injetados em sites de outra forma benignos e confiáveis. Os ataques XSS ocorrem quando um invasor usa um aplicativo da Web para enviar código malicioso, geralmente na forma de um script do lado do navegador, para um usuário final diferente. As falhas que permitem que esses ataques sejam bem-sucedidos são bastante difundidas e ocorrem em qualquer lugar em que um aplicativo Web use entrada de um usuário na saída gerada sem validá-lo ou codificá-lo.

Um invasor pode usar o XSS para enviar um script mal-intencionado a um usuário inocente. O navegador do usuário final não tem como saber que o script não deve ser confiável e o executará. Como ele acha que o script veio de uma fonte confiável, o script mal-intencionado pode acessar todos os cookies, tokens de sessão ou outras informações confidenciais retidas pelo navegador e usadas com esse site.

Mais detalhes: https://owasp.org/www-community/attacks/xss/

Cross Site Request Forgery

A falsificação de solicitação entre sites (CSRF) é um ataque que força um usuário final a executar ações indesejadas em um aplicativo Web no qual eles estão atualmente autenticados. Os ataques CSRF visam especificamente solicitações de alteração de estado, não roubo de dados, pois o invasor não tem como ver a resposta à solicitação forjada. Com uma pequena ajuda da engenharia social (como o envio de um link por email ou bate-papo), um invasor pode induzir os usuários de um aplicativo da Web a executar ações de sua escolha. Se a vítima for um usuário normal, um ataque CSRF bem-sucedido pode forçar o usuário a executar solicitações de alteração de estado, como transferência de fundos, alteração de endereço de email e assim por diante. Se a vítima for uma conta administrativa, o CSRF poderá comprometer todo o aplicativo da web.

Mais detalhes: https://owasp.org/www-community/attacks/csrf

Server Side Template Injection

Os mecanismos de modelo são amplamente utilizados pelos aplicativos da Web para apresentar dados dinâmicos por meio de páginas da Web e e-mails. A inserção insegura do usuário nos modelos permite a injeção de modelos no lado do servidor, uma vulnerabilidade frequentemente crítica que é extremamente fácil de confundir com o  XSS ( Cross-Site Scripting ) ou falha completamente. Diferentemente do XSS, a Injeção de Modelo pode ser usada para atacar diretamente os internos dos servidores da Web e, geralmente, obter a Execução Remota de Código ( RCE ), transformando todos os aplicativos vulneráveis em um possível ponto de articulação.

A injeção de modelo pode surgir tanto por erro do desenvolvedor quanto pela exposição intencional de modelos, na tentativa de oferecer funcionalidade rica, como é comumente feito por wikis, blogs, aplicativos de marketing e sistemas de gerenciamento de conteúdo. A injeção intencional de modelos é um caso de uso tão comum que muitos mecanismos de modelos oferecem um modo ‘sandboxed’ para esse propósito expresso. Este documento define uma metodologia para detectar e explorar a injeção de modelos e mostra que está sendo aplicada para criar zerodays RCE para dois aplicativos da Web corporativos amplamente implantados. Explorações genéricas são demonstradas para cinco dos mecanismos de modelo mais populares, incluindo escapes de caixas de proteção cujo objetivo é lidar com modelos fornecidos pelo usuário de maneira segura.

Mais detalhes: https://portswigger.net/research/server-side-template-injection

Open Redirect

As vulnerabilidades de redirecionamento aberto surgem quando um aplicativo incorpora dados controláveis pelo usuário no destino de um redirecionamento de maneira insegura. Um invasor pode construir uma URL no aplicativo que causa um redirecionamento para um domínio externo arbitrário. Esse comportamento pode ser aproveitado para facilitar ataques de phishing contra usuários do aplicativo. A capacidade de usar um URL de aplicativo autêntico, direcionado ao domínio correto e com um certificado SSL válido (se o SSL for usado), confere credibilidade ao ataque de phishing, porque muitos usuários, mesmo que verifiquem esses recursos, não notarão o redirecionamento subsequente para um domínio diferente.

Mais detalhes: https://portswigger.net/kb/issues/00500100_open-redirection-reflected

IDOR

As referências diretas a objetos inseguras (IDOR) são um tipo de vulnerabilidade de controle de acesso que surge quando um aplicativo usa a entrada fornecida pelo usuário para acessar objetos diretamente. O termo IDOR foi popularizado por sua aparição no Top Ten da OWASP 2007. No entanto, é apenas um exemplo de muitos erros de implementação do controle de acesso que podem levar a que os controles sejam contornados. As vulnerabilidades do IDOR são mais comumente associadas à escalação de privilégios horizontais, mas também podem surgir em relação à escalação de privilégios verticais.

Mais detalhes: https://portswigger.net/web-security/access-control/idor

SQL Injection

Um ataque de injeção SQL consiste na inserção ou “injeção” de uma consulta SQL através dos dados de entrada do cliente para o aplicativo. Uma exploração bem-sucedida de injeção SQL pode ler dados confidenciais do banco de dados, modificar dados (Inserir / Atualizar / Excluir), executar operações de administração no banco de dados (como desligar o DBMS), recuperar o conteúdo de um determinado arquivo presente no arquivo DBMS sistema e, em alguns casos, emita comandos para o sistema operacional. Os ataques de injeção SQL são um tipo de ataque de injeção , no qual os comandos SQL são injetados na entrada do plano de dados para efetuar a execução de comandos SQL predefinidos.

Mais detalhes: https://owasp.org/www-community/attacks/SQL_Injection

SSRF

Em um ataque de falsificação de solicitação do lado do servidor (SSRF), o invasor pode abusar da funcionalidade do servidor para ler ou atualizar recursos internos. O invasor pode fornecer ou modificar um URL para o qual o código em execução no servidor lerá ou enviará dados e, selecionando cuidadosamente os URLs, o invasor poderá ler a configuração do servidor, como os metadados da AWS, conectar-se a serviços internos, como o HTTP ativado bancos de dados ou executar solicitações de postagem para serviços internos que não devem ser expostos.

Mais detalhes: https://owasp.org/www-community/attacks/Server_Side_Request_Forgery

XXE

Um ataque de entidade externa XML é um tipo de ataque contra um aplicativo que analisa a entrada XML. Esse ataque ocorre quando a entrada XML que contém uma referência a uma entidade externa é processada por um analisador XML mal configurado . Esse ataque pode levar à divulgação de dados confidenciais, negação de serviço, falsificação de solicitação do servidor, varredura de portas na perspectiva da máquina em que o analisador está localizado e outros impactos no sistema.

Mais detalhes: https://owasp.org/www-community/vulnerabilities/XML_External_Entity_(XXE)_Processing

Clickjacking

O clickjacking, também conhecido como “ataque de reparação da interface do usuário”, ocorre quando um invasor usa várias camadas transparentes ou opacas para induzir um usuário a clicar em um botão ou link em outra página quando pretendia clicar na página de nível superior. Assim, o invasor está “sequestrando” cliques destinados à sua página e os encaminha para outra página, provavelmente pertencente a outro aplicativo, domínio ou ambos. Usando uma técnica semelhante, as teclas também podem ser seqüestradas. Com uma combinação cuidadosamente elaborada de folhas de estilo, iframes e caixas de texto, um usuário pode ser levado a acreditar que está digitando a senha do email ou da conta bancária, mas digitando em um quadro invisível controlado pelo invasor.

Mais detalhes: https://owasp.org/www-community/attacks/Clickjacking

File Inclusion

A vulnerabilidade de inclusão de arquivo permite que um invasor inclua um arquivo, geralmente explorando os mecanismos de “inclusão dinâmica de arquivo” implementados no aplicativo de destino. A vulnerabilidade ocorre devido ao uso de entrada fornecida pelo usuário sem validação adequada.

Mais detalhes: https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/11.1-Testing_for_Local_File_Inclusion

Dicas

Aqui vão algumas dicas para quem quiser se aprofundar nesses ataques:

  1. Desenvolva laboratórios práticos
  2. Aprenda desenvolvimento web
  3. Jogue CTF
  4. Procure meios e métodos para explorar tais vulnerabilidades
  5. Aprenda a bypassar mecanismos de proteção
  6. Veja Writeups e artigos no Medium sobre Bug Bounty
  7. Aprenda a utilizar o seu Browser a favor, principalmente a ferramenta de desenvolvedor que vem inclusa nos navegadores que ajudam muito a achar brechas para XSS e afins

E se aprofunde bastante em ataques web, obviamente que requer um estudo mais avançado e dedicação, porém 2 horas por dia, já ajuda um pouco.

Alguns materiais para aprender ataques web

https://www.hacker101.com/videos

https://www.youtube.com/channel/UCNRM4GH-SD85WCSqeSb4xUA

https://www.youtube.com/channel/UCqDLY9WFoJWqrhycW8cbv1Q

https://www.youtube.com/channel/UCQN2DsjnYH60SFBIA6IkNwg

Veja outros artigos que eu fiz, sobre ataques web: https://www.linkedin.com/in/joas-antonio-dos-santos/

Visits: 974