Inteligência silenciosa. Método para identificar possíveis vulnerabilidades da WEB

Nota


Este guia é destinado a iniciantes que ainda possuem um conhecimento mínimo de segurança das informações. Eu tento encorajar jovens que têm muito tempo e querem fazer algo produtivo.

1. Introdução


Como você já sabe, existem muitos sites intermediários que trabalham com empresas para aumentar a eficácia do programa Bug Bounty, incluindo:

  • hackerone.com
  • bugcrowd.com
  • intigriti.com
  • yeswehack.com
  • openbugbounty.org
  • synack.com (privat)

Como isso funciona?


  • Procurando vulnerabilidades
  • Escrevemos as etapas para explorar a vulnerabilidade
  • Joga fora este relatório técnico. suporte.
  • Nós recebemos uma moeda.

Do que precisamos para isso?


VPS, preferencialmente Debian (outros podem ser usados) + boa conexão com a Internet (eu uso o alexhost.com, VPS de 1,5 GB de RAM, 1 núcleo, SSD de 10 GB por apenas 11 euros por ano.)

  • sublist3r
  • httprobe
  • webscreenshot
  • resposta do cabeçalho
  • extrator de URL relativo
  • extrator de jsfiles

Definindo preferências


Eu escrevi um pequeno script para facilitar a instalação de ferramentas.

root@debian-s-1vcpu-2gb-ams3-01:~# git clone https://github.com/airwawekz/xrec.git root@debian-s-1vcpu-2gb-ams3-01:~# cd xrec root@debian-s-1vcpu-2gb-ams3-01:~# chmod +x xrec-install.sh root@debian-s-1vcpu-2gb-ams3-01:~# ./xrec-install.sh 

Processo de identificação


Suponha que o programa em que desejamos participar tenha como objetivo procurar vulnerabilidades em todos os subdomínios, incluindo o domínio principal. Normalmente, o domínio primário é mais seguro que seus subdomínios, o que significa que devemos nos concentrar nos subdomínios.

Por exemplo: * .example.com

Primeiro passo:

Identificamos todos os subdomínios que pertencem a example.com. Para isso, usamos Sublist3r.

imagem

root@debian-s-1vcpu-2gb-ams3-01:~# cd /root/xrec/Sublist3r/
root@debian-s-1vcpu-2gb-ams3-01:~# python sublist3r.py -d example.com -o domains.txt


imagem

Sugiro adicionar APIs na sua configuração de script para obter melhores resultados. (Ex: Virustotal)

Aguardamos a conclusão da verificação, no final da qual você criará um arquivo “domains.txt” no qual os resultados do processo de verificação serão salvos.

Segundo passo:

Verificamos quais domínios são válidos; para isso, usamos o enableprobe.

 root@debian-s-1vcpu-2gb-ams3-01:~# cat domains.txt | httprobe | tee -a alive.txt 

Após concluir esse processo, você criará um arquivo chamado "alive.txt" com subdomínios válidos.

imagem

Terceiro passo:

Tiramos capturas de tela para cada site ativo. Essa etapa nos ajuda a identificar rapidamente possíveis subdomínios vulneráveis ​​se tivermos uma grande lista de domínios válidos.

 root@debian-s-1vcpu-2gb-ams3-01:~# python /root/xrec/webscreenshot/webscreenshot.py -r chromium -i alive.txt -o /root/xrec/webscreenshot/screens/ 

imagem

Os resultados serão salvos na pasta / root / xrec / webscreenshot / screen / as * example.com.png.

Depois de concluir esse processo, recomendo que você verifique cada captura de tela separadamente. Costumo encontrar subdomínios esquecidos com cms vulneráveis.

Quarto passo:

Verificamos a resposta do cabeçalho, esta etapa é muito importante, existem muitas vulnerabilidades que podem ser usadas através do cabeçalho.

Por exemplo: Execução remota de código do Yahoo

 root@debian-s-1vcpu-2gb-ams3-01:~# cd /root/xrec/ | sudo chmod +x response.sh root@debian-s-1vcpu-2gb-ams3-01:~/xrec# ./response.sh /root/xrec/Sublist3r/alive.txt 

imagem

No final deste processo, serão criadas 2 pastas “headers” e “responsebody”, nas quais os resultados da verificação serão salvos.

Quinto passo:

A etapa final é extrair o terminal dos arquivos JS. Para fazer isso, use o extrator jsfiles.

 root@debian-s-1vcpu-2gb-ams3-01:~# cd /root/xrec/ | chmod +x jsfiles.sh root@debian-s-1vcpu-2gb-ams3-01:~# ./jsfiles.sh 

Após a conclusão desse processo, é criada uma pasta chamada "scripts", na qual todos os arquivos se parecerão com www.example.com .

imagem

No momento, coletamos informações suficientes, apenas precisamos testar.

Por exemplo:

Se você tiver links finais: “details.php? Id = 3” ou “details / id / 3”, a primeira etapa é testar vulnerabilidades como XSS / SQLi.

Outro exemplo, se tivermos links finais: = redirectUrl = / example / photo, podemos tentar o redirecionamento aberto.

Se você tiver pontos finais no formulário: /pingcheck.php?s=google.com, poderá fazer testes para o RCE ou SSRF se tiver algo como /viewpage.php?s=google.com.

O que posso adicionar mais?


  • Mais fontes / APIs para verificar subdomínios (por exemplo, Censys, Shodan, etc.)
  • Verificação de porta com nmap
  • Força bruta de direção
  • Automação de todos os processos

      XSS  Snapchat 


Usando o processo de verificação de subdomínios, descobri que esse subdomínio snappublisher.snapchat.com tem uma função interessante para carregar imagens após várias tentativas malsucedidas de passar pelo filtro, notei que você pode baixar arquivos SVG (Scalable Vector Graphics) e tudo ficou simples

 <svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg"> <polygon id="triangle" points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/> <script type="text/javascript"> alert(document.domain); </script> </svg> 

Salvei o código como img.svg e carreguei a imagem, abrindo a imagem em uma nova guia -> O manipulador estava ativo.

Infelizmente, essa vulnerabilidade pode ser usada apenas para ataques de phishing. Relatamos essa vulnerabilidade para a equipe do Snapchat através do Hackerone. Nós fomos agradecidos))

Você não olhará - não verá, não perguntará - não encontrará.

Source: https://habr.com/ru/post/pt482108/


All Articles