Translated ['network-services-pentesting/pentesting-web/code-review-tool

This commit is contained in:
Translator 2024-04-18 02:45:12 +00:00
parent 2fcbadbe51
commit 9adc4e5b23
2 changed files with 44 additions and 27 deletions

View file

@ -801,6 +801,7 @@
* [FISSURE - The RF Framework](todo/radio-hacking/fissure-the-rf-framework.md)
* [Low-Power Wide Area Network](todo/radio-hacking/low-power-wide-area-network.md)
* [Pentesting BLE - Bluetooth Low Energy](todo/radio-hacking/pentesting-ble-bluetooth-low-energy.md)
* [Industrial Control Systems Hacking](todo/industrial-control-systems-hacking/README.md)
* [Burp Suite](todo/burp-suite.md)
* [Other Web Tricks](todo/other-web-tricks.md)
* [Interesting HTTP](todo/interesting-http.md)

View file

@ -142,7 +142,7 @@ codeql database create /path/repo/codeql_db --language javascript --source-root
```
{% endcode %}
* Si tu repositorio está utilizando **más de 1 lenguaje**, también puedes crear **1 base de datos por lenguaje** indicando cada lenguaje.
* Si tu repositorio está utilizando **más de 1 lenguaje**, también puedes crear **1 base de datos por lenguaje** indicando cada idioma.
{% code overflow="wrap" %}
```bash
@ -254,13 +254,13 @@ También puedes usar la [**extensión de Snyk para VSCode**](https://marketplace
### [Insider](https://github.com/insidersec/insider)
Es **Open Source**, pero parece **no estar mantenido**.
Es **de código abierto**, pero parece **no estar mantenido**.
#### Lenguajes Soportados
#### Idiomas compatibles
Java (Maven y Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C#, y Javascript (Node.js).
Java (Maven y Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C# y Javascript (Node.js).
#### Inicio Rápido
#### Inicio rápido
```bash
# Check the correct release for your environment
$ wget https://github.com/insidersec/insider/releases/download/2.1.0/insider_2.1.0_linux_x86_64.tar.gz
@ -360,7 +360,7 @@ PMD es otra herramienta de análisis estático de código que busca posibles pro
### Checkstyle
Checkstyle es una herramienta que ayuda a garantizar que el código Java cumpla con un conjunto de reglas de codificación predefinidas.
Checkstyle es una herramienta que ayuda a garantizar que el código Java cumpla con un conjunto de convenciones de codificación predefinidas.
```bash
# JD-Gui
https://github.com/java-decompiler/jd-gui
@ -377,9 +377,9 @@ jar cmvf META-INF/MANIFEST.MF test.jar test.class
| Descomprimir Jar| unzip -d \[directorio de salida] \[jar] |
| Crear Jar | jar -cmf META-INF/MANIFEST.MF \[jar de salida] \* |
| Base64 SHA256 | sha256sum \[archivo] \| cut -d' ' -f1 \| xxd -r -p \| base64 |
| Eliminar Firma | rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA |
| Eliminar de Jar | zip -d \[jar] \[archivo a eliminar] |
| Descompilar clase | procyon -o . \[ruta de la clase] |
| Eliminar Firma | rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA |
| Eliminar del Jar| zip -d \[jar] \[archivo a eliminar] |
| Descompilar clase| procyon -o . \[ruta de la clase] |
| Descompilar Jar | procyon -jar \[jar] -o \[directorio de salida] |
| Compilar clase | javac \[ruta al archivo .java] |
@ -412,10 +412,11 @@ https://github.com/securego/gosec
### Análisis Estático
#### Desminimizar/Embellecer
#### Desminimizar/Embellecer/Embellecer
* [https://prettier.io/playground/](https://prettier.io/playground/)
* [https://beautifier.io/](https://beautifier.io/)
* Consulte algunas de las herramientas mencionadas en 'Desofuscar/Desempaquetar' a continuación también.
#### Desofuscar/Desempaquetar
@ -427,31 +428,46 @@ https://github.com/securego/gosec
* Usa [JS Miner](https://github.com/PortSwigger/js-miner) para buscarlos.
* Asegúrate de realizar un escaneo activo.
* Lee '[Consejos/Notas](https://github.com/minamo7sen/burp-JS-Miner/wiki#tips--notes)'
* Si los encuentras, usa [Maximize](https://www.npmjs.com/package/maximize) para desofuscar.
* Si se encuentran, usa [Maximize](https://www.npmjs.com/package/maximize) para desofuscar.
2. Sin archivos .map, prueba JSnice:
* Referencias: http://jsnice.org/ y https://www.npmjs.com/package/jsnice
* Referencias: [http://jsnice.org/](http://jsnice.org/) y [https://www.npmjs.com/package/jsnice](https://www.npmjs.com/package/jsnice)
* Consejos:
* Si usas jsnice.org, haz clic en el botón de opciones junto al botón "Nicify JavaScript" y deselecciona "Infer types" para reducir el desorden en el código con comentarios.
* Asegúrate de no dejar líneas vacías antes del script, ya que puede afectar el proceso de desofuscación y dar resultados inexactos.
3. Usa console.log();
* Encuentra el valor de retorno al final y cámbialo a `console.log(<variableDeRetornoDelEmpaquetador>);` para que se imprima el js desofuscado en lugar de ejecutarse.
* Luego, pega el js modificado (y aún ofuscado) en https://jsconsole.com/ para ver el js desofuscado registrado en la consola.
* Finalmente, pega la salida desofuscada en https://prettier.io/playground/ para embellecerla para el análisis.
* **Nota**: Si sigues viendo js empaquetado (pero diferente), puede estar empaquetado de forma recursiva. Repite el proceso.
4. Para algunas alternativas más modernas a JSNice, es posible que desees consultar lo siguiente:
* [https://github.com/pionxzh/wakaru](https://github.com/pionxzh/wakaru)
* > Descompilador, desempaquetador y kit de desminificación de JavaScript
> Wakaru es el descompilador de JavaScript para frontend moderno. Devuelve el código original de una fuente empaquetada y transpilada.
* [https://github.com/j4k0xb/webcrack](https://github.com/j4k0xb/webcrack)
* > Desofuscar obfuscator.io, desminificar y desempaquetar JavaScript empaquetado
* [https://github.com/jehna/humanify](https://github.com/jehna/humanify)
* > Desminificar código JavaScript utilizando ChatGPT
> Esta herramienta utiliza modelos de lenguaje grandes (como ChatGPT y llama2) y otras herramientas para desminificar código JavaScript. Ten en cuenta que los LLM no realizan cambios estructurales, solo proporcionan pistas para renombrar variables y funciones. El trabajo pesado lo realiza Babel a nivel de AST para garantizar que el código se mantenga equivalente 1 a 1.
* [https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html](https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html)
* > Usar LLM para revertir la minificación de nombres de variables de JavaScript
3. Usa `console.log()`;
* Encuentra el valor de retorno al final y cámbialo a `console.log(<variableDeRetornoDelEmpaquetador>);` para que se imprima el JavaScript desofuscado en lugar de ejecutarse.
* Luego, pega el JavaScript modificado (y aún ofuscado) en [https://jsconsole.com/](https://jsconsole.com/) para ver el JavaScript desofuscado registrado en la consola.
* Finalmente, pega la salida desofuscada en [https://prettier.io/playground/](https://prettier.io/playground/) para embellecerlo para el análisis.
* **Nota**: Si sigues viendo JavaScript empaquetado (pero diferente), puede estar empaquetado de forma recursiva. Repite el proceso.
Referencias
#### Referencias
* https://www.youtube.com/watch?v=_v8r_t4v6hQ
* https://blog.nvisium.com/angular-for-pentesters-part-1
* https://blog.nvisium.com/angular-for-pentesters-part-2
* [YouTube: DAST - Análisis Dinámico de JavaScript](https://www.youtube.com/watch?v=_v8r_t4v6hQ)
* [https://blog.nvisium.com/angular-for-pentesters-part-1](https://web.archive.org/web/20221226054137/https://blog.nvisium.com/angular-for-pentesters-part-1)
* [https://blog.nvisium.com/angular-for-pentesters-part-2](https://web.archive.org/web/20230204012439/https://blog.nvisium.com/angular-for-pentesters-part-2)
* [devalias](https://twitter.com/_devalias)'s [GitHub Gists](https://gist.github.com/0xdevalias):
* [Desofuscar/Desminificar Código de Aplicaciones Web Obfuscadas](https://gist.github.com/0xdevalias/d8b743efb82c0e9406fc69da0d6c6581#deobfuscating--unminifying-obfuscated-web-app-code)
* [Ingeniería Inversa de Aplicaciones Webpack](https://gist.github.com/0xdevalias/8c621c5d09d780b1d321bfdb86d67cdd#reverse-engineering-webpack-apps)
* [etc](https://gist.github.com/search?q=user:0xdevalias+javascript)
Herramientas
#### Herramientas
* https://portswigger.net/burp/documentation/desktop/tools/dom-invader
* [https://portswigger.net/burp/documentation/desktop/tools/dom-invader](https://portswigger.net/burp/documentation/desktop/tools/dom-invader)
#### Referencias Menos Utilizadas
* https://cyberchef.org/
* https://olajs.com/javascript-prettifier
* https://jshint.com/
* https://github.com/jshint/jshint/
* [https://cyberchef.org/](https://cyberchef.org/)
* [https://olajs.com/javascript-prettifier](https://olajs.com/javascript-prettifier)
* [https://jshint.com/](https://jshint.com/)
* [https://github.com/jshint/jshint/](https://github.com/jshint/jshint/)