COVIL HACKER

, ! .


» COVIL HACKER » Vulnerabilidades de aplicativos da Web » Falha de XSS - desvio de filtro


Falha de XSS - desvio de filtro

1 2 2

1

Olá a todos,
Bem-vindos ao meu primeiro tutorial que tratará dos principais filtros XSS e como contorná-los.

Neste tutorial veremos como contornar os principais filtros que causam problemas para muitos pentesters.

I. Informações gerais sobre a falha XSS

Antes de tudo, devo lembrar o que é uma falha XSS:

"Cross-site scripting (abreviado como XSS), é um tipo de falha de segurança de um site que permite que o conteúdo seja injetado em uma página,
tornando-a possível causar ações em navegadores da web que visitam a página."

Geralmente é caracterizado pela aparência de um pop-up de javascript.

II. Filtros principais

Agora que você conhece a teoria, podemos atacar a parte do bypass do filtro.

Em primeiro lugar, o que é um filtro? Um filtro é uma proteção implementada por um desenvolvedor que verifica os valores inseridos pelo usuário e os bloqueia se os considerar perigosos. Esse tipo de proteção também é chamado de Web Application Firewall, abreviado como WAF.

Como um filtro se materializa? Na prática, um filtro é caracterizado por um erro "403 - proibido", ou mesmo um erro interno do site.

Vamos começar agora com os filtros principais!

1. Tag script bloqueada

Um caso muito comum em filtros é haver um bloqueio no nível das tags script, ou seja, as seguintes tags: <script></script>

Este filtro é muito fácil de contornar, já que há um grande número de payloads XSS que não usam tags de script, darei alguns exemplos, mas há muitos outros:

<img src=x onerror=prompt(' XSS')> <svg/onload=alert('XSS')>
<BODY ONLOAD=alert('XSS')>

2. alert() bloqueado

Outro caso igualmente frequente é o bloqueio da palavra-chave alert(). Mais uma vez, há uma ampla gama de possibilidades para contornar esse tipo de bloqueio.
Você pode usar as palavras-chave prompt() ou confirm() que globalmente têm a mesma função, ou seja, exibir um pop-up na tela.

(alerta)(1)
a=alerta,a(1)
[1].find(alerta)
topo[al+ert](1)
topo[/al/.source+/ert/ .source](1)
al\u0065rt(1)
topo['al\145rt'](1)
topo['al\x65rt'](1)
topo[8680439..toString(30)](1 )

3. Addslashes

A função Addslashes é uma função presente no PHP, e que permite Retornar a string str, após ter escapado todos os caracteres que devem ser escapados,
para serem usados. Esses caracteres são aspas simples ('), aspas duplas ("), barra invertida (\) e NULLE (o caractere NULL).

Na prática, se você injetou o seguinte payload: <script>alert('OPENBUGBOUNTY')</script >
É assim que vai sair: <script>alert( \ 'Yumi \ ')</script>

Seu código javascript não está mais correto e, portanto, não é executado. No entanto, existe uma maneira simples de contornar essa proteção, basta alterar as aspas simples de sua carga com barras. As barras não são caracteres filtrados pela função addlashes, seu payload não será filtrado e nosso código estará correto.

O que nos dá esta carga útil: <script>alert(/Yumi/)</script>

Este é o fim desta primeira parte, acho que farei outra em breve. Obrigado por seguir este tutorial.

0

2


» COVIL HACKER » Vulnerabilidades de aplicativos da Web » Falha de XSS - desvio de filtro


|