Parametre Keşfi

Parametre Keşfi (Parameter Discovery) , bir web uygulamasında veya API'de gizli, unutulmuş veya güvenlik açığı içerebilecek parametreleri bulma sürecidir. Bug bounty ve pentest'lerde en kritik aşamalardan biridir. Çünkü parametreler, IDOR, SQL injection, XSS, SSRF, LFI/RFI, açık yönlendirme ve daha birçok zafiyetin kapısını aralar.

Parametre Keşfi Neden Önemlidir?
IDOR: user_id, order_id, file_id gibi parametreler

SQL/NoSQL Injection: id, name, search gibi parametreler

XSS: q, search, redirect gibi parametreler

SSRF: url, path, image gibi parametreler

LFI/RFI: page, file, include gibi parametreler

Open Redirect: next, redirect, return_to gibi parametreler

Host Header Injection: Host header'ı

Parametre Keşfi Yöntemleri:
1. Wayback Machine (Tarihsel Veri)
Araçlar: waybackurls, gau, gospider, hakrawler

Çalışma Prensibi: Internet Archive (Wayback Machine) ve diğer arşivlerdeki tarihsel URL'lerden parametre çıkarma.

Kullanım:

bash
# Waybackurls
waybackurls hedef.com | grep '?' | cut -d '?' -f2 | tr '&' '\n' | cut -d '=' -f1 | sort -u

# Gau (GetAllUrls)
gau hedef.com | grep '?' | unfurl keys | sort -u

# Katana (crawler)
katana -u hedef.com -silent | grep '?' | unfurl keys
2. Web Crawling
Araçlar: katana, hakrawler, gospider, gobuster, ffuf

Çalışma Prensibi: Web sitesini gezerek (crawl) linklerden ve formlardan parametre toplama.

Kullanım:

bash
# Katana (en modern)
katana -u https://hedef.com -c 50 -silent -o urls.txt
cat urls.txt | grep '?' | unfurl keys | sort -u

# Hakrawler
hakrawler -url https://hedef.com -subs -plain >> urls.txt

# Gospider
gospider -s https://hedef.com -o output
3. JavaScript Parsing
Araçlar: waybackurls, gau, katana, subjs, unfurl

Çalışma Prensibi: JavaScript dosyalarındaki endpoint URL'lerini ve parametreleri çıkarma.

Kullanım:

bash
# JavaScript dosyalarını topla
katana -u https://hedef.com -jc -silent -o js_urls.txt

# JavaScript'ten URL çıkar
grep -oP '(?:https?://|//)[^"\s]+' js_urls.txt | sort -u

# Parametre çıkar
cat js_urls.txt | grep '?' | unfurl keys | sort -u
4. Fuzzing (Brute Force)
Araçlar: ffuf, gobuster, wfuzz, dirsearch, paramspider

Çalışma Prensibi: Olası parametre isimleri ile URL'leri test etme.

Kullanım:

bash
# Paramspider (passive parameter discovery)
paramspider -d hedef.com

# FFUF ile parameter fuzzing
ffuf -u https://hedef.com/index.php?FUZZ=test -w params.txt -fs 0

# Gobuster ile parameter fuzzing
gobuster dir -u https://hedef.com -w params.txt -x php,html,txt
5. HTTP Headers
Çalışma Prensibi: HTTP header'larını analiz ederek parametre keşfi.

Kullanım:

bash
curl -I https://hedef.com
# X-Powered-By, Server, Cache-Control, vb.

# Headers'dan parameter çıkar
curl -sI https://hedef.com | grep -i 'set-cookie'
6. API Keşfi
Araçlar: apinuro, apicomb, waybackurls, gau

Çalışma Prensibi: API endpoint'lerini ve parametrelerini keşfetme.

Kullanım:

bash
# API endpoint'leri
gau hedef.com | grep -E '/(api|v1|v2|v3|swagger|openapi|graphql|rest|grpc)'

# GraphQL endpoint'leri
katana -u hedef.com -silent | grep -i graphql
Parametre Keşfi Araçları (Detaylı):
1. Paramspider
Açıklama: Passive parameter discovery aracı. Wayback, CommonCrawl ve diğer kaynaklardan parametre toplar.

Kurulum:

bash
git clone https://github.com/devanshbatham/paramspider
cd paramspider
pip install -r requirements.txt
Kullanım:

bash
# Temel
python3 paramspider.py -d hedef.com

# Çıktı
python3 paramspider.py -d hedef.com -o params.txt

# Subdomain'ler ile
python3 paramspider.py -d hedef.com --subs
Çıktı Formatı:

text
2. Arjun (Parametre Fuzzer)
Açıklama: HTTP parametre fuzzer. GET ve POST parametrelerini bulur.

Kurulum:

bash
pip install arjun
Kullanım:

bash
# Temel
arjun -u https://hedef.com/index.php

# POST method
arjun -u https://hedef.com/api/login -m POST

# Wordlist ile
arjun -u https://hedef.com/index.php -w /path/to/wordlist.txt

# Rate limiting
arjun -u https://hedef.com/index.php -t 50

# Çıktı
arjun -u https://hedef.com/index.php -o params.txt
3. FFUF (Fuzzing)
Açıklama: Web fuzzing aracı. Parametre keşfi, directory brute force, subdomain fuzzing için.

Kurulum:

bash
go install github.com/ffuf/ffuf/v2@latest
Kullanım:

bash
# GET parameter fuzzing
ffuf -u https://hedef.com/index.php?FUZZ=test -w params.txt -fs 0

# POST parameter fuzzing
ffuf -u https://hedef.com/index.php -X POST -d "FUZZ=test" -w params.txt -fs 0

# Header fuzzing
ffuf -u https://hedef.com -H "X-Forwarded-For: FUZZ" -w ip_list.txt -fs 0

# JSON parameter fuzzing
ffuf -u https://hedef.com/api -X POST -d '{"FUZZ":"test"}' -w params.txt -fs 0
4. HTTPx
Açıklama: HTTP probing aracı. Parametre keşfi için de kullanılabilir.

Kurulum:

bash
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
Kullanım:

bash
# Canlı URL'leri tespit et
httpx -l urls.txt -silent -o live_urls.txt

# Parametreleri listele
httpx -l live_urls.txt -silent | unfurl keys
5. Unfurl
Açıklama: Tom Nomnom'un URL parsing aracı. URL'lerden parametre, domain, path çıkarma.

Kurulum:

bash
go install github.com/tomnomnom/unfurl@latest
Kullanım:

bash
# Parametreleri çıkar
cat urls.txt | unfurl keys | sort -u

# Unique domain'ler
cat urls.txt | unfurl domains | sort -u

# Unique path'ler
cat urls.txt | unfurl paths | sort -u
6. QsReplace
Açıklama: Parametre keşfi için filtreleme aracı.

Kurulum:

bash
go install github.com/tomnomnom/qsreplace@latest
Kullanım:

bash
# URL'leri listele
cat urls.txt | qsreplace 'FUZZ'

# Fuzzing için hazırlık
cat urls.txt | qsreplace 'test' | grep '?'
Parametre Wordlist'leri:
bash
# Common parameters
api
id
user
user_id
username
email
password
token
auth
key
secret
page
limit
offset
sort
order
search
q
query
filter
include
exclude
url
redirect
next
return_to
file
path
image
img
type
category
tag
status
lang
locale
timezone
format
callback
callback_url
webhook
webhook_url
hook
signature
nonce
timestamp
expires
expiry
date
from
to
start
end
before
after
GitHub'dan Parametre Wordlist:

bash
# Paramspider wordlist
git clone https://github.com/devanshbatham/paramspider
cd paramspider
cat wordlists/params.txt

# Commonspeak parameters
curl -s https://raw.githubusercontent.com/assetnote/commonspeak2-wordlists/master/parameters/parameters.txt > params.txt
Parametre Keşfi Pipeline (Full Automation):
bash
#!/bin/bash
# Full parameter discovery pipeline

DOMAIN=$1
OUTPUT_DIR="param_discovery_$DOMAIN"
mkdir -p $OUTPUT_DIR

echo "[1] URL Collection"
# Waybackurls
waybackurls $DOMAIN > $OUTPUT_DIR/wayback_urls.txt

# Gau
gau $DOMAIN >> $OUTPUT_DIR/wayback_urls.txt

# Katana (crawler)
katana -u https://$DOMAIN -c 50 -silent -o $OUTPUT_DIR/crawl_urls.txt

echo "[2] JavaScript URL Collection"
cat $OUTPUT_DIR/crawl_urls.txt | grep "\.js" > $OUTPUT_DIR/js_urls.txt
katana -u https://$DOMAIN -jc -silent -o $OUTPUT_DIR/js_urls_katana.txt

echo "[3] Parameter Extraction"
cat $OUTPUT_DIR/*.txt | grep '?' | sort -u > $OUTPUT_DIR/all_urls.txt
cat $OUTPUT_DIR/all_urls.txt | unfurl keys | sort -u > $OUTPUT_DIR/parameters.txt

echo "[4] Parameter Filtering"
# Sadece parametre içeren URL'ler
grep '?' $OUTPUT_DIR/all_urls.txt > $OUTPUT_DIR/urls_with_params.txt

echo "[5] Paramspider (Passive)"
paramspider -d $DOMAIN --subs -o $OUTPUT_DIR/paramspider.txt

echo "[6] Arjun (Active) - Sadece canlı URL'ler için"
httpx -l $OUTPUT_DIR/urls_with_params.txt -silent -o $OUTPUT_DIR/live_urls.txt
arjun -u https://$DOMAIN -o $OUTPUT_DIR/arjun_params.txt

echo "[7] Result"
echo "Total URLs: $(cat $OUTPUT_DIR/all_urls.txt | wc -l)"
echo "Unique Parameters: $(cat $OUTPUT_DIR/parameters.txt | wc -l)"
echo "Live URLs with params: $(cat $OUTPUT_DIR/live_urls.txt | wc -l)"
Parametre Keşfi Kontrol Listesi:
A. Pasif Keşif:
Wayback Machine URL'leri toplandı mı?

Gau ile CommonCrawl URL'leri toplandı mı?

Paramspider ile parametre toplandı mı?

JavaScript dosyaları analiz edildi mi?

B. Aktif Keşif:
Web crawling yapıldı mı?

Directory brute force yapıldı mı?

Parametre fuzzing yapıldı mı?

Header analizi yapıldı mı?

C. Analiz:
Parametreler sınıflandırıldı mı?

IDOR parametreleri tespit edildi mi?

Injection parametreleri tespit edildi mi?

SSR parametreleri tespit edildi mi?

Parametre Keşfi Best Practices:
Pasif ve Aktif yöntemleri birleştirin

Birden fazla araç kullanın

Wordlist'leri güncel tutun

Rate limiting'e dikkat edin

Sonuçları doğrulayın (canlı URL'ler)

JavaScript dosyalarını analiz edin

API endpoint'lerini hedef alın

Header'ları kontrol edin

🔒 Bu içeriği görmek için giriş yapın

 
Yanıt yazmak için giriş yapmalısınız
Forum özelliklerini kullanmak ve Level 2 üyelik satın almak için hesabınıza giriş yapın.
133,663Konular
3,288,262Mesajlar
324,335Kullanıcılar
hbi14Son Üye
Üst Alt