mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-21 20:23:18 +00:00
Translated ['network-services-pentesting/pentesting-web/code-review-tool
This commit is contained in:
parent
63c91c5b8d
commit
491702a5cd
1 changed files with 50 additions and 46 deletions
|
@ -1,8 +1,8 @@
|
|||
# Огляд вихідного коду / Інструменти SAST
|
||||
|
||||
{% hint style="success" %}
|
||||
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Вивчайте та практикуйте AWS Hacking:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Вивчайте та практикуйте GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -32,7 +32,7 @@
|
|||
|
||||
#### Підтримувані мови
|
||||
|
||||
| Категорія | Мови |
|
||||
| Категорія | Мови |
|
||||
| ------------ | ----------------------------------------------------------------------------------------------------- |
|
||||
| GA | C# · Go · Java · JavaScript · JSX · JSON · PHP · Python · Ruby · Scala · Terraform · TypeScript · TSX |
|
||||
| Beta | Kotlin · Rust |
|
||||
|
@ -222,7 +222,7 @@ echo $FINAL_MSG
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Ви можете візуалізувати результати в [**https://microsoft.github.io/sarif-web-component/**](https://microsoft.github.io/sarif-web-component/) або за допомогою розширення VSCode [**SARIF viewer**](https://marketplace.visualstudio.com/items?itemName=MS-SarifVSCode.sarif-viewer).
|
||||
Ви можете візуалізувати результати на [**https://microsoft.github.io/sarif-web-component/**](https://microsoft.github.io/sarif-web-component/) або за допомогою розширення VSCode [**SARIF viewer**](https://marketplace.visualstudio.com/items?itemName=MS-SarifVSCode.sarif-viewer).
|
||||
|
||||
Ви також можете використовувати [**розширення VSCode**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) для отримання результатів всередині VSCode. Вам все ще потрібно буде створити базу даних вручну, але потім ви можете вибрати будь-які файли та натиснути `Правий клік` -> `CodeQL: Запустити запити у вибраних файлах`
|
||||
|
||||
|
@ -269,7 +269,7 @@ $ tar -xf insider_2.1.0_linux_x86_64.tar.gz
|
|||
$ chmod +x insider
|
||||
$ ./insider --tech javascript --target <projectfolder>
|
||||
```
|
||||
### [**DeepSource**](https://deepsource.com/pricing) 
|
||||
### [**DeepSource**](https://deepsource.com/pricing)
|
||||
|
||||
Безкоштовно для **публічних репозиторіїв**.
|
||||
|
||||
|
@ -281,7 +281,10 @@ $ ./insider --tech javascript --target <projectfolder>
|
|||
brew install yarn
|
||||
# Run
|
||||
cd /path/to/repo
|
||||
yarn audit
|
||||
yarn install
|
||||
yarn audit # In lower versions
|
||||
yarn npm audit # In 2+ versions
|
||||
|
||||
npm audit
|
||||
```
|
||||
* **`pnpm`**
|
||||
|
@ -290,6 +293,7 @@ npm audit
|
|||
npm install -g pnpm
|
||||
# Run
|
||||
cd /path/to/repo
|
||||
pnpm install
|
||||
pnpm audit
|
||||
```
|
||||
* [**nodejsscan**](https://github.com/ajinabraham/nodejsscan)**:** Статичний сканер безпеки коду (SAST) для додатків Node.js, що працює на базі [libsast](https://github.com/ajinabraham/libsast) та [semgrep](https://github.com/returntocorp/semgrep).
|
||||
|
@ -360,17 +364,17 @@ mkdir META-INF
|
|||
echo "Main-Class: test" > META-INF/MANIFEST.MF
|
||||
jar cmvf META-INF/MANIFEST.MF test.jar test.class
|
||||
```
|
||||
| Task | Command |
|
||||
| --------------- | --------------------------------------------------------- |
|
||||
| Execute Jar | java -jar \[jar] |
|
||||
| Unzip Jar | unzip -d \[output directory] \[jar] |
|
||||
| Create Jar | jar -cmf META-INF/MANIFEST.MF \[output jar] \* |
|
||||
| Base64 SHA256 | sha256sum \[file] \| cut -d' ' -f1 \| xxd -r -p \| base64 |
|
||||
| Remove Signing | rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA |
|
||||
| Delete from Jar | zip -d \[jar] \[file to remove] |
|
||||
| Decompile class | procyon -o . \[path to class] |
|
||||
| Decompile Jar | procyon -jar \[jar] -o \[output directory] |
|
||||
| Compile class | javac \[path to .java file] |
|
||||
| Завдання | Команда |
|
||||
| ---------------- | -------------------------------------------------------- |
|
||||
| Виконати Jar | java -jar \[jar] |
|
||||
| Розпакувати Jar | unzip -d \[output directory] \[jar] |
|
||||
| Створити Jar | jar -cmf META-INF/MANIFEST.MF \[output jar] \* |
|
||||
| Base64 SHA256 | sha256sum \[file] \| cut -d' ' -f1 \| xxd -r -p \| base64 |
|
||||
| Видалити підпис | rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA |
|
||||
| Видалити з Jar | zip -d \[jar] \[file to remove] |
|
||||
| Декомпілювати клас | procyon -o . \[path to class] |
|
||||
| Декомпілювати Jar | procyon -jar \[jar] -o \[output directory] |
|
||||
| Скомпілювати клас | javac \[path to .java file] |
|
||||
|
||||
## Перейти
|
||||
```bash
|
||||
|
@ -380,7 +384,7 @@ https://github.com/securego/gosec
|
|||
|
||||
[Psalm](https://phpmagazine.net/2018/12/find-errors-in-your-php-applications-with-psalm.html) та [PHPStan](https://phpmagazine.net/2020/09/phpstan-pro-edition-launched.html).
|
||||
|
||||
### Wordpress Плагіни
|
||||
### Wordpress Plugins
|
||||
|
||||
[https://www.pluginvulnerabilities.com/plugin-security-checker/](https://www.pluginvulnerabilities.com/plugin-security-checker/)
|
||||
|
||||
|
@ -390,7 +394,7 @@ https://github.com/securego/gosec
|
|||
|
||||
## JavaScript
|
||||
|
||||
### Виявлення
|
||||
### Discovery
|
||||
|
||||
1. Burp:
|
||||
* Spider та виявлення контенту
|
||||
|
@ -399,15 +403,15 @@ https://github.com/securego/gosec
|
|||
2. [WaybackURLs](https://github.com/tomnomnom/waybackurls):
|
||||
* `waybackurls <domain> |grep -i "\.js" |sort -u`
|
||||
|
||||
### Статичний аналіз
|
||||
### Static Analysis
|
||||
|
||||
#### Розпакування/Краса/Прикрашання
|
||||
#### Unminimize/Beautify/Prettify
|
||||
|
||||
* [https://prettier.io/playground/](https://prettier.io/playground/)
|
||||
* [https://beautifier.io/](https://beautifier.io/)
|
||||
* Дивіться деякі з інструментів, згаданих у 'Деобфускація/Розпакування' нижче.
|
||||
* Дивіться деякі з інструментів, згаданих у 'Deobfuscate/Unpack' нижче.
|
||||
|
||||
#### Деобфускація/Розпакування
|
||||
#### Deobfuscate/Unpack
|
||||
|
||||
**Примітка**: Можливо, не вдасться повністю деобфускувати.
|
||||
|
||||
|
@ -416,45 +420,45 @@ https://github.com/securego/gosec
|
|||
* Зазвичай, foo.js.map відповідає foo.js. Шукайте їх вручну.
|
||||
* Використовуйте [JS Miner](https://github.com/PortSwigger/js-miner) для їх пошуку.
|
||||
* Переконайтеся, що активне сканування проводиться.
|
||||
* Читайте '[Поради/Примітки](https://github.com/minamo7sen/burp-JS-Miner/wiki#tips--notes)'
|
||||
* Якщо знайдено, використовуйте [Maximize](https://www.npmjs.com/package/maximize) для деобфускації.
|
||||
* Читайте '[Tips/Notes](https://github.com/minamo7sen/burp-JS-Miner/wiki#tips--notes)'
|
||||
* Якщо знайдено, використовуйте [Maximize](https://www.npmjs.com/package/maximize) для деобфускування.
|
||||
2. Без .map файлів спробуйте JSnice:
|
||||
* Посилання: [http://jsnice.org/](http://jsnice.org/) & [https://www.npmjs.com/package/jsnice](https://www.npmjs.com/package/jsnice)
|
||||
* Поради:
|
||||
* Якщо використовуєте jsnice.org, натисніть на кнопку параметрів поруч із кнопкою "Nicify JavaScript" і зніміть вибір з "Infer types", щоб зменшити захаращення коду коментарями.
|
||||
* Переконайтеся, що ви не залишаєте жодних порожніх рядків перед скриптом, оскільки це може вплинути на процес деобфускації та дати неточні результати.
|
||||
4. Для деяких сучасніших альтернатив JSNice, ви можете розглянути наступні:
|
||||
* Переконайтеся, що ви не залишаєте жодних порожніх рядків перед скриптом, оскільки це може вплинути на процес деобфускування та дати неточні результати.
|
||||
3. Для деяких сучасних альтернатив JSNice, ви можете розглянути наступні:
|
||||
|
||||
* [https://github.com/pionxzh/wakaru](https://github.com/pionxzh/wakaru)
|
||||
* > Javascript декомпілятор, розпаковувач та інструмент для розпакування
|
||||
> Wakaru - це Javascript декомпілятор для сучасного фронтенду. Він відновлює оригінальний код з упакованого та транспільованого джерела.
|
||||
* > Javascript декомпілятор, розпаковувач та інструмент для розмінювання Wakaru є Javascript декомпілятором для сучасного фронтенду. Він відновлює оригінальний код з упакованого та транспільованого джерела.
|
||||
* [https://github.com/j4k0xb/webcrack](https://github.com/j4k0xb/webcrack)
|
||||
* > Деобфускація obfuscator.io, розпакування та розпакування упакованого javascript
|
||||
* > Деобфускувати obfuscator.io, розмінювати та розпаковувати упакований javascript
|
||||
* [https://github.com/jehna/humanify](https://github.com/jehna/humanify)
|
||||
* > Розпакування Javascript коду за допомогою ChatGPT
|
||||
> Цей інструмент використовує великі мовні моделі (як ChatGPT та llama2) та інші інструменти для розпакування Javascript коду. Зверніть увагу, що LLM не вносять жодних структурних змін – вони лише надають підказки для перейменування змінних та функцій. Основна робота виконується Babel на рівні AST, щоб забезпечити збереження коду в еквівалентному вигляді 1-1.
|
||||
* > Розмінювати Javascript код за допомогою ChatGPT Цей інструмент використовує великі мовні моделі (як ChatGPT та llama2) та інші інструменти для розмінювання Javascript коду. Зверніть увагу, що LLM не виконують жодних структурних змін – вони лише надають підказки для перейменування змінних та функцій. Важка робота виконується Babel на рівні AST, щоб забезпечити збереження коду в еквівалентному вигляді 1-1.
|
||||
* [https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html](https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html)
|
||||
* > Використання LLM для скасування мінімізації імен змінних JavaScript
|
||||
|
||||
3. Використовуйте `console.log()`;
|
||||
* Знайдіть значення повернення в кінці та змініть його на `console.log(<packerReturnVariable>);`, щоб деобфускований js виводився замість виконання.
|
||||
* Потім вставте модифікований (і все ще обфускований) js у [https://jsconsole.com/](https://jsconsole.com/), щоб побачити деобфускований js, виведений у консолі.
|
||||
* Нарешті, вставте деобфускований вихід у [https://prettier.io/playground/](https://prettier.io/playground/), щоб прикрасити його для аналізу.
|
||||
* Нарешті, вставте деобфускований вихід у [https://prettier.io/playground/](https://prettier.io/playground/), щоб покращити його для аналізу.
|
||||
* **Примітка**: Якщо ви все ще бачите упакований (але інший) js, можливо, він упакований рекурсивно. Повторіть процес.
|
||||
|
||||
#### Посилання
|
||||
#### References
|
||||
|
||||
* [YouTube: DAST - Javascript Динамічний Аналіз](https://www.youtube.com/watch?v=_v8r_t4v6hQ)
|
||||
* [YouTube: DAST - Javascript Dynamic Analysis](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):
|
||||
* [Деобфускація / Розпакування обфускованого коду веб-додатка](https://gist.github.com/0xdevalias/d8b743efb82c0e9406fc69da0d6c6581#deobfuscating--unminifying-obfuscated-web-app-code)
|
||||
* [Реверс інженерія Webpack додатків](https://gist.github.com/0xdevalias/8c621c5d09d780b1d321bfdb86d67cdd#reverse-engineering-webpack-apps)
|
||||
* [devalias](https://twitter.com/\_devalias)'s [GitHub Gists](https://gist.github.com/0xdevalias):
|
||||
* [Деобфускування / Розмінювання обфускованого коду веб-додатка](https://gist.github.com/0xdevalias/d8b743efb82c0e9406fc69da0d6c6581#deobfuscating--unminifying-obfuscated-web-app-code)
|
||||
* [Реверс інженерії веб-додатків Webpack](https://gist.github.com/0xdevalias/8c621c5d09d780b1d321bfdb86d67cdd#reverse-engineering-webpack-apps)
|
||||
* [тощо](https://gist.github.com/search?q=user:0xdevalias+javascript)
|
||||
|
||||
#### Інструменти
|
||||
#### Tools
|
||||
|
||||
* [https://portswigger.net/burp/documentation/desktop/tools/dom-invader](https://portswigger.net/burp/documentation/desktop/tools/dom-invader)
|
||||
|
||||
#### Менш використовувані посилання
|
||||
#### Less Used References
|
||||
|
||||
* [https://cyberchef.org/](https://cyberchef.org/)
|
||||
* [https://olajs.com/javascript-prettifier](https://olajs.com/javascript-prettifier)
|
||||
|
@ -462,16 +466,16 @@ https://github.com/securego/gosec
|
|||
* [https://github.com/jshint/jshint/](https://github.com/jshint/jshint/)
|
||||
|
||||
{% hint style="success" %}
|
||||
Вчіться та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Вчіться та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Підтримати HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
|
||||
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
Loading…
Reference in a new issue