mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-30 00:20:59 +00:00
499 lines
29 KiB
Markdown
499 lines
29 KiB
Markdown
# सोर्स कोड रिव्यू / SAST टूल्स
|
|
|
|
<details>
|
|
|
|
<summary><strong> AWS हैकिंग सीखें शुरुआत से लेकर एक्सपर्ट तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
|
|
|
HackTricks का समर्थन करने के अन्य तरीके:
|
|
|
|
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
|
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
|
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
|
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो करें**.
|
|
* **HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपोज़ में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें.
|
|
|
|
</details>
|
|
|
|
## मार्गदर्शन और टूल्स की सूचियाँ
|
|
|
|
* [**https://owasp.org/www-community/Source\_Code\_Analysis\_Tools**](https://owasp.org/www-community/Source\_Code\_Analysis\_Tools)
|
|
* [**https://github.com/analysis-tools-dev/static-analysis**](https://github.com/analysis-tools-dev/static-analysis)
|
|
|
|
## मल्टी-लैंग्वेज टूल्स
|
|
|
|
### [Naxus - AI-Gents](https://www.naxusai.com/)
|
|
|
|
PRs की समीक्षा के लिए एक **निःशुल्क पैकेज** है।
|
|
|
|
### [**Semgrep**](https://github.com/returntocorp/semgrep)
|
|
|
|
यह एक **ओपन सोर्स टूल** है।
|
|
|
|
#### समर्थित भाषाएँ
|
|
|
|
| श्रेणी | भाषाएँ |
|
|
| ------------ | ----------------------------------------------------------------------------------------------------- |
|
|
| GA | C# · Go · Java · JavaScript · JSX · JSON · PHP · Python · Ruby · Scala · Terraform · TypeScript · TSX |
|
|
| बीटा | Kotlin · Rust |
|
|
| प्रायोगिक | Bash · C · C++ · Clojure · Dart · Dockerfile · Elixir · HTML · Julia · Jsonnet · Lisp · |
|
|
|
|
#### त्वरित प्रारंभ
|
|
|
|
{% code overflow="wrap" %}
|
|
```bash
|
|
# Install https://github.com/returntocorp/semgrep#option-1-getting-started-from-the-cli
|
|
brew install semgrep
|
|
|
|
# Go to your repo code and scan
|
|
cd repo
|
|
semgrep scan --config auto
|
|
```
|
|
{% endcode %}
|
|
|
|
आप [**semgrep VSCode एक्सटेंशन**](https://marketplace.visualstudio.com/items?itemName=Semgrep.semgrep) का उपयोग करके VSCode के अंदर निष्कर्ष प्राप्त कर सकते हैं।
|
|
|
|
### [**SonarQube**](https://www.sonarsource.com/products/sonarqube/downloads/)
|
|
|
|
एक **निःशुल्क संस्करण** इंस्टॉल किया जा सकता है।
|
|
|
|
#### त्वरित प्रारंभ
|
|
|
|
{% code overflow="wrap" %}
|
|
```bash
|
|
# Run the paltform in docker
|
|
docker run -d --name sonarqube -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true -p 9000:9000 sonarqube:latest
|
|
# Install cli tool
|
|
brew install sonar-scanner
|
|
|
|
# Go to localhost:9000 and login with admin:admin or admin:sonar
|
|
# Generate a local project and then a TOKEN for it
|
|
|
|
# Using the token and from the folder with the repo, scan it
|
|
cd path/to/repo
|
|
sonar-scanner \
|
|
-Dsonar.projectKey=<project-name> \
|
|
-Dsonar.sources=. \
|
|
-Dsonar.host.url=http://localhost:9000 \
|
|
-Dsonar.token=<sonar_project_token>
|
|
```
|
|
{% endcode %}
|
|
|
|
### CodeQL
|
|
|
|
एक **स्थापित करने योग्य मुफ्त संस्करण** है लेकिन लाइसेंस के अनुसार आप **केवल मुफ्त CodeQL संस्करण का उपयोग ओपन सोर्स प्रोजेक्ट्स में कर सकते हैं**।
|
|
|
|
#### स्थापित करें
|
|
|
|
{% code overflow="wrap" %}
|
|
```bash
|
|
# Download your release from https://github.com/github/codeql-action/releases
|
|
## Example
|
|
wget https://github.com/github/codeql-action/releases/download/codeql-bundle-v2.14.3/codeql-bundle-osx64.tar.gz
|
|
|
|
# Move it to the destination folder
|
|
mkdir ~/codeql
|
|
mv codeql-bundle* ~/codeql
|
|
|
|
# Decompress it
|
|
cd ~/codeql
|
|
tar -xzvf codeql-bundle-*.tar.gz
|
|
rm codeql-bundle-*.tar.gz
|
|
|
|
# Add to path
|
|
echo 'export PATH="$PATH:/Users/username/codeql/codeql"' >> ~/.zshrc
|
|
|
|
# Check it's correctly installed
|
|
## Open a new terminal
|
|
codeql resolve qlpacks #Get paths to QL packs
|
|
```
|
|
#### त्वरित प्रारंभ - डेटाबेस तैयार करें
|
|
|
|
{% hint style="success" %}
|
|
सबसे पहले आपको **डेटाबेस तैयार करना** (कोड ट्री बनाना) होगा ताकि बाद में क्वेरीज़ इस पर चलाई जा सकें।
|
|
{% endhint %}
|
|
|
|
* आप codeql को रेपो की भाषा की पहचान स्वचालित रूप से करने और डेटाबेस बनाने की अनुमति दे सकते हैं
|
|
|
|
{% code overflow="wrap" %}
|
|
```bash
|
|
codeql database create <database> --language <language>
|
|
|
|
# Example
|
|
codeql database create /path/repo/codeql_db --source-root /path/repo
|
|
## DB will be created in /path/repo/codeql_db
|
|
```
|
|
{% endcode %}
|
|
|
|
{% hint style="danger" %}
|
|
यह **आमतौर पर एक त्रुटि को ट्रिगर करेगा** जिसमें कहा जाएगा कि एक से अधिक भाषा निर्दिष्ट की गई थी (या स्वचालित रूप से पता लगाया गया था)। **इसे ठीक करने के लिए अगले विकल्पों की जाँच करें**!
|
|
{% endhint %}
|
|
|
|
* आप यह **मैन्युअल रूप से संकेत करके** **रेपो** और **भाषा** को निर्दिष्ट कर सकते हैं ([भाषाओं की सूची](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))
|
|
|
|
{% code overflow="wrap" %}
|
|
```bash
|
|
codeql database create <database> --language <language> --source-root </path/to/repo>
|
|
|
|
# Example
|
|
codeql database create /path/repo/codeql_db --language javascript --source-root /path/repo
|
|
## DB will be created in /path/repo/codeql_db
|
|
```
|
|
{% endcode %}
|
|
|
|
* यदि आपका रेपो **एक से अधिक भाषा** का उपयोग कर रहा है, तो आप प्रत्येक भाषा को इंगित करते हुए **प्रत्येक भाषा के लिए 1 DB** भी बना सकते हैं।
|
|
|
|
{% code overflow="wrap" %}
|
|
```bash
|
|
export GITHUB_TOKEN=ghp_32849y23hij4...
|
|
codeql database create <database> --source-root /path/to/repo --db-cluster --language "javascript,python"
|
|
|
|
# Example
|
|
export GITHUB_TOKEN=ghp_32849y23hij4...
|
|
codeql database create /path/repo/codeql_db --source-root /path/to/repo --db-cluster --language "javascript,python"
|
|
## DBs will be created in /path/repo/codeql_db/*
|
|
```
|
|
{% endcode %}
|
|
|
|
* आप `codeql` को **सभी भाषाओं की पहचान करने** की अनुमति भी दे सकते हैं और प्रत्येक भाषा के लिए एक DB बना सकते हैं। आपको इसे एक **GITHUB\_TOKEN** देने की आवश्यकता है।
|
|
|
|
{% code overflow="wrap" %}
|
|
```bash
|
|
export GITHUB_TOKEN=ghp_32849y23hij4...
|
|
codeql database create <database> --db-cluster --source-root </path/to/repo>
|
|
|
|
# Example
|
|
export GITHUB_TOKEN=ghp_32849y23hij4...
|
|
codeql database create /tmp/codeql_db --db-cluster --source-root /path/repo
|
|
## DBs will be created in /path/repo/codeql_db/*
|
|
```
|
|
#### त्वरित प्रारंभ - कोड का विश्लेषण करें
|
|
|
|
{% hint style="success" %}
|
|
अब आखिरकार कोड का विश्लेषण करने का समय आ गया है
|
|
{% endhint %}
|
|
|
|
याद रखें कि यदि आपने कई भाषाओं का उपयोग किया है, तो **प्रत्येक भाषा के लिए एक DB** आपके द्वारा निर्दिष्ट पथ में बनाया गया होगा।
|
|
|
|
{% code overflow="wrap" %}
|
|
```bash
|
|
# Default analysis
|
|
codeql database analyze <database> --format=<format> --output=</out/file/path>
|
|
# Example
|
|
codeql database analyze /tmp/codeql_db/javascript --format=sarif-latest --output=/tmp/graphql_results.sarif
|
|
|
|
# Specify QL pack to use in the analysis
|
|
codeql database analyze <database> \
|
|
<qls pack> --sarif-category=<language> \
|
|
--sarif-add-baseline-file-info \ --format=<format> \
|
|
--output=/out/file/path>
|
|
# Example
|
|
codeql database analyze /tmp/codeql_db \
|
|
javascript-security-extended --sarif-category=javascript \
|
|
--sarif-add-baseline-file-info --format=sarif-latest \
|
|
--output=/tmp/sec-extended.sarif
|
|
```
|
|
#### त्वरित प्रारंभ - स्क्रिप्टेड
|
|
|
|
{% code overflow="wrap" %}
|
|
```bash
|
|
export GITHUB_TOKEN=ghp_32849y23hij4...
|
|
export REPO_PATH=/path/to/repo
|
|
export OUTPUT_DIR_PATH="$REPO_PATH/codeql_results"
|
|
mkdir -p "$OUTPUT_DIR_PATH"
|
|
export FINAL_MSG="Results available in: "
|
|
|
|
echo "Creating DB"
|
|
codeql database create "$REPO_PATH/codeql_db" --db-cluster --source-root "$REPO_PATH"
|
|
for db in `ls "$REPO_PATH/codeql_db"`; do
|
|
echo "Analyzing $db"
|
|
codeql database analyze "$REPO_PATH/codeql_db/$db" --format=sarif-latest --output="${OUTPUT_DIR_PATH}/$db).sarif"
|
|
FINAL_MSG="$FINAL_MSG ${OUTPUT_DIR_PATH}/$db.sarif ,"
|
|
echo ""
|
|
done
|
|
|
|
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) का उपयोग करके निष्कर्षों को देख सकते हैं।
|
|
|
|
आप [**VSCode एक्सटेंशन**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) का भी उपयोग कर सकते हैं ताकि VSCode के अंदर ही निष्कर्ष प्राप्त कर सकें। आपको अभी भी मैन्युअल रूप से एक डेटाबेस बनाने की आवश्यकता होगी, लेकिन फिर आप किसी भी फाइल को चुन सकते हैं और `Right Click` -> `CodeQL: Run Queries in Selected Files` पर क्लिक कर सकते हैं।
|
|
|
|
### [**Snyk**](https://snyk.io/product/snyk-code/)
|
|
|
|
एक **इंस्टॉल करने योग्य मुफ्त संस्करण** है।
|
|
|
|
#### त्वरित प्रारंभ
|
|
```bash
|
|
# Install
|
|
sudo npm install -g snyk
|
|
|
|
# Authenticate (you can use a free account)
|
|
snyk auth
|
|
|
|
# Test for open source vulns & license issues
|
|
snyk test [--all-projects]
|
|
|
|
# Test for code vulnerabilities
|
|
## This will upload your code and you need to enable this option in: Settings > Snyk Code
|
|
snyk test code
|
|
|
|
# Test for vulns in images
|
|
snyk container test [image]
|
|
|
|
# Test for IaC vulns
|
|
snyk iac test
|
|
```
|
|
आप [**snyk VSCode एक्सटेंशन**](https://marketplace.visualstudio.com/items?itemName=snyk-security.snyk-vulnerability-scanner) का उपयोग करके VSCode के अंदर निष्कर्ष प्राप्त कर सकते हैं।
|
|
|
|
### [Insider](https://github.com/insidersec/insider)
|
|
|
|
यह **ओपन सोर्स** है, परंतु **अनदेखी** लगती है।
|
|
|
|
#### समर्थित भाषाएँ
|
|
|
|
Java (Maven और Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C#, और Javascript (Node.js)।
|
|
|
|
#### त्वरित प्रारंभ
|
|
```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
|
|
$ tar -xf insider_2.1.0_linux_x86_64.tar.gz
|
|
$ chmod +x insider
|
|
$ ./insider --tech javascript --target <projectfolder>
|
|
```
|
|
### [**DeepSource**](https://deepsource.com/pricing) 
|
|
|
|
**सार्वजनिक रेपो** के लिए मुफ्त।
|
|
|
|
## NodeJS
|
|
|
|
* **`yarn`**
|
|
```bash
|
|
# Install
|
|
brew install yarn
|
|
# Run
|
|
cd /path/to/repo
|
|
yarn audit
|
|
npm audit
|
|
```
|
|
* **`pnpm`**
|
|
```bash
|
|
# Install
|
|
npm install -g pnpm
|
|
# Run
|
|
cd /path/to/repo
|
|
pnpm audit
|
|
```
|
|
* [**nodejsscan**](https://github.com/ajinabraham/nodejsscan)**:** Node.js एप्लिकेशन्स के लिए Static security code scanner (SAST) जो [libsast](https://github.com/ajinabraham/libsast) और [semgrep](https://github.com/returntocorp/semgrep) द्वारा संचालित है।
|
|
```bash
|
|
# Install & run
|
|
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)**:** Retire.js का उद्देश्य आपको ज्ञात कमजोरियों वाले JS-लाइब्रेरी संस्करणों के उपयोग का पता लगाने में मदद करना है।
|
|
```bash
|
|
# Install
|
|
npm install -g retire
|
|
# Run
|
|
cd /path/to/repo
|
|
retire --colors
|
|
```
|
|
## Electron
|
|
|
|
* [**electronegativity**](https://github.com/doyensec/electronegativity)**:** यह एक उपकरण है जो Electron-आधारित एप्लिकेशन्स में गलत कॉन्फ़िगरेशन और सुरक्षा विरोधी पैटर्न की पहचान करता है।
|
|
|
|
## Python
|
|
|
|
* [**Bandit**](https://github.com/PyCQA/bandit)**:** Bandit एक उपकरण है जिसे Python कोड में आम सुरक्षा मुद्दों को खोजने के लिए डिज़ाइन किया गया है। इसके लिए Bandit प्रत्येक फ़ाइल को प्रोसेस करता है, उससे एक AST बनाता है, और AST नोड्स के खिलाफ उपयुक्त प्लगइन्स को चलाता है। एक बार Bandit सभी फ़ाइलों की स्कैनिंग समाप्त कर लेता है, यह एक रिपोर्ट जनरेट करता है।
|
|
```bash
|
|
# Install
|
|
pip3 install bandit
|
|
|
|
# Run
|
|
bandit -r <path to folder>
|
|
```
|
|
* [**safety**](https://github.com/pyupio/safety): Safety पायथन निर्भरताओं को ज्ञात सुरक्षा संवेदनशीलताओं के लिए जांचता है और पता चली संवेदनशीलताओं के लिए उचित समाधान सुझाता है। Safety को डेवलपर मशीनों पर, CI/CD पाइपलाइनों में और प्रोडक्शन सिस्टम्स पर चलाया जा सकता है।
|
|
```bash
|
|
# Install
|
|
pip install safety
|
|
# Run
|
|
safety check
|
|
```
|
|
* [~~**Pyt**~~](https://github.com/python-security/pyt): अनदेखी की गई।
|
|
|
|
## .NET
|
|
```bash
|
|
# dnSpy
|
|
https://github.com/0xd4d/dnSpy
|
|
|
|
# .NET compilation
|
|
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe test.cs
|
|
```
|
|
## RUST
|
|
```bash
|
|
# Install
|
|
cargo install cargo-audit
|
|
|
|
# Run
|
|
cargo audit
|
|
|
|
#Update the Advisory Database
|
|
cargo audit fetch
|
|
```
|
|
## जावा
|
|
```bash
|
|
# JD-Gui
|
|
https://github.com/java-decompiler/jd-gui
|
|
|
|
# Java compilation step-by-step
|
|
javac -source 1.8 -target 1.8 test.java
|
|
mkdir META-INF
|
|
echo "Main-Class: test" > META-INF/MANIFEST.MF
|
|
jar cmvf META-INF/MANIFEST.MF test.jar test.class
|
|
```
|
|
| कार्य | कमांड |
|
|
| --------------- | --------------------------------------------------------- |
|
|
| जार निष्पादित करें | java -jar \[jar] |
|
|
| जार अनजिप करें | unzip -d \[output directory] \[jar] |
|
|
| जार बनाएं | jar -cmf META-INF/MANIFEST.MF \[output jar] \* |
|
|
| बेस64 SHA256 | sha256sum \[file] \| cut -d' ' -f1 \| xxd -r -p \| base64 |
|
|
| हस्ताक्षर हटाएं | rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA |
|
|
| जार से हटाएं | zip -d \[jar] \[file to remove] |
|
|
| क्लास डिकम्पाइल करें | procyon -o . \[path to class] |
|
|
| जार डिकम्पाइल करें | procyon -jar \[jar] -o \[output directory] |
|
|
| क्लास कम्पाइल करें | javac \[path to .java file] |
|
|
|
|
## Go
|
|
```bash
|
|
https://github.com/securego/gosec
|
|
```
|
|
## PHP
|
|
|
|
[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 Plugins
|
|
|
|
[https://www.pluginvulnerabilities.com/plugin-security-checker/](https://www.pluginvulnerabilities.com/plugin-security-checker/)
|
|
|
|
## Solidity
|
|
|
|
* [https://www.npmjs.com/package/solium](https://www.npmjs.com/package/solium)
|
|
|
|
## JavaScript
|
|
|
|
### Discovery
|
|
|
|
1. Burp:
|
|
* Spider और सामग्री की खोज करें
|
|
* Sitemap > filter
|
|
* Sitemap > डोमेन पर राइट-क्लिक > Engagement tools > Find scripts
|
|
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 करना संभव नहीं हो सकता है।
|
|
|
|
1. .map फाइलों का पता लगाएं और उपयोग करें:
|
|
* यदि .map फाइलें उजागर होती हैं, तो वे आसानी से deobfuscate करने के लिए उपयोग की जा सकती हैं।
|
|
* आमतौर पर, foo.js.map foo.js के लिए मैप करता है। उन्हें मैन्युअली खोजें।
|
|
* [JS Miner](https://github.com/PortSwigger/js-miner) का उपयोग करके उनकी खोज करें।
|
|
* सक्रिय स्कैन सुनिश्चित करें।
|
|
* '[Tips/Notes](https://github.com/minamo7sen/burp-JS-Miner/wiki#tips--notes)' पढ़ें।
|
|
* यदि मिल जाए, तो [Maximize](https://www.npmjs.com/package/maximize) का उपयोग करके deobfuscate करें।
|
|
2. .map फाइलों के बिना, JSnice का प्रयास करें:
|
|
* संदर्भ: http://jsnice.org/ & https://www.npmjs.com/package/jsnice
|
|
* टिप्स:
|
|
* यदि jsnice.org का उपयोग कर रहे हैं, तो "Nicify JavaScript" बटन के बगल में विकल्प बटन पर क्लिक करें, और "Infer types" को अन-सेलेक्ट करें ताकि कोड को कमेंट्स से भरने से बचा जा सके।
|
|
* सुनिश्चित करें कि स्क्रिप्ट से पहले कोई खाली लाइनें न छोड़ें, क्योंकि यह deobfuscation प्रक्रिया को प्रभावित कर सकता है और गलत परिणाम दे सकता है।
|
|
3. console.log() का उपयोग करें;
|
|
* अंत में रिटर्न वैल्यू ढूंढें और इसे `console.log(<packerReturnVariable>);` में बदल दें ताकि deobfuscated js प्रिंट हो जाए बजाय इसके कि वह execute हो।
|
|
* फिर, संशोधित (और अभी भी obfuscated) js को https://jsconsole.com/ में पेस्ट करें ताकि deobfuscated js को कंसोल में लॉग किया जा सके।
|
|
* अंत में, deobfuscated आउटपुट को https://prettier.io/playground/ में पेस्ट करें ताकि इसे विश्लेषण के लिए सुंदर बनाया जा सके।
|
|
* **नोट**: यदि आप अभी भी पैक किए गए (लेकिन अलग) js को देख रहे हैं, तो संभवतः यह पुनरावृत्ति से पैक किया गया है। प्रक्रिया को दोहराएं।
|
|
|
|
#### Analyze
|
|
|
|
संदर्भ: https://medium.com/techiepedia/javascript-code-review-guide-for-bug-bounty-hunters-c95a8aa7037a
|
|
|
|
खोजें के लिए:
|
|
|
|
* Anti-debug loading
|
|
* Angular: [enableProdMode](https://blog.nvisium.com/angular-for-pentesters-part-2)
|
|
* Secrets
|
|
* उपयोग करें:
|
|
* [JS Miner](https://github.com/PortSwigger/js-miner)
|
|
* [RegHex](https://github.com/l4yton/RegHex) पैटर्न
|
|
* [gf](https://github.com/tomnomnom/gf/tree/master/examples) पैटर्न
|
|
* संबंधित शब्दकोश पैटर्न के लिए Grep करें:
|
|
* pass, user, admin
|
|
* auth, login, sign, challenge, 2fa
|
|
* key, apikey, api\_key, api-key, jwt, token
|
|
* secret, security, secure
|
|
* ...
|
|
* मैन्युअल समीक्षा
|
|
* यदि API कुंजी मिली है, तो संभावित उपयोग सिंटैक्स के लिए यहां जांचें: https://github.com/streaak/keyhacks.
|
|
* Vuln functions
|
|
* InnerHTML() - यदि आपको यह मिला है, तो इसका मतलब है कि यदि उचित सैनिटाइजेशन नहीं होता है तो XSS के लिए संभावित अवसर हो सकता है। यहां तक कि अगर आपका पेलोड सैनिटाइज किया जाता है, तो चिंता न करें। कोड का अनुसरण करें और पता लगाएं कि सैनिटाइजेशन कहां होता है। इसे अध्ययन करें और सैनिटाइजेशन को पार करने का प्रयास करें।
|
|
* Postmessage() - यदि आपने मेरी पिछली पोस्ट (https://medium.com/techiepedia/what-are-sop-cors-and-ways-to-exploit-it-62a5e02100dc) पढ़ी है, तो आप देखेंगे कि Postmessage() संभावित CORS मुद्दे की ओर ले जा सकता है। यदि फ़ंक्शन का दूसरा पैरामीटर \* पर सेट है, तो आप भाग्यशाली हैं। मेरी पिछली पोस्ट को देखें ताकि इसके पीछे के तंत्र को और अधिक समझ सकें।
|
|
* String.prototype.search() - यह फ़ंक्शन सामान्य लगता है। यह खतरनाक फ़ंक्शन क्यों हो सकता है? खैर, इसका कारण यह है कि कुछ डेवलपर्स ने इसका उपयोग एक स्ट्रिंग के अंदर दूसरी स्ट्रिंग की घटना को ढूंढने के लिए किया है। हालांकि, इस फ़ंक्शन में “.” वाइल्डकार्ड के रूप में माना जाता है। इसलिए, यदि इस फ़ंक्शन का उपयोग सैनिटाइजेशन चेक के रूप में किया जाता है, तो आप इसे “.” इनपुट करके आसानी से बायपास कर सकते हैं। Filedescryptor की hackerone रिपोर्ट देखें: https://hackerone.com/reports/129873
|
|
* Endpoints & params
|
|
* [LinkFinder](https://github.com/GerbenJavado/LinkFinder) और [JS Miner](https://github.com/PortSwigger/js-miner) का उपयोग करें।
|
|
* Vuln libs & deps
|
|
* [Retire.js](https://retirejs.github.io/retire.js/) और [NPM](https://snyk.io/advisor/) (नीचे स्क्रॉल करें सुरक्षा अनुभाग > सभी संस्करण लिंक) का उपयोग करें।
|
|
* Cloud URLs
|
|
* [JS Miner](https://github.com/PortSwigger/js-miner) का उपयोग करें।
|
|
* Subdomains
|
|
* [JS Miner](https://github.com/PortSwigger/js-miner) का उपयोग करें।
|
|
* Logic Flaws
|
|
* स्थितिजन्य जागरूकता प्राप्त करें:
|
|
* `use strict;`?
|
|
* क्लाइंट-साइड नियंत्रणों के लिए Grep करें:
|
|
* disable, enable, hidden, hide, show
|
|
* catch, finally, throw, try
|
|
* input, validate, verify, valid, correct, check, confirm, require, ..
|
|
* गैर-प्राइमेटिव्स के लिए Grep करें:
|
|
* function , =>
|
|
* class
|
|
|
|
### Dynamic Analysis
|
|
|
|
संदर्भ
|
|
|
|
* 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
|
|
|
|
उपकरण
|
|
|
|
* https://portswigger.net/burp/documentation/desktop/tools/dom-invader
|
|
|
|
#### Less Used References
|
|
|
|
* https://cyberchef.org/
|
|
* https://olajs.com/javascript-prettifier
|
|
* https://jshint.com/
|
|
* https://github.com/jshint/jshint/
|
|
|
|
<details>
|
|
|
|
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
HackTricks का समर्थन करने के अन्य तरीके:
|
|
|
|
* यदि आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं या **HackTricks को PDF में डाउनलोड** करना चाहते हैं, तो [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) देखें!
|
|
* [**official PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
|
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
|
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **का पालन करें**।
|
|
* **HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
|
|
|
</details>
|