mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-15 09:27:32 +00:00
Translated ['network-services-pentesting/pentesting-web/code-review-tool
This commit is contained in:
parent
2fcbadbe51
commit
9adc4e5b23
2 changed files with 44 additions and 27 deletions
|
@ -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)
|
||||
|
|
|
@ -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/)
|
||||
|
|
Loading…
Reference in a new issue