Translated ['pentesting-web/xs-search/css-injection/README.md'] to pt

This commit is contained in:
Translator 2023-12-11 10:13:54 +00:00
parent 0a44fd04da
commit 18f940af74
1 changed files with 20 additions and 5 deletions

View File

@ -44,13 +44,28 @@ Alguns exemplos de código para explorar isso: [https://gist.github.com/d0nutptr
2. Capacidade de **enquadrar a página para acionar a reavaliação do CSS dos payloads recém-gerados**
3. Capacidade de usar **imagens hospedadas externamente** (pode ser bloqueado por CSP)
### Seletor de Atributo Cego
Como [**explicado neste post**](https://portswigger.net/research/blind-css-exfiltration), é possível combinar os seletores **`:has`** e **`:not`** para identificar conteúdo mesmo de elementos cegos. Isso é muito útil quando você não tem ideia do que está dentro da página da web carregando a injeção de CSS.\
Também é possível usar esses seletores para extrair informações de vários blocos do mesmo tipo, como em:
```html
<style>
html:has(input[name^="m"]):not(input[name="mytoken"]) {
background:url(/m);
}
</style>
<input name=mytoken value=1337>
<input name=myname value=gareth>
```
Combinando isso com a seguinte técnica **@import**, é possível extrair muitas informações usando injeção de CSS em páginas cegas com [**blind-css-exfiltration**](https://github.com/hackvertor/blind-css-exfiltration)**.**
### @import
A técnica anterior tem algumas desvantagens, verifique os pré-requisitos. Você precisa ser capaz de **enviar vários links para a vítima**, ou precisa ser capaz de **enquadrar a página vulnerável à injeção de CSS**.
A técnica anterior tem algumas desvantagens, verifique os pré-requisitos. Você precisa ser capaz de **enviar vários links para a vítima**, ou precisa ser capaz de **incluir a página vulnerável à injeção de CSS em um iframe**.
No entanto, existe outra técnica inteligente que usa **`@import` do CSS** para melhorar a qualidade da técnica.
No entanto, existe outra técnica inteligente que usa **CSS `@import`** para melhorar a qualidade da técnica.
Isso foi mostrado pela primeira vez por [**Pepe Vila**](https://vwzq.net/slides/2019-s3\_css\_injection\_attacks.pdf) e funciona assim:
Isso foi mostrado pela primeira vez por [**Pepe Vila**](https://vwzq.net/slides/2019-s3\_css\_injection\_attacks.pdf) e funciona da seguinte maneira:
Em vez de carregar a mesma página várias vezes com dezenas de payloads diferentes a cada vez (como na técnica anterior), vamos **carregar a página apenas uma vez e apenas com uma importação para o servidor do atacante** (este é o payload a ser enviado para a vítima):
```css
@ -216,7 +231,7 @@ Neste ponto, o ataque está claro:
Ainda precisamos de um método aprimorado para iniciar a iteração, porque `<meta refresh=...` é subótimo. Você pode usar o **truque do CSS @import para otimizar a exploração**.
### Exfiltração de nó de texto (II): vazando o conjunto de caracteres com uma fonte padrão (sem a necessidade de ativos externos) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
### Exfiltração de nó de texto (II): vazando o conjunto de caracteres com uma fonte padrão (não requer ativos externos) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Referência:** [PoC usando Comic Sans por @Cgvwzq & @Terjanq](https://demo.vwzq.net/css2.html)
@ -387,7 +402,7 @@ unicode-range: U+0041;
```
Se houver uma correspondência, a **fonte será carregada de `/static/bootstrap.min.css?q=1`**. Embora não seja carregada com sucesso, o **navegador deve armazená-la em cache**, e mesmo que não haja cache, há um mecanismo de **304 não modificado**, então a **resposta deve ser mais rápida** do que outras coisas.
No entanto, se a diferença de tempo entre a resposta em cache e a não em cache não for grande o suficiente, isso não será útil. Por exemplo, o autor mencionou: No entanto, após testar, descobri que o primeiro problema é que a velocidade não é muito diferente, e o segundo problema é que o bot usa a flag `disk-cache-size=1`, o que é realmente atencioso.
No entanto, se a diferença de tempo entre a resposta em cache e a não em cache não for grande o suficiente, isso não será útil. Por exemplo, o autor mencionou: No entanto, após testar, descobri que o primeiro problema é que a velocidade não é muito diferente, e o segundo problema é que o bot usa a flag `disk-cache-size=1`, o que é realmente cuidadoso.
### Exfiltração de nó de texto (III): vazando o conjunto de caracteres através da medição do tempo de carregamento de centenas de "fontes" locais (não requer ativos externos) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>