BrowExt - XSS Example
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Nesta configuração, um script de conteúdo é implementado para instanciar um Iframe, incorporando uma URL com parâmetros de consulta como a fonte do Iframe:
Uma página HTML acessível publicamente, message.html
, é projetada para adicionar dinamicamente conteúdo ao corpo do documento com base nos parâmetros na URL:
Um script malicioso é executado na página de um adversário, modificando o parâmetro content
da fonte do Iframe para introduzir uma carga útil XSS. Isso é alcançado atualizando a fonte do Iframe para incluir um script prejudicial:
Uma Política de Segurança de Conteúdo excessivamente permissiva, como:
permite a execução de JavaScript, tornando o sistema vulnerável a ataques XSS.
Uma abordagem alternativa para provocar o XSS envolve criar um elemento Iframe e definir sua fonte para incluir o script prejudicial como o parâmetro content
:
Este exemplo foi retirado do post original.
O problema central surge de uma vulnerabilidade de Cross-site Scripting (XSS) baseada em DOM localizada em /html/bookmarks.html
. O JavaScript problemático, parte de bookmarks.js
, é detalhado abaixo:
Este trecho busca o valor do campo de entrada txtName
e usa concatenação de strings para gerar HTML, que é então anexado ao DOM usando a função .append()
do jQuery.
Normalmente, a Política de Segurança de Conteúdo (CSP) da extensão do Chrome impediria tais vulnerabilidades. No entanto, devido à relaxamento da CSP com ‘unsafe-eval’ e ao uso dos métodos de manipulação do DOM do jQuery (que empregam globalEval()
para passar scripts para eval()
na inserção do DOM), a exploração ainda é possível.
Embora essa vulnerabilidade seja significativa, sua exploração geralmente depende da interação do usuário: visitar a página, inserir uma carga útil de XSS e ativar o botão “Adicionar”.
Para aumentar essa vulnerabilidade, uma vulnerabilidade secundária de clickjacking é explorada. O manifesto da extensão do Chrome apresenta uma política extensa de web_accessible_resources
:
Notavelmente, a página /html/bookmarks.html
é suscetível a framing, tornando-se assim vulnerável a clickjacking. Essa vulnerabilidade é explorada para emoldurar a página dentro do site de um atacante, sobrepondo-a com elementos DOM para redesenhar a interface de forma enganosa. Essa manipulação leva as vítimas a interagir com a extensão subjacente involuntariamente.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)