# BrowExt - ClickJacking
Aprende hacking de AWS desde cero hasta experto conhtARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
* Si deseas ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Obtén el [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
## Información Básica
Esta página va a abusar de una vulnerabilidad de ClickJacking en una extensión del navegador.\
Si no sabes qué es el ClickJacking, consulta:
{% content-ref url="../clickjacking.md" %}
[clickjacking.md](../clickjacking.md)
{% endcontent-ref %}
Las extensiones contienen el archivo **`manifest.json`** y ese archivo JSON tiene un campo `web_accessible_resources`. Esto es lo que [la documentación de Chrome](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) dice al respecto:
> Estos recursos estarían disponibles en una página web a través de la URL **`chrome-extension://[ID DEL PAQUETE]/[RUTA]`**, que se puede generar con el método **`extension.getURL`**. Los recursos permitidos se sirven con encabezados CORS apropiados, por lo que están disponibles a través de mecanismos como XHR.[1](https://blog.lizzie.io/clickjacking-privacy-badger.html#fn.1)
Los **`web_accessible_resources`** en una extensión del navegador no solo son accesibles a través de la web; también operan con los privilegios inherentes de la extensión. Esto significa que tienen la capacidad de:
- Cambiar el estado de la extensión
- Cargar recursos adicionales
- Interactuar con el navegador hasta cierto punto
Sin embargo, esta característica presenta un riesgo de seguridad. Si un recurso dentro de **`web_accessible_resources`** tiene alguna funcionalidad significativa, un atacante podría potencialmente incrustar este recurso en una página web externa. Los usuarios desprevenidos que visiten esta página podrían activar inadvertidamente este recurso incrustado. Dicha activación podría llevar a consecuencias no deseadas, dependiendo de los permisos y capacidades de los recursos de la extensión.
## Ejemplo de PrivacyBadger
En la extensión PrivacyBadger, se identificó una vulnerabilidad relacionada con el directorio `skin/` declarado como `web_accessible_resources` de la siguiente manera (Consulta la publicación original en el [blog](https://blog.lizzie.io/clickjacking-privacy-badger.html)):
```json
"web_accessible_resources": [
"skin/*",
"icons/*"
]
```
Esta configuración condujo a un posible problema de seguridad. Específicamente, el archivo `skin/popup.html`, que se renderiza al interactuar con el icono de PrivacyBadger en el navegador, podría ser incrustado dentro de un `iframe`. Esta incrustación podría ser explotada para engañar a los usuarios y hacer que hagan clic inadvertidamente en "Desactivar PrivacyBadger para este Sitio Web". Tal acción comprometería la privacidad del usuario al desactivar la protección de PrivacyBadger y potencialmente exponer al usuario a un mayor rastreo. Una demostración visual de esta explotación se puede ver en un ejemplo de video de ClickJacking proporcionado en [**https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm**](https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm).
Para abordar esta vulnerabilidad, se implementó una solución sencilla: la eliminación de `/skin/*` de la lista de `web_accessible_resources`. Este cambio mitigó efectivamente el riesgo al garantizar que el contenido del directorio `skin/` no pudiera ser accedido o manipulado a través de recursos accesibles por la web.
La solución fue fácil: **eliminar `/skin/*` de los `web_accessible_resources**.
### PoC
```html
Click the button
```
## Ejemplo de Metamask
Un [**post de blog sobre un ClickJacking en Metamask se puede encontrar aquí**](https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9). En este caso, Metamask solucionó la vulnerabilidad verificando que el protocolo utilizado para acceder fuera **`https:`** o **`http:`** (no **`chrome:`** por ejemplo):
**Otro ClickJacking solucionado** en la extensión de Metamask fue que los usuarios podían **Hacer clic para agregar a la lista blanca** cuando una página era sospechosa de ser phishing debido a `“web_accessible_resources”: [“inpage.js”, “phishing.html”]`. Como esa página era vulnerable al Clickjacking, un atacante podía abusar de ella mostrando algo normal para hacer que la víctima hiciera clic para agregarla a la lista blanca sin darse cuenta, y luego regresar a la página de phishing que estaría en la lista blanca.
## Ejemplo de Steam Inventory Helper
Consulte la siguiente página para ver cómo se encadenó un **XSS** en una extensión del navegador con una vulnerabilidad de **ClickJacking**:
{% content-ref url="browext-xss-example.md" %}
[browext-xss-example.md](browext-xss-example.md)
{% endcontent-ref %}
## Referencias
* [https://blog.lizzie.io/clickjacking-privacy-badger.html](https://blog.lizzie.io/clickjacking-privacy-badger.html)
* [https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9](https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9)
Aprende hacking en AWS desde cero hasta experto conhtARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
* Si deseas ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Obtén el [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).