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.
Dicas
Aqui vão algumas dicas para quem quiser se aprofundar nesses ataques:
- Desenvolva laboratórios práticos
- Aprenda desenvolvimento web
- Jogue CTF
- Procure meios e métodos para explorar tais vulnerabilidades
- Aprenda a bypassar mecanismos de proteção
- Veja Writeups e artigos no Medium sobre Bug Bounty
- 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/
Views: 1040
Muito bom estou nessa área desde 2015, esse conteúdo poderá ajudar muitas pessoas!!