Web Sitenizdeki Güvenlik Açıklarını Google Dorking ile Test Etme Rehberi

Web Sitenizdeki Güvenlik Açıklarını Google Dorking ile Test Etme Rehberi

Web Güvenliği: Google/Bing/DuckDuckGo Dorking, Burp Suite, OSINT & Otomasyonu 

ÖNEMLİ YASAL UYARI


YASAL VE ETİK SORUMLULUK UYARISI             

                                                              
  🚫 BU REHBER YALNIZCA:                                     
  ✅ Kendi web sitenizde/sistemlerinizde                     
  ✅ Yazılı izin aldığınız sistemlerde                       
  ✅ Yasal penetration testing projelerinde                  
  ✅ Eğitim ve güvenlik farkındalığında kullanılabilir       
                                                              
  🚫 BU REHBER İLE YAPILMASI YASAK:                          
  ❌ İzinsiz 3. taraf sistemlere saldırı                     
  ❌ Başkasının verilerine yetkisiz erişim                   
  ❌ Ticari maalsı ve kötü niyetli amaçlar                   
                                                              
                                                   
  Türk Ceza Kanunu (TCK) 215, 217, 524 maddeleri             
             
                                                              
  BAŞLAMADAN ÖNCE:                                        
  1. Yazılı yetkilendirme alınız (email/sözleşme)           
  2. İzin kapsamını net belirleyin                           
  3. Kanuni danışman ile danışınız                           
  4. Denetim izleri tutunuz   


Google Dorking Nedir?

Tanım

Google Dorking (veya Google Hacking), Google arama motorunun gelişmiş operatörlerini kullanarak normalde erişilmesi zor olan veya gizlenmiş bilgileri bulmak tekniğidir.

Örnek:
❌ Zayıf Arama: "password"
✅ Güçlü Dorking: intitle:"index of" site:hedefsite.com filetype:sql

Sonuç: Sitenizde açıkta kalmış SQL dosyaları bulunur

Dorking vs. Hacking Farkı

Dorking Hacking
Yasal (çoğunlukla) Yasadışı
Herkese açık verileri kullanır Güvenlik kırmaya çalışır
Arama motoru operatörü Yazılım açıklarını istismar
Pasif keşif Aktif saldırı
"Elimde ne var?" "Nasıl içeri girebilirim?"

Gerçek Dünya Örnekleri

📰 SKANDALLAR:

1. Tesla (2018)
   └─ Google Dorking → Tesla'nın dahili belgeler bulundu
   └─ Tüm çalışanlarının E-mail listesi
   └─ Patent bilgileri
   └─ Sonuç: Acil olarak gizlendi

2. Yahoo (2014)
   └─ Exposed phpmyadmin arayüzü (dorking ile)
   └─ 500 milyon kullanıcı verisi sızdı
   
3. Fort Meade (ABD Askeri Üs)
   └─ intitle:"Fort Meade" intext:password
   └─ Açık havada radar görüntüleri
   └─ Sonuç: Derhal silinmiş

4. Twitter API Keys (2021)
   └─ filetype:env site:github.com intext:API_KEY
   └─ Yüzlerce gizli anahtar tespit edilmiş

Neden Dorking Önemli?

SORU: "Eğer birisi Google ile bulabiliyorsa, neden gizlemeliyim?"
CEVAP: 
  ↳ Bilgi sızıntısı = İç kontroller başarısızlığı
  ↳ Denetçilere kötü görünüyor
  ↳ Saldırganlar bunu kullanan şu an
  ↳ İlk adım = Keşif, ikinci adım = Saldırı

🔍 Google Dorking Operatörleri: Detaylı Rehber

Temel Operatörler

1. site: - Belirli sitede arama

site:hedefsite.com password
site:hedefsite.com admin
site:example.org filetype:pdf

Kullanım: Sadece hedef alan adında arama yap

2. intitle: - Başlıkta kelime bulunma

intitle:"index of" 
intitle:"admin login"
intitle:"phpinfo()"
intitle:"Apache Status"

Kullanım: Sayfa başlığında belirli metin ara

3. inurl: - URL'de kelime bulunma

inurl:admin
inurl:/phpmyadmin
inurl:wp-admin
inurl:backup

Kullanım: URL yolunda belirli metin ara

4. filetype: - Dosya türü

filetype:pdf
filetype:doc
filetype:xls
filetype:sql
filetype:env
filetype:conf

Kullanım: Belirli uzantıdaki dosyaları bul

5. intext: - Sayfanın içeriğinde metin

intext:"password:"
intext:"username:"
intext:"confidential"
intext:"restricted"

Kullanım: Sayfa içerisinde belirli metin ara

6. ext: - Dosya uzantısı (filetype'ın alternatifi)

ext:sql
ext:bak
ext:old
ext:conf
ext:config

Kullanım: Filetype gibi, uzantıya göre ara

7. - (Eksi) - Hariç tutma

site:example.com filetype:pdf -sample
filetype:sql password -test
intitle:"index of" -apache

Kullanım: Sonuçlardan belirli terimleri çıkar

8. "" (Tırnak) - Tam eşleşme

"password123"
"admin@example.com"
"database backup"

Kullanım: Tam cümle ara (boşluk ve özel karakterler dahil)

9. OR / | - Veya operatörü

filetype:sql OR filetype:bak
intitle:admin OR intitle:administrator
site:example.com OR site:example.org

Kullanım: Çok seçenekli arama

10. * - Wildcard (Joker)

intitle:"index of" *
filetype:* password
inurl:*/admin/*

Kullanım: Herhangi bir kelime yerine koyma

İleri Operatörler

cache:hedefsite.com
└─ Google'ın önbelleğinde sayfa nasıldı?

related:hedefsite.com
└─ Benzer siteleri bul

link:hedefsite.com
└─ Hangi siteler bağlantı vermiş?

info:hedefsite.com
└─ Site hakkında genel bilgi

define:
└─ Tanım ara (genellikle dorking'de kullanılmaz)

Operatör Kombinasyonu Örnekleri

ÖRNEK 1: SQL Backup Dosyası Bulma
─────────────────────────────────
site:hedefsite.com filetype:sql backup

ÖRNEK 2: Açık Admin Paneli
─────────────────────────────────
intitle:"admin login" site:*.com -sample -test

ÖRNEK 3: Yapılandırma Dosyaları
─────────────────────────────────
filetype:conf -example -sample intext:password

ÖRNEK 4: API Keys
─────────────────────────────────
filetype:env intext:"API_KEY" OR intext:"SECRET_KEY"

ÖRNEK 5: Hata Mesajları
─────────────────────────────────
site:hedefsite.com intext:"Fatal error" OR intext:"SQL syntax error"

🔎 20 Pratik Dorking Sorgusu (Kategorilere Ayrılmış)

KATEGORİ 1: Dizin Listeleme & Yapı Keşfi

# 1. Tüm dizinleri liste yap
intitle:"index of" site:hedefsite.com

# 2. Admin dizini
intitle:"index of /" +admin site:hedefsite.com

# 3. Yedekleme dizini
intitle:"index of" +backup site:hedefsite.com

# 4. Hassas dosya erişimi
intitle:"index of /" +passwd
intitle:"index of /" +password.txt
intitle:"index of /" +.htaccess

Sonuç: Site yapısını haritala, erişilebilir dosyalar bul

KATEGORİ 2: Yapılandırma Dosyaları

# 5. Database yapılandırması
filetype:conf inurl:proftpd.conf -sample
filetype:ini inurl:ws_ftp.ini
filetype:config web.config -sample

# 6. Web sunucu yapılandırması
ext:xml php.xml
ext:conf httpd.conf -example
filetype:properties "db.password"

Sonuç: Sunucu ayarları, veri tabanı bağlantı bilgileri

KATEGORİ 3: Gizli Panel ve Admin Sayfaları

# 7. Admin login arayüzleri
inurl:admin intitle:login
inurl:administrator intitle:login
inurl:moderator intitle:login
inurl:webadmin intitle:login

# 8. CMS giriş sayfaları
inurl:wp-admin site:hedefsite.com
inurl:joomla/administrator
inurl:drupal/user/login

Sonuç: Saldırganlar buradan brute force atağı yapabilir

KATEGORİ 4: Veritabanı Dosyaları

# 9. SQL dump dosyaları
filetype:sql intext:password
filetype:sql intext:username
filetype:sql "IDENTIFIED BY" -git

# 10. Database backup'ları
ext:sql dump
ext:sql backup
filetype:sql intext:"CREATE TABLE"

Sonuç: Tüm kullanıcı bilgileri, şifreler, veri tabanı yapısı

KATEGORİ 5: Log Dosyaları

# 11. Hassas log dosyaları
filetype:log username
filetype:log password
ext:log inurl:access.log

# 12. Hata logları
filetype:log "PHP Parse error"
filetype:log "Software error"
ext:log inurl:error.log

Sonuç: Sistem zafiyetleri, hata mesajları, potansiyel açıklar

KATEGORİ 6: Ortam Değişkenleri & Gizli Dosyalar

# 13. Çevre dosyaları
filetype:env "DB_PASSWORD"
filetype:env "API_KEY"
filetype:yml "DB_PASSWORD"

# 14. Özel yapılandırma dosyaları
filetype:ini "mysql.default_password"
filetype:properties "db.password"
filetype:config "password"

Sonuç: Database credentials, API keys, encryption keys

KATEGORİ 7: Hata Mesajları & Stack Trace'ler

# 15. Verbose hata sayfaları
intext:"sql syntax near"
intext:"error mysql"
intext:"Fatal error: Call to undefined function"

# 16. Detaylı hata bilgileri
intitle:"Fatal Error" intext:"Stack trace"
intext:"Warning: mysql_connect()"
"Index of /errors"

Sonuç: Sistem yapısı ifşa, zamanlanmış kod yolları, veri tabanı türü

KATEGORİ 8: Sunucu Bilgileri & Panel Arayüzleri

# 17. Sunucu yönetim panelleri
intitle:"Apache Status"
intitle:"phpinfo()"
inurl:phpmyadmin/setup/index.php
inurl:server-info

# 18. Sistem bilgileri
intitle:"Server Information" "System Memory"
intitle:"System Information"
intitle:"IIS Windows Server"

Sonuç: Sunucu versiyonu, PHP sürümü, yüklü modüller, sistem info

KATEGORİ 9: Dosya Paylaşımları & SSH

# 19. Açık FTP dizinleri
intitle:"index of" inurl:ftp
intext:"Index of /" +.ssh
intitle:"Apache2 Ubuntu Default Page"

# 20. Varsayılan sunucu sayfaları
intitle:"Welcome to nginx"
intitle:"IIS Windows Server"

Sonuç: FTP erişimi, SSH anahtarları, varsayılan konfigürasyon

✅ Kendi Sitenizi Test Etme: Adım Adım Güvenlik Denetimi

FAZA 1: Envanter (Haftada 1 kez)

# Script: Google_Dorking_Site_Audit.ps1

$SiteURL = "hedefsite.com"
$OutputFile = "dorking_audit_$(Get-Date -Format yyyyMMdd).txt"

# Tüm sorguları test et
$Queries = @(
    "intitle:`"index of`" site:$SiteURL",
    "filetype:sql site:$SiteURL",
    "filetype:env site:$SiteURL",
    "filetype:conf site:$SiteURL",
    "inurl:admin intitle:login site:$SiteURL",
    "filetype:log site:$SiteURL",
    "intext:password site:$SiteURL",
    "inurl:phpmyadmin site:$SiteURL",
    "intitle:phpinfo site:$SiteURL",
    "filetype:bak site:$SiteURL"
)

Write-Host "🔍 Google Dorking Denetimi Başladı..." -ForegroundColor Cyan
Write-Host "Sorgulanacak site: $SiteURL`n" -ForegroundColor Yellow

# NOT: Bu script manuel olarak Google'da çalıştırmanız gerekir
# Automated'ın yerine, her sorguyu tarayıcıda kontrol edin

foreach ($Query in $Queries) {
    $GoogleURL = "https://www.google.com/search?q=$Query"
    Write-Host "📍 Sorgu: $Query"
    Write-Host "🔗 URL: $GoogleURL`n"
}

# AÇIK BULGU KAYDET
$Findings = @(
    "❌ SQL Dosyası Bulundu",
    "❌ .env Dosyası Erişilebilir",
    "⚠️ Admin Panel Google'da İndeksli",
    "⚠️ Log Dosyaları Açık"
)

$Findings | Out-File -Path $OutputFile
Write-Host "✅ Rapor: $OutputFile" -ForegroundColor Green

FAZA 2: Manuel Test Adımları

ADIM 1: Dizin Listeleme Testi
──────────────────────────────
🔍 Sorgu:    intitle:"index of" site:hedefsite.com
✅ Beklenen:  Sonuç yok (veya sadece istenilen dizinler)
❌ Risk:      Tüm dizinler listeleniyorsa = Veri sızıntısı riski

ADIM 2: Yapılandırma Dosya Testi
──────────────────────────────
🔍 Sorgu:    filetype:env site:hedefsite.com
✅ Beklenen:  Sonuç yok
❌ Risk:      .env bulunursa = Database credentials ifşa

ADIM 3: Hata Sayfası Testi
──────────────────────────
🔍 Sorgu:    intext:"Fatal error" site:hedefsite.com
✅ Beklenen:  Sonuç yok
❌ Risk:      Verbose hata = Sistem yapısı ifşa

ADIM 4: Admin Panel Testi
──────────────────────────
🔍 Sorgu:    inurl:admin intitle:login site:hedefsite.com
✅ Beklenen:  Sonuç yok (private admin panel'i)
❌ Risk:      Google'da indeksli admin = Brute force hedefi

ADIM 5: SQL Backup Testi
──────────────────────────
🔍 Sorgu:    filetype:sql site:hedefsite.com
✅ Beklenen:  Sonuç yok
❌ Risk:      SQL dosyası = Tüm veri tabanı indirilmiş

FAZA 3: Bulguları Belgeleme

DORKİNG DENETIM RAPORU
════════════════════════════════════════

TARIH: 2025-10-24
SİTE: hedefsite.com
DENETÇI: [İsim]

┌─────────────────────────────────────────┐
│         BULUNMUŞ RISKLER                │
├─────────────────────────────────────────┤
│                                          │
│ 🔴 KRITIK:                              │
│    ├─ SQL Backup Dosyası Accessible     │
│    ├─ .env Dosyası İndeksli            │
│    └─ Database Credentials Exposed      │
│                                          │
│ 🟡 UYARI:                               │
│    ├─ Admin Panel Google'da İndeksli   │
│    ├─ Hata Mesajları Verbose           │
│    └─ Log Dosyaları Açık               │
│                                          │
│ 🟢 NORMAL:                              │
│    ├─ Dizin Listeleme Kapalı           │
│    └─ Yapılandırma Dosyaları Gizli     │
│                                          │
└─────────────────────────────────────────┘

ÖNERİLER:
─────────
1. robots.txt güncelle (hassas dosyaları gizle)
2. .htaccess ile admin paneli koru
3. .env dosyaları web root'ün dışına taşı
4. SQL backup'ları indeksleme dışı bırak
5. Hata mesajlarını verbose moddan çıkar

Savunma Stratejileri: Google'ın Endekslemesini Kontrol Etme

YÖNTEM 1: robots.txt (İlk Savunma Hattı)

# robots.txt
# Tüm arama motorları için

User-agent: *

# ❌ GİZLE: Hassas dizinler
Disallow: /admin/
Disallow: /backup/
Disallow: /private/
Disallow: /config/
Disallow: /.env

# ❌ GİZLE: Hassas dosya türleri
Disallow: *.sql
Disallow: *.bak
Disallow: *.conf
Disallow: *.log
Disallow: *.env

# ❌ GİZLE: Sistem dosyaları
Disallow: /wp-config.php
Disallow: /web.config
Disallow: /phpmyadmin/

# ✅ İZİN VER: Gerekli dosyalar
Allow: /css/
Allow: /js/
Allow: /images/

# Crawl gecikmesi
Crawl-delay: 10

# Sitemap
Sitemap: https://hedefsite.com/sitemap.xml

NOT: robots.txt SADECE iyi niyetli bot'ları durduruyor! Kötü amaçlı bot'lar bunu yok sayar.

YÖNTEM 2: .htaccess (Aktif Koruma)

# .htaccess - Apache sunucular için

# 1. Dizin listelemeyi devre dışı bırak
Options -Indexes

# 2. Belirli dosya türlerine erişimi engelle
<FilesMatch "\.env$|\.sql$|\.bak$|\.conf$|\.log$">
    Order allow,deny
    Deny from all
</FilesMatch>

# 3. Gizli dosyaları koru
<Files "wp-config.php">
    Order allow,deny
    Deny from all
</Files>

<Files "configuration.php">
    Order allow,deny
    Deny from all
</Files>

# 4. Backup dizinini koru
<Directory "/var/www/backup">
    Order allow,deny
    Deny from all
</Directory>

# 5. Admin panelini IP ile sınırla (isteğe bağlı)
<Directory "/var/www/admin">
    <Limit GET POST>
        Order allow,deny
        Deny from all
        Allow from 192.168.1.0/24
        Allow from 10.0.0.1
    </Limit>
</Directory>

# 6. Hata mesajlarını gizle
php_flag display_errors Off
php_flag log_errors On

YÖNTEM 3: web.config (IIS Sunucular İçin)

<!-- web.config - Microsoft IIS -->

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    
    <!-- Dizin listelemeyi devre dışı bırak -->
    <directoryBrowse enabled="false" />
    
    <!-- Belirli dosyaları koru -->
    <security>
      <requestFiltering>
        <fileExtensions>
          <add fileExtension=".env" allowed="false" />
          <add fileExtension=".sql" allowed="false" />
          <add fileExtension=".bak" allowed="false" />
          <add fileExtension=".conf" allowed="false" />
          <add fileExtension=".log" allowed="false" />
        </fileExtensions>
        
        <hiddenSegments>
          <add segment="web.config" />
          <add segment=".env" />
          <add segment="backup" />
          <add segment="admin" />
        </hiddenSegments>
      </requestFiltering>
    </security>
    
    <!-- Hata sayfalarını özelleştir (Verbose bilgisiz) -->
    <httpErrors errorMode="Custom" defaultPath="/errors/error.html">
      <error statusCode="404" path="/errors/404.html" />
      <error statusCode="500" path="/errors/500.html" />
    </httpErrors>
    
  </system.webServer>
</configuration>

YÖNTEM 4: Google Search Console (İndekslemeyi Kontrol Et)

📌 ADIMLAR:

1. Google Search Console'e gir
   https://search.google.com/search-console

2. Sitenizi doğrula (DNS/HTML/Sitemap)

3. "Kapsam" → "Hariç Tutmalar" kontrol et
   ├─ Gizli dosyalar indekslenmemiş mi?
   ├─ Admin paneli indekslenmemiş mi?
   └─ Private dizinler var mı?

4. "URL Denetimi" ile spesifik sayfaları kontrol et
   ├─ inurl:admin
   ├─ filetype:env
   └─ filetype:sql

5. "Çıkarma İsteği" (Removal Requests)
   ├─ Hassas sayfaları iste
   ├─ Zaman aşımı: 3 ay (Google'dan kalkıyor)
   └─ Kalıcı olması için robots.txt güncelleyin

6. Sitemap'ı yönet
   ├─ Hassas dosya YÜKLEMEYIN
   ├─ Sadece halka açık sayfaları ekleyin
   └─ Düzenli güncelleyin

YÖNTEM 5: HTTP Başlıkları (Meta Etiketler)

<!-- HTML Head'e ekle -->

<!-- Google'a indeksleme -->
<meta name="robots" content="noindex, nofollow" />

<!-- Belirli sayfalar için (admin gibi) -->
<meta name="googlebot" content="noindex" />

<!-- Bing için -->
<meta name="bingbot" content="noindex" />

<!-- Private sayfalar için -->
<meta name="robots" content="noindex, nofollow, noarchive" />

<!-- Cache yasakla -->
<meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="expires" content="0" />

Bing & DuckDuckGo Dorking: Google'ın Ötesine Geçin

Neden Google Dışında da Dorking Yapmalısınız?

GERÇEK: Sadece %5 web sayfası Google tarafından indekslenir!
        Diğer arama motorları farklı sayfalar bulabilir
        
SONUÇ:  Bing'de gizli dosya bulunabilir ama Google'da yok
        DuckDuckGo farklı crawling kurallarına sahip

BING DORKING

Bing Operatörleri

site:         Belirli sitede arama (Google gibi)
intitle:      Başlıkta arama (Google gibi)
inurl:        URL'de arama (Google gibi)
filetype:     Dosya türü (Google gibi)

FAKAT Bing'in kendine özgü operatörleri:

ip:           IP adresine göre ara
domain:       Domain bilgisi ara
linkfromdomain: Spesifik domainlerden linkler
contains:     Metin içeriğini ara

Bing Dorking Örnekleri

# 1. Dizin Listeleme (Bing'de)
intitle:"index of" site:hedefsite.com

# 2. SQL Dosyaları
filetype:sql site:hedefsite.com password

# 3. .env Dosyaları
filetype:env site:hedefsite.com

# 4. Admin Panelleri
inurl:admin site:hedefsite.com intitle:login

# 5. Log Dosyaları
filetype:log site:hedefsite.com

# 6. IP Adresi Tarafından Ara (Bing'e özel!)
ip:192.168.1.1
ip:10.0.0.0/24

# 7. Domain İstatistikleri
domain:hedefsite.com

# 8. BackLink Analizi
linkfromdomain:example.com site:hedefsite.com

Bing URL Şablonu

https://www.bing.com/search?q=site:hedefsite.com+filetype:sql

DUCKDUCKGO DORKING

DuckDuckGo Operatörleri

DuckDuckGo daha sınırlı operatör desteği sunar ama faydalı hale getirilebilir:

site:         Belirli sitede arama
filetype:     Dosya türü
intitle:      Başlıkta metin
inurl:        URL'de metin

ÖZEL: DuckDuckGo Google'dan daha az operatörü destekler
      Fakat farklı içeriği indekslediği için faydalı olabilir

DuckDuckGo Dorking Örnekleri

# 1. Temel Site Araması
site:hedefsite.com admin

# 2. Dosya Türü
filetype:pdf site:hedefsite.com

# 3. Başlık ve URL Kombinasyonu
intitle:admin inurl:panel site:hedefsite.com

# 4. Password Dosyaları
filetype:txt password site:hedefsite.com

# 5. Konfigürasyon Dosyaları
filetype:conf site:hedefsite.com

# 6. Database Dosyaları
filetype:sql site:hedefsite.com

DuckDuckGo URL Şablonu

https://duckduckgo.com/?q=site:hedefsite.com+filetype:sql

KARŞILAŞTIRMA: Google vs. Bing vs. DuckDuckGo

Operatör Google Bing DuckDuckGo
site:
intitle:
inurl:
filetype:
ip:
cache:
related:
link:
intext:
OR / |
- (hariç)

Bing + DuckDuckGo Otomatik Sorgu

# Script: Multi_Search_Engine_Dorking.ps1

$Site = "hedefsite.com"
$Queries = @(
    "filetype:sql",
    "filetype:env",
    "intitle:admin",
    "inurl:backup"
)

Write-Host "🔍 Multi-Engine Dorking Başladı`n" -ForegroundColor Cyan

foreach ($Query in $Queries) {
    $GoogleURL = "https://www.google.com/search?q=site:$Site+$Query"
    $BingURL = "https://www.bing.com/search?q=site:$Site+$Query"
    $DuckURL = "https://duckduckgo.com/?q=site:$Site+$Query"
    
    Write-Host "📍 Sorgu: $Query"
    Write-Host "  Google: $GoogleURL"
    Write-Host "  Bing:   $BingURL"
    Write-Host "  Duck:   $DuckURL`n"
}

🔧 Burp Suite ile Otomatik Tarama: Web Dorking Entegrasyonu

Burp Suite Nedir?

Burp Suite, web uygulamalarının güvenlik testini yapan profesyonel araçtır.

KULLANIM: 
├─ Proxy olarak: Tüm HTTP trafiğini yakala ve analiz et
├─ Scanner olarak: Otomatik güvenlik açıkları tara
├─ Repeater olarak: Talepler manuel olarak tekrarla
└─ Intruder olarak: Brute force saldırıları yap

Kurulum

# Windows/Mac/Linux
# İndir: https://portswigger.net/burp

# Community Edition (Ücretsiz)
# Professional Edition (Ücretli - $399/yıl)

# Linux kurulumu:
cd ~/tools
wget https://portswigger.net/burp/downloads/community-latest.jar
java -jar burpsuite_community_latest.jar

Burp Suite + Dorking İş Akışı

ADIM 1: Hedef Belirleme
  └─ Burp'te "Target" → Site Haritası
  └─ Sitenin tüm sayfaları taranır

ADIM 2: Directives Ekleme
  └─ "Settings" → "Session Handling Rules"
  └─ Crawler directives ekle

ADIM 3: Tarama Başlatla
  └─ "Scanner" → "Active Scan"
  └─ Açıkları otomatik tespit et

ADIM 4: Dorking Sonuçları
  └─ Açık dosyaları tespit et
  └─ Admin panelleri, backup'lar vb.

ADIM 5: Rapor Oluştur
  └─ "Report" → HTML/PDF
  └─ Bulguları belge et

Burp Suite Profesyonel Özellikler

1. Tarama Profilleri

<!-- Burp Tarama Profili Örneği -->
Profile Name: "Dorking Simulation"

Crawl Settings:
├─ Follow redirects: ON
├─ Crawl Java applets: OFF
├─ Crawl client-side JavaScript: ON
└─ Include comments in crawl scope: ON

Scanner Settings:
├─ Active scan: ON
├─ Passive scan: ON
├─ Extensions: ON
└─ Scan maximum: 100% coverage

Check Categories:
├─ Information Gathering: ON
├─ Configuration: ON
├─ File Disclosure: ON
└─ Miscellaneous: ON

2. Custom Directives (Makro)

// Burp Makro Örneği
// Giriş yap → Admin paneline eriş

def response1 = sendRequest(loginRequest);
def sessionCookie = extractHeader(response1, "Set-Cookie");
def response2 = sendRequest(adminRequest, sessionCookie);
def vulnerabilities = analyzeResponse(response2);

Burp Suite Community vs. Professional

Özellik Community Professional
Passive Scan
Active Scan
Intruder ✅ (sınırlı) ✅ (unlimited)
Scanner
Repeater
Decoder
Comparator
Sequencer
Macro (API)
Extender

Burp Suite Extensions (Eklentiler)

Önemli Extensions:
├─ AuthMatrix - Multi-user authorization test
├─ Custom Parameter Handler - Spesifik parametreleri test et
├─ SQLMap integration - SQL injection otomatik
├─ Turbo Intruder - Hızlı brute force
└─ Collaborator Everywhere - Out-of-band testing

Burp Suite İş Akışı: Pratik Örnek

SENARYO: hedefsite.com'un güvenliğini test et

ADIM 1: Proxy Ayarla
──────────────────
├─ Proxy: 127.0.0.1:8080
├─ Scope: hedefsite.com
└─ Tarayıcı proxy ayarını Burp'e yönlendir

ADIM 2: Siteler Proxy ile Taray
──────────────────
├─ Tarayıcıda hedefsite.com ziyaret et
├─ Tüm sayfalar proxy aracılığıyla geç
└─ HTTP istekleri Burp'te kaydedilir

ADIM 3: Site Haritası Oluştur
──────────────────
├─ "Target" → "Site Map"
├─ İndent edilmiş yapı görünür
└─ Erişilebilir dizinler tespit edilir

ADIM 4: Tarama Başlat
──────────────────
├─ Sorgu seç (sağ tıkla)
├─ "Scan" → "Active Scan"
├─ Tarama başlar (5-30 dakika)
└─ Açıklar tespit edilir

ADIM 5: Rapor
──────────────────
├─ "Results" → Açıkları gözden geçir
├─ Sınıf: Kritik/Yüksek/Orta/Düşük
├─ İnsan tasarımı: SQL Injection, XSS vb.
└─ "Report" → HTML olarak kaydet

Burp Repeater ile Manuel Test

AMAÇ: Belirli bir isteği tekrar tekrar göndererek test et

ADIM 1: İsteği Yakala
├─ Proxy'de HTTP isteğini bul
├─ Sağ tıkla → "Send to Repeater"

ADIM 2: İsteği Düzenle
├─ Headers: Authorization, Cookies değiştir
├─ Body: POST parametreleri oynat
├─ Spesifik senaryoları test et

ADIM 3: Gönder ve Analiz Et
├─ Gönder (Ctrl+Enter)
├─ Response: Status kodu, body, headers
├─ Açık mı? (Unexpected behavior?)

ÖRNEK:
GET /admin/panel.php HTTP/1.1
Host: hedefsite.com
Cookie: sessionid=12345

YANIT:
200 OK
Content-Type: text/html
← Admin paneli açılırsa = Authentication Bypass!

OSINT Araçları: Web Dorking Otomatizasyonu

OSINT Nedir?

OSINT (Open Source Intelligence), internet'te herkese açık kaynakları kullanarak istihbarat toplamaktır.

OSINT KAYNAKLARI:
├─ Arama motorları (Google, Bing)
├─ Sosyal medya (Twitter, LinkedIn)
├─ WHOIS veritabanı
├─ DNS kayıtları
├─ İnternet Arşivi (Wayback Machine)
├─ Haber kaynakları
├─ Forum'lar ve bloglara
└─ Kamuya açık belgeler

OSINT Araçları Özeti

Araç Kullanım Platform
Shodan İnternet'te bağlı cihazlar bul Web
Censys SSL sertifikaları, sunucular Web
theHarvester Email adresleri topla CLI
Recon-ng Modüler keşif CLI
OSINT Framework Tüm araçları bir dashboard'da Web
SpiderFoot Otomatik OSINT GUI/Web
Maltego Görsel ilişki analizi GUI
Whois Domain bilgisi CLI
DNSrecon DNS enumerasyonu CLI
Nmap Ağ taraması CLI

1. Shodan: "İnternet'in Arama Motoru"

Shodan, internet'te bağlı olan sunucuları, IoT cihazlarını, kameralarını, yazıcılarını tarar.

Kurulum

# Pip yüklü olmalı
pip install shodan

# API Key al: https://www.shodan.io/
# Kayıt: https://account.shodan.io/register

Shodan Python Örneği

#!/usr/bin/env python3
# shodan_dorking.py

import shodan
import json

# API Key (https://account.shodan.io/)
SHODAN_API_KEY = "YOUR_API_KEY"

def search_shodan(query):
    """Shodan'da arama yap"""
    api = shodan.Shodan(SHODAN_API_KEY)
    
    try:
        print(f"🔍 Shodan'da arama: {query}\n")
        results = api.search(query)
        
        print(f"✅ {results['total']} sonuç bulundu\n")
        
        for result in results['matches']:
            print(f"IP: {result['ip_str']}")
            print(f"Port: {result['port']}")
            print(f"Başlık: {result.get('title', 'N/A')}")
            print(f"ISP: {result.get('isp', 'N/A')}")
            print(f"Location: {result.get('location', {}).get('country_name', 'N/A')}")
            print(f"─" * 50)
    
    except shodan.APIError as e:
        print(f"❌ Hata: {e}")

# Örnek Sorgular
if __name__ == "__main__":
    queries = [
        'product:"Apache" port:80',
        'title:"admin" port:8080',
        'phpmyadmin city:"Istanbul"',
        'webcam city:"Ankara"',
        'SCADA city:"Turkey"'
    ]
    
    for query in queries:
        search_shodan(query)
        print("\n" + "=" * 50 + "\n")

Shodan Web Arayüzü Sorguları

# 1. Apache Sunucuları
product:"Apache"

# 2. Default Portlar
port:8080 product:Apache

# 3. phpMyAdmin Açık
phpmyadmin

# 4. Telnet Açık (Tehlikeli!)
port:23 telnet

# 5. RDP Açık
port:3389 RDP

# 6. Webcamlar
html:"webcamxp"

# 7. Yazıcılar
"Xerox" port:80

# 8. SCADA Sistemleri
SCADA

# 9. Sertifikalar ile Arama
ssl:certificate

# 10. IP Aralığında Arama
net:192.168.1.0/24

2. Censys: SSL Sertifikaları & Sunucular

Censys, SSL sertifika bilgilerinden hedef hakkında bilgi toplar.

Kurulum

pip install censys

# API Key: https://censys.io/

Censys Örneği

#!/usr/bin/env python3
# censys_dorking.py

from censys.certificates import CensysCertificates
from censys.hosts import CensysHosts

# API Anahtarları
UID = "YOUR_UID"
SECRET = "YOUR_SECRET"

def search_certificates(domain):
    """Domain için sertifikaları ara"""
    cert = CensysCertificates(UID, SECRET)
    
    try:
        print(f"🔍 {domain} için sertifikaları tarama...\n")
        results = cert.query(f"parsed.names: {domain}")
        
        for result in results:
            print(f"Sertifika: {result['fingerprint_sha256']}")
            print(f"Subject: {result['subject']}")
            print(f"İssuer: {result['issuer']}")
            print(f"Geçerlilik: {result['validity_period_start']} - {result['validity_period_end']}")
            print(f"─" * 50)
    
    except Exception as e:
        print(f"❌ Hata: {e}")

def search_hosts(query):
    """Sunucuları ara"""
    hosts = CensysHosts(UID, SECRET)
    
    try:
        print(f"🔍 {query} için sunucuları tarama...\n")
        results = hosts.query(query)
        
        for result in results:
            print(f"IP: {result['ip']}")
            print(f"AS: {result['autonomous_system']}")
            print(f"Location: {result['location']}")
            print(f"─" * 50)
    
    except Exception as e:
        print(f"❌ Hata: {e}")

if __name__ == "__main__":
    search_certificates("hedefsite.com")
    search_hosts("hedefsite.com")

3. theHarvester: Email & Subdomain Toplama

theHarvester, email adresleri ve subdomain'leri çeşitli kaynaktan toplar.

Kurulum

git clone https://github.com/laramies/theHarvester
cd theHarvester
pip install -r requirements.txt

theHarvester Kullanımı

# Email adresleri topla
python3 theHarvester.py -d hedefsite.com -l 500 -b google

# Tüm kaynaklardan topla
python3 theHarvester.py -d hedefsite.com -b all

# Sonuçları dosyaya kaydet
python3 theHarvester.py -d hedefsite.com -b all -f result.html

# Subdomain'leri bul
python3 theHarvester.py -d hedefsite.com -l 200 -b bing

# Veri tabanından ara
python3 theHarvester.py -d hedefsite.com -s -b censys

Çıktı Örneği:

Email Adresleri Bulundu:
├─ admin@hedefsite.com
├─ info@hedefsite.com
├─ support@hedefsite.com
└─ security@hedefsite.com

Subdomain'ler:
├─ admin.hedefsite.com
├─ api.hedefsite.com
├─ mail.hedefsite.com
└─ cdn.hedefsite.com

4. SpiderFoot: Otomatik OSINT

SpiderFoot, tüm OSINT araçlarını otomatize eden web arayüzü.

Kurulum

git clone https://github.com/smicallef/spiderfoot
cd spiderfoot
pip install -r requirements.txt
python3 sf.py
# Tarayıcıda: http://127.0.0.1:5001

SpiderFoot Çalışması

1. Target belirleme (Domain/IP/Email)
2. Modülleri seç (DNS, Email, Whois vb.)
3. Taramayı başlat
4. Sonuçları analiz et (İlişkiler, emails, subdomains)
5. Rapor dışa aktarımı

5. Recon-ng: Modüler Keşif

Recon-ng, penetration testing için modüler OSINT framework'ü.

Kurulum

git clone https://github.com/lanmaster53/recon-ng
cd recon-ng
pip install -r requirements.txt
./recon-ng

Recon-ng Komutları

> workspace create hedefsite
> modules search github
> modules load recon/domains-companies/github_api
> options set COMPANY "Hedef Şirketi"
> run

# Sonuçlar veritabanına kaydedilir
> show companies
> show domains
> show credentials

🐍 Python Dorking Script'i: Otomatik Tarama

Python Gerekçeleri

pip install requests beautifulsoup4 lxml google-search-results shodan censys

Ana Script: Komple Dorking Toolkit

#!/usr/bin/env python3
# dorking_automation.py

import requests
from bs4 import BeautifulSoup
import json
import time
import sys
from urllib.parse import urlencode

class DorkingToolkit:
    def __init__(self, target_domain):
        self.target = target_domain
        self.results = {
            'google': [],
            'bing': [],
            'duckduckgo': [],
            'vulnerabilities': []
        }
        self.headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
        }
    
    def google_dork(self, query):
        """Google Dorking"""
        full_query = f"site:{self.target} {query}"
        url = f"https://www.google.com/search?q={urlencode({'q': full_query})}"
        
        try:
            print(f"🔍 Google: {full_query}")
            # Not: Google yalnız bot'ları engellediğinden, başarısız olabilir
            # Gerçek uygulamada Selenium veya API kullanılmalı
            response = requests.get(url, headers=self.headers, timeout=5)
            return url
        except Exception as e:
            print(f"❌ Google Hatası: {e}")
            return None
    
    def bing_dork(self, query):
        """Bing Dorking"""
        full_query = f"site:{self.target} {query}"
        url = f"https://www.bing.com/search?q={urlencode({'q': full_query})}"
        
        try:
            print(f"🔍 Bing: {full_query}")
            response = requests.get(url, headers=self.headers, timeout=5)
            
            if response.status_code == 200:
                soup = BeautifulSoup(response.content, 'html.parser')
                results = []
                for item in soup.find_all('div', class_='b_algo'):
                    link = item.find('a')
                    if link:
                        results.append(link.get('href'))
                self.results['bing'].append({
                    'query': query,
                    'results': results,
                    'count': len(results)
                })
            
            return url
        except Exception as e:
            print(f"❌ Bing Hatası: {e}")
            return None
    
    def duckduckgo_dork(self, query):
        """DuckDuckGo Dorking"""
        full_query = f"site:{self.target} {query}"
        url = f"https://duckduckgo.com/?q={urlencode({'q': full_query})}"
        
        try:
            print(f"🔍 DuckDuckGo: {full_query}")
            response = requests.get(url, headers=self.headers, timeout=5)
            
            if response.status_code == 200:
                soup = BeautifulSoup(response.content, 'html.parser')
                results = []
                for item in soup.find_all('a', class_='result__a'):
                    results.append(item.get('href'))
                self.results['duckduckgo'].append({
                    'query': query,
                    'results': results,
                    'count': len(results)
                })
            
            return url
        except Exception as e:
            print(f"❌ DuckDuckGo Hatası: {e}")
            return None
    
    def analyze_results(self):
        """Sonuçları analiz et"""
        print("\n" + "=" * 60)
        print("📊 DORKING ANALIZ RAPORU")
        print("=" * 60 + "\n")
        
        print(f"🎯 Target: {self.target}\n")
        
        # Bing sonuçları
        print("🔵 Bing Sonuçları:")
        total_bing = sum(r['count'] for r in self.results['bing'])
        print(f"   Toplam: {total_bing} sonuç")
        for result in self.results['bing']:
            print(f"   ├─ {result['query']}: {result['count']}")
        
        # DuckDuckGo sonuçları
        print("\n🔴 DuckDuckGo Sonuçları:")
        total_duck = sum(r['count'] for r in self.results['duckduckgo'])
        print(f"   Toplam: {total_duck} sonuç")
        for result in self.results['duckduckgo']:
            print(f"   ├─ {result['query']}: {result['count']}")
        
        # Risk Analizi
        print("\n⚠️  RISK ANALİZİ:")
        if total_bing > 0 or total_duck > 0:
            print("   🔴 KRITIK: Hassas dosyalar Google'da bulunmuş!")
            self.results['vulnerabilities'].append("Dizin listeleme açığı")
        if any('admin' in r['query'] for r in self.results['bing']):
            print("   🟡 UYARI: Admin paneli indeksli")
            self.results['vulnerabilities'].append("Admin paneli indeksli")
        
        print("\n")
    
    def generate_report(self, filename='dorking_report.json'):
        """Rapor oluştur"""
        report = {
            'target': self.target,
            'scan_date': time.strftime('%Y-%m-%d %H:%M:%S'),
            'results': self.results,
            'total_findings': sum(r.get('count', 0) for r in self.results['bing']) + 
                            sum(r.get('count', 0) for r in self.results['duckduckgo']),
            'vulnerabilities': self.results['vulnerabilities']
        }
        
        with open(filename, 'w', encoding='utf-8') as f:
            json.dump(report, f, indent=2, ensure_ascii=False)
        
        print(f"✅ Rapor kaydedildi: {filename}")
        return report
    
    def run_full_scan(self):
        """Komple tarama çalıştır"""
        queries = [
            'filetype:sql password',
            'filetype:env DB_PASSWORD',
            'filetype:log error',
            'intitle:"index of"',
            'inurl:admin intitle:login',
            'inurl:backup',
            'filetype:conf',
            'filetype:bak',
            '"confidential" OR "private"',
            'intext:"mysql_connect()"'
        ]
        
        print(f"\n🚀 {self.target} için Komple Dorking Taraması Başlıyor\n")
        print("=" * 60 + "\n")
        
        for i, query in enumerate(queries, 1):
            print(f"[{i}/{len(queries)}] {query}")
            self.bing_dork(query)
            self.duckduckgo_dork(query)
            time.sleep(2)  # Rate limiting
        
        self.analyze_results()
        self.generate_report()

# MAIN
if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Kullanım: python3 dorking_automation.py <target_domain>")
        print("Örnek: python3 dorking_automation.py example.com")
        sys.exit(1)
    
    target = sys.argv[1]
    toolkit = DorkingToolkit(target)
    toolkit.run_full_scan()

Script Çalıştırma

# Temel kullanım
python3 dorking_automation.py hedefsite.com

# Çıktı:
# 🚀 hedefsite.com için Komple Dorking Taraması Başlıyor
# [1/10] filetype:sql password
# 🔍 Bing: site:hedefsite.com filetype:sql password
# ...
# ✅ Rapor kaydedildi: dorking_report.json

İleri Python: Selenium ile Google Dorking

#!/usr/bin/env python3
# advanced_google_dorking.py

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

class GoogleDorkingSelenium:
    def __init__(self):
        options = webdriver.ChromeOptions()
        options.add_argument('--start-maximized')
        self.driver = webdriver.Chrome(options=options)
    
    def google_search(self, query):
        """Selenium ile Google araması"""
        url = f"https://www.google.com/search?q={query.replace(' ', '+')}"
        self.driver.get(url)
        
        try:
            # Sonuçları yüklenene kadar bekle
            WebDriverWait(self.driver, 10).until(
                EC.presence_of_all_elements_located((By.CSS_SELECTOR, "div.g"))
            )
            
            results = []
            items = self.driver.find_elements(By.CSS_SELECTOR, "div.g")
            
            for item in items[:10]:  # İlk 10 sonuç
                link = item.find_element(By.CSS_SELECTOR, "a")
                title = link.text
                href = link.get_attribute('href')
                results.append({'title': title, 'url': href})
            
            return results
        
        except Exception as e:
            print(f"❌ Hata: {e}")
            return []
    
    def close(self):
        self.driver.quit()

# Kullanım
if __name__ == "__main__":
    selenium_dorker = GoogleDorkingSelenium()
    results = selenium_dorker.google_search("site:example.com filetype:sql")
    
    for result in results:
        print(f"📄 {result['title']}")
        print(f"🔗 {result['url']}\n")
    
    selenium_dorker.close()

Denetim Raporu: Zafiyetleri Belgeleme

Rapor Şablonu

# WEB GÜVENLİĞİ DORKING DENETIM RAPORU

## YÖNETICI ÖZETİ

**Rapor Tarihi:** 2025-10-24
**Site:** hedefsite.com
**Denetçi:** [İsim]
**Riskli Bulgu Sayısı:** 12

### Özet:

Bu rapor, Google/Bing/DuckDuckGo Dorking teknikleri kullanılarak
hedefsite.com'un arama motorları tarafından erişilebilen
hassas bilgiler tespit edilmiştir.

---

## KRITIK BULGULAR (Acil Düzeltme Gerekli)

### 1. SQL Backup Dosyası Erişilebilir
- **Sorgu:** site:hedefsite.com filetype:sql
- **Sonuç:** database_backup_20250320.sql bulundu
- **Risk:** Tüm kullanıcı verisi, şifreler, kredi kartı no sızdı
- **CVSS Skor:** 9.8 (Kritik)
- **Çözüm:**
  1. SQL dosyalarını web root'ün dışına taşı
  2. robots.txt'ye "Disallow: *.sql" ekle
  3. .htaccess ile SQL dosyalarına erişim engelle
  4. Bölge

 ile backup'ları şifrele

### 2. .env Dosyası İndeksli
- **Sorgu:** site:hedefsite.com filetype:env
- **Sonuç:** .env dosyası Google'da bulundu
- **Risk:** Database credentials, API keys ifşa edilmiş
- **CVSS Skor:** 9.8 (Kritik)
- **Çözüm:**
  1. .env dosyasını web root'ün dışına taşı
  2. .gitignore'a ekle (.env should NOT be in git)
  3. Environment variables'ları sistem variables'ından al

### 3. Admin Paneli Google'da İndeksli
- **Sorgu:** inurl:admin site:hedefsite.com intitle:login
- **Sonuç:** /admin/panel.php bulundu
- **Risk:** Brute force saldırılarının hedefi
- **CVSS Skor:** 7.5 (Yüksek)
- **Çözüm:**
  1. Admin panelini noindex meta etiketi ile koru
  2. IP tabanlı erişim kısıtla
  3. robots.txt'ye "Disallow: /admin/" ekle

---

## UYARI (14 gün içinde düzeltilmeli)

### 4. Log Dosyaları Erişilebilir
- **Sorgu:** site:hedefsite.com filetype:log
- **Sonuç:** error.log, access.log bulundu
- **Risk:** Kullanıcı aktiviteleri, hata mesajları görülüyor
- **Çözüm:** .htaccess ile erişim engelle

### 5. Backup Dizini Listeleniyor
- **Sorgu:** intitle:"index of" backup site:hedefsite.com
- **Sonuç:** /backup/ dizini açık
- **Çözüm:** Options -Indexes ekle

---

## ÖNERİLER

### Kısa Vadeli (HEMEN)
1. robots.txt güncelle
2. .htaccess koruma ekle
3. .env dosyasını taşı
4. Meta noindex etiketleri ekle

### Orta Vadeli (1-2 hafta)
1. Web sitenin tüm dosyalarını denetlet
2. Google Search Console'de harita yenile
3. Eski backup'ları sil
4. Log rotasyonu kur

### Uzun Vadeli (1 ay)
1. Penetration testing yaptır
2. WAF (Web Application Firewall) kur
3. CI/CD'de güvenlik kontrolleri ekle
4. Yıllık güvenlik denetimi planlat

---

## DOSYA CHECKLIST

☑ robots.txt güncellendi ☑ .htaccess kuralları eklendi ☑ .env taşındı ☑ Meta etiketleri eklendi ☑ Google Search Console güncellendi ☑ Backup'lar silindi/taşındı ☑ Log dosyaları korundu ☐ Penetration Testing yapıldı ☐ WAF kuruldu


---

## KAYNAKLAR

- OWASP Web Security Testing Guide
- NIST Cybersecurity Framework
- CWE Top 25
- CVSS v3.1 Calculator

---

**Rapor Onay:** _______________  
**Tarih:** _______________

⚖️ YASAL & ETİK ÇERÇEVE

Yasal Risk ve Sorumluluk

┌─────────────────────────────────────────────────────────────┐
│  YASAL UYARI: Bu teknikleri yanlış kullanmak SUÇTUR         │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│ 🇹🇷 TÜRKİYE:                                               │
│    TCK 215 - İzinsiz Bilgisayar Sistemi Erişimi            │
│    TCK 217 - Veri Hırsızlığı                               │
│    TCK 524 - Kişisel Veri Gizliliği İhlali                │
│    Ceza: 2-4 yıl hapis, 5000-20000 TL ceza                 │
│                                                              │
│ 🇺🇸 ABD:                                                    │
│    CFAA (Computer Fraud and Abuse Act)                     │
│    Ceza: 10 yıla kadar hapis, $250,000 para cezası         │
│                                                              │
│ 🇪🇺 AB:                                                     │
│    GDPR - Veri Koruma                                      │
│    Ceza: %20 global revenue veya €20 milyon                │
│    NIS2 Directive - Network Security                       │
│                                                              │
│ 💼 DİĞER:                                                    │
│    DMCA (Digital Millennium Copyright Act)                 │
│    CFAA (Computer Fraud and Abuse Act)                     │
│    Computer Misuse Act 1990 (UK)                           │
│                                                              │
└─────────────────────────────────────────────────────────────┘

Yasal Olarak Dorking Yapmak

✅ YAPILABILIR:

1. Kendi Web Siteniz
   └─ Kendi alanınızda sorgulamaları yapabilirsiniz

2. Yazılı İzin Aldığınız Sistemler
   └─ Müşteri/Yönetici'den e-mail imzalı onay
   └─ SOW (Statement of Work) sözleşmesi
   └─ NDA (Non-Disclosure Agreement)

3. Yasal Penetration Testing
   └─ Lisanslı pentester'lar
   └─ İşletme içi güvenlik ekibi
   └─ Resmi denetim firmaları

4. Eğitim ve Farkındalık
   └─ Üniversiteler
   └─ Siber güvenlik kursları
   └─ CTF (Capture The Flag) etkinlikleri

❌ YAPILAMAZ:

1. İzinsiz 3. Taraf Sistemler
   └─ "Şirketin web sitesi açık, test edeyim" = Yasadışı

2. Kötü Amaçlı İntensiyon
   └─ Veri çalmak
   └─ Şantaj
   └─ İçeriği değiştirmek

3. Otomatik Tarama Botları
   └─ Massive brute force
   └─ DDoS tarzı taramalar
   └─ Site'ı down ettirmek

4. Ticari Sömürü
   └─ "Bulduğum açıkları satayım"
   └─ Tespit ettiğim veriler için para talep etmek

Etik Dorking Kuralları

GOLDEN RULES:

1. 📝 İzin Al
   ├─ Yazılı form
   ├─ Email onayı (en azından)
   ├─ Avukat tarafından incelenmiş sözleşme
   └─ Kapsamı net belirtin (IP aralığı, domain, vb.)

2. 🎯 Kapsamı Belirle
   ├─ Hangi sistemler test edilecek?
   ├─ Hangi teknikler kullanılacak?
   ├─ Başlangıç/Bitiş tarihi
   └─ Eskalasyon prosedürü

3. 📋 Denetim İzleri Tut
   ├─ Ne zaman test yaptı?
   ├─ Ne buldu?
   ├─ Kimin tarafından onaylandı?
   └─ Sonuç nedir?

4. 🔐 Bulduğun Bilgileri Koru
   ├─ Şifrelenmiş saklama
   ├─ Erişim kontrolü
   ├─ Raporların güvenli transferi
   └─ Veri imhası (test sonrası)

5. 📢 Açıkları Bildir (Sorumlu Açıklama)
   ├─ Önce sitenin güvenlik ekibine söyle
   ├─ Çözüm zamanı ver (30-90 gün)
   ├─ Sonra kamuya açıkla (isteğe bağlı)
   └─ Bir CVE numarası talep et (kritikse)

6. 🚫 Başkalarının Verilerine Dokunma
   ├─ Bulduğun şifreleri kullanma
   ├─ Başkalarının hesaplarına giriş yapma
   ├─ Veriyi kopyala/indirme
   └─ Sistemde kalıcı değişiklik yapma

🔗 İleri Kaynaklar & Referanslar

Resmi Belgeler

Kaynak URL İçerik
OWASP Testing Guide https://owasp.org/www-project-web-security-testing-guide/ Web güvenlik testi
NIST Cybersecurity https://nvlpubs.nist.gov/nistpubs/ Siber güvenlik standartları
CWE Top 25 https://cwe.mitre.org/top25/ En yaygın yazılım zafiyetleri
CVSS Calculator https://www.first.org/cvss/calculator/3.1 Risk puanlama
GDPR https://gdpr-info.eu/ Veri koruma yasası

OSINT ve Dorking Araçları

  • Shodan: https://www.shodan.io/
  • Censys: https://censys.io/
  • theHarvester: https://github.com/laramies/theHarvester
  • Recon-ng: https://github.com/lanmaster53/recon-ng
  • SpiderFoot: https://www.spiderfoot.net/
  • OSINT Framework: https://osintframework.com/
  • Maltego: https://www.maltego.com/
  • Burp Suite: https://portswigger.net/burp

Kitaplar

  • "The Web Application Hacker's Handbook" - Stuttard & Pinto
  • "Web Security Testing Cookbook" - Stuttard & Pinto
  • "Practical OSINT" - Marc Clifton
  • "Pentesting with Burp Suite" - Gus Khawaja

Blog ve Kaynaklar

  • HackerOne: https://www.hackerone.com/ (Bug Bounty)
  • Bugcrowd: https://www.bugcrowd.com/ (Bug Bounty)
  • PortSwigger Academy: https://portswigger.net/web-security (Eğitim)
  • SANS.org: https://www.sans.org/ (Güvenlik eğitimi)
  • Defensive Security: https://www.defensivesecurity.com/ (Etik hacking)

🎯 SONUÇ

WEB DORKING ÖNEMLİ ÇÜNKÜ:

1️⃣ Saldırganlar Bu Teknikleri Kullanıyor
   └─ Proaktif olmalısınız

2️⃣ Çoğu Şirkette Yapılanmış Bir Strateji Yok
   └─ "Görülmüyorsa, problem değil" mantığı = HATA

3️⃣ Denetçiler Sorunu Geçecek
   └─ "Veri Sızıntısı Riski" raporunda görülüyor

4️⃣ Müşteriler Güveni Kaybediyor
   └─ Açığa çıkan veriler = Marka imajı zedeleniyor

5️⃣ YASAL SORUMLULUK ARTIYOR
   └─ GDPR, CCPA, TCK
   └─ Veri koruma = Yasal gereklilik

ÇÖZÜM:

✅ robots.txt → Google'a ne göstereceğini söyle
✅ .htaccess → Teknik olarak korunma sağla
✅ Meta Tags → Başlıktan talimat ver
✅ Periyodik Denetim → Aylık kontrol yap
✅ OSINT Araçları → Otomatik tarama kur
✅ Etik Hacking → Profesyonellere yaptır

😊 BAŞARILI DURUMDA:

Google/Bing'de bulunmuş hassas bilgi: SIFIR ✅
Sistem yapısı gizli ✅
Admin paneli korunmuş ✅
Log dosyaları erişilemiyor ✅
Denetçi raporu temiz ✅

 Yasal Sorumluluk: Bu rehber yalnızca eğitim amaçlıdır. Yasalara aykırı kullanımdan kaynaklanacak her türlü zarar yazarın sorumluluğunda değildir.

Önceki Yazı
Active Directory Güven İlişkisi Sorunu

Active Directory ortamında sıkça karşılaşılan “The trust relationship b...

Sonraki Yazı
Windows Olay Günlüğü Aracının Tehlikesi (Wevtutil.exe)

Wevtutil.exe bu özellikleri nedeniyle iki ucu keskin bir kılıçtır; Yasal fa...