<summary><strong>Aprende hacking en AWS de cero a héroe con</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Si quieres ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** revisa los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sigue** a **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de github de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
También puedes usar la [**extensión de semgrep para VSCode**](https://marketplace.visualstudio.com/items?itemName=Semgrep.semgrep) para obtener los resultados dentro de VSCode.
Esto **generalmente desencadenará un error** indicando que se especificó (o detectó automáticamente) más de un idioma. **Revisa las siguientes opciones** para solucionarlo.
* Puedes hacer esto **manualmente indicando** el **repositorio** y el **idioma** ([lista de idiomas](https://docs.github.com/en/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis#running-codeql-database-create))
* También puedes permitir que `codeql`**identifique todos los idiomas** por ti y cree una base de datos por idioma. Necesitas proporcionarle un **GITHUB\_TOKEN**.
Puede visualizar los hallazgos en [**https://microsoft.github.io/sarif-web-component/**](https://microsoft.github.io/sarif-web-component/) o utilizando la extensión de VSCode [**SARIF viewer**](https://marketplace.visualstudio.com/items?itemName=MS-SarifVSCode.sarif-viewer).
También puede usar la [**extensión de VSCode**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) para obtener los hallazgos dentro de VSCode. Aún necesitará crear una base de datos manualmente, pero luego puede seleccionar cualquier archivo y hacer clic en `Clic Derecho` -> `CodeQL: Ejecutar Consultas en Archivos Seleccionados`
También puedes usar la [**extensión snyk para VSCode**](https://marketplace.visualstudio.com/items?itemName=snyk-security.snyk-vulnerability-scanner) para obtener resultados dentro de VSCode.
* [**nodejsscan**](https://github.com/ajinabraham/nodejsscan)**:** Escáner de seguridad estático (SAST) para aplicaciones Node.js impulsado por [libsast](https://github.com/ajinabraham/libsast) y [semgrep](https://github.com/returntocorp/semgrep).
docker run -it -p 9090:9090 opensecurity/nodejsscan:latest
# Got to localhost:9090
# Upload a zip file with the code
```
* [**RetireJS**](https://github.com/RetireJS/retire.js)**:** El objetivo de Retire.js es ayudarte a detectar el uso de versiones de bibliotecas JS con vulnerabilidades conocidas.
* [**electronegativity**](https://github.com/doyensec/electronegativity)**:** Es una herramienta para identificar malas configuraciones y anti-patrones de seguridad en aplicaciones basadas en Electron.
* [**Bandit**](https://github.com/PyCQA/bandit)**:** Bandit es una herramienta diseñada para encontrar problemas comunes de seguridad en el código Python. Para hacer esto, Bandit procesa cada archivo, construye un AST a partir de él y ejecuta los plugins apropiados contra los nodos del AST. Una vez que Bandit ha terminado de escanear todos los archivos, genera un informe.
* [**safety**](https://github.com/pyupio/safety): Safety verifica las dependencias de Python en busca de vulnerabilidades de seguridad conocidas y sugiere las remediaciones adecuadas para las vulnerabilidades detectadas. Safety se puede ejecutar en máquinas de desarrolladores, en pipelines de CI/CD y en sistemas de producción.
[Psalm](https://phpmagazine.net/2018/12/find-errors-in-your-php-applications-with-psalm.html) y [PHPStan](https://phpmagazine.net/2020/09/phpstan-pro-edition-launched.html).
* Si usas jsnice.org, haz clic en el botón de opciones junto al botón "Nicify JavaScript" y desmarca "Infer types" para reducir la cantidad de comentarios que ensucian el código.
* Encontrar el valor de retorno al final y cambiarlo a `console.log(<variableDeRetornoDelEmpaquetador>);` para que el js desofuscado se imprima en lugar de ejecutarse.
* Luego, pegar el js modificado (y aún ofuscado) en https://jsconsole.com/ para ver el js desofuscado en la consola.
* Finalmente, pegar la salida desofuscada en https://prettier.io/playground/ para embellecerla para el análisis.
* **Nota**: Si aún ves js empaquetado (pero diferente), puede estar empaquetado recursivamente. Repetir el proceso.
* InnerHTML() - Si encuentras esto, significa que hay una posibilidad de XSS si no se realiza una sanitización adecuada. Incluso si tu payload es sanitizado, no te preocupes. Rastrea el código para averiguar dónde se realiza la sanitización. Estúdialo e intenta sortear la sanitización.
* Postmessage() - Si has leído mi post anterior (https://medium.com/techiepedia/what-are-sop-cors-and-ways-to-exploit-it-62a5e02100dc), notarás que Postmessage() podría llevar a un problema de CORS potencial. Si el segundo parámetro de la función se establece en \*, eres afortunado. Consulta mi post anterior para entender más sobre el mecanismo detrás.
* String.prototype.search() - Esta función parece normal. ¿Por qué sería peligrosa? Bueno, es porque algunos desarrolladores la usaron para encontrar la ocurrencia de una cadena dentro de otra cadena. Sin embargo, “.” se trata como comodín en esta función. Entonces, si esta función se usa como chequeo de sanitización, puedes simplemente sortearla ingresando “.”. Consulta el informe de hackerone de Filedescryptor: https://hackerone.com/reports/129873
* Usar [LinkFinder](https://github.com/GerbenJavado/LinkFinder) y [JS Miner](https://github.com/PortSwigger/js-miner).
* Libs y dependencias vulnerables
* Usar [Retire.js](https://retirejs.github.io/retire.js/) y [NPM](https://snyk.io/advisor/) (desplazarse hacia abajo a la sección de seguridad > enlace de todas las versiones).
<summary><strong>Aprende hacking en AWS de cero a héroe con</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Si quieres ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Ú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 github de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).