Güvenlik Rehberi v5 - NİHAİ SÜRÜM

PHP Güvenlik Tarama Rehberi

Backdoor, Malware ve Zararlı Kod Tespiti + Güvenli Silme

v2 + v3 + v4 + Yeni Kontroller = v5

5 Ocak 2026 (v5 - Final) | 90 Kontrol Noktası | 50 Temel + 20 Imunify360 + 20 Yeni

Basit Anlatım (Herkes İçin)

Bu rehber, web sitenize sızabilecek zararlı kodları tespit eder ve güvenli silme talimatları verir. v5 en kapsamlı sürümdür: 90 kontrol + otomatik silme prosedürü.

Aşağıdaki 90 kontrolü çalıştırın, bulgular için güvenli silme prosedürü uygulayın.

Kritik Uyarı - Güvenli Silme Prosedürü

❌ ASLA: Bulunan dosyaları hemen silmeyin!

✅ YAPILACAKLAR (DOĞRU SIRA):

  1. 1. Git Checkpoint Oluştur (ÖNCELİK!): git add -A && git commit -m "🔧 CHECKPOINT: Before cleanup"
  2. 2. Checkpoint'i Remote'a Push Et (ZORUNLU!): git push origin main
  3. 3. Dosya Yedek Al: cp dosya.php dosya.php.backup
  4. 4. İçeriği İncele: cat dosya.php
  5. 5. Karar Ver:
    • • Dosya tamamen zararlıysa → Sil
    • • Dosya içinde zararlı kod varsa → Sadece o kısmı temizle
    • • Sistem dosyasıysa (vendor, core) → ASLA silme, rapor et
  6. 6. Sil/Temizle: sudo rm dosya.php veya düzenle
  7. 7. Test Et: curl -I https://site.com/ → 200 OK?
  8. 8. Sorun Varsa → Geri Dön: git reset --hard [checkpoint-hash]
  9. 9. Sorun Yoksa → Kaydet: git add -A && git commit -m "Security: Cleaned malware" && git push origin main

KRİTİK: Checkpoint'i remote'a push etmeden silme yapma! Local disk sorununda checkpoint da kaybolur.

Git Checkpoint - Güvenli Geri Dönüş Noktası

Basit Anlatım (Herkes İçin)

Git Checkpoint, zararlı dosyaları silmeden önce sistemin anlık fotoğrafını çekmek gibidir. Eğer temizleme sırasında yanlışlıkla önemli bir dosya silerseniz, tek tuşla geri dönebilirsiniz.

Örnek: 100 dosya sildiniz, site bozuldu → Checkpoint'e dönüp sadece 5 dakika önceki halinize geri dönebilirsiniz!

Teknik Detaylar (Geliştiriciler İçin)

Git checkpoint, git commit komutu ile oluşturulur. Bu, tüm dosya değişikliklerini SHA hash ile kaydeder ve istediğiniz zaman git reset ile geri dönmenizi sağlar.

Ne Zaman Checkpoint Yapılır?

  • 90 kontrol tamamlandıktan sonra (zararlı dosyalar tespit edildi)
  • Silme işlemine başlamadan ÖNCE (her zaman!)
  • Kritik dosyalar silinecekse (vendor, core, config)
  • 10+ dosya silinecekse (toplu silme)
  • 1-2 dosya basit silme → Checkpoint gerekmez

Checkpoint Nasıl Yapılır?

1. Mevcut durumu kaydet:

git add -A

2. Checkpoint oluştur:

git commit -m "🔧 CHECKPOINT: Before security cleanup"

3. Checkpoint hash'ini kaydet:

git log -1 --oneline

Çıktı örneği: abc123f 🔧 CHECKPOINT: Before security cleanup
abc123f hash'ini not edin!

4. Remote'a push et (ZORUNLU!):

git push origin main

⚠️ KRİTİK: Push etmeden silme yapma! Remote'da güvenli kopya olmalı.

Geri Dönme (Rollback) - Acil Kurtarma

❌ Durum: Yanlış dosya sildim, site bozuldu, geri dönmek istiyorum!

1. Checkpoint hash'ini bul:

git log --oneline -10

Son 10 commit'i gösterir. "CHECKPOINT" yazan satırdaki hash'i kopyala.

2. Geri dön (HARD RESET):

git reset --hard abc123f

⚠️ DİKKAT: Bu komut checkpoint'ten sonraki TÜM DEĞİŞİKLİKLERİ SİLER!
Silinen dosyalar geri gelir, değiştirilen dosyalar eski haline döner.

3. Dosyaları kontrol et:

ls -la

Sildiğiniz dosyalar geri gelmiş olmalı.

En İyi Pratikler

  • ✅ Her silme öncesi checkpoint yap
  • Checkpoint'i MUTLAKA remote'a push et!
  • ✅ Checkpoint hash'ini text dosyasına kaydet
  • ✅ Checkpoint mesajına tarih ekle: "CHECKPOINT: 2026-01-05 14:30"
  • ✅ Temizleme sonrası test et, sorun yoksa yeni commit at
  • ✅ Temizleme commit'ini de push et: git push origin main
  • ❌ Checkpoint olmadan büyük silme yapma!
  • Push etmeden silme yapma!

Tam İş Akışı Örneği

Senaryo: 90 kontrol sonucu 15 zararlı dosya bulundu

# 1. Checkpoint oluştur git add -A && git commit -m "🔧 CHECKPOINT: Before cleanup (15 files)" git log -1 --oneline # Hash: abc123f # 2. Remote'a push et (ZORUNLU!) git push origin main

⚠️ Bu adım ZORUNLU! Remote'da güvenli kopya olmalı.

# 3. Zararlı dosyaları sil sudo rm public/shell.php vendor/autoload.suspected ... # 4. Site test et curl -I https://site.com/ # 200 OK? # 5a. SORUN VARSA → Geri dön! git reset --hard abc123f git push origin main --force # Remote'u da geri al # 5b. SORUN YOKSA → Kaydet ve push git add -A && git commit -m "Security: Cleaned 15 malware files" git push origin main

v5'te Neler Var? (NİHAİ SÜRÜM)

📚

v2-v4: 70 Kontrol

Backdoor, encoding, network, sistem, Imunify360 testleri.

🔐

+20 Yeni Kontrol

Info disclosure, credential exposure, attack patterns, config issues.

🗑️

Güvenli Silme

Otomatik yedek, analiz, temizleme prosedürü.

Tam Otomatik

Hazır prompt: tek tıkla 90 kontrol + rapor.

90 Güvenlik Kontrol Noktası

Kategori 1-14: Temel Güvenlik Kontrolleri (1-50)

1 Backdoor & Shell Tespiti

1.1 Eval + Base64 Combo Kritik

En yaygın backdoor pattern'i. Şifreli kod çalıştırır.

grep -r --include="*.php" -l "eval(base64_decode" /var/www/html --exclude-dir=vendor
1.2 Shell Komutları Kritik

Sistem komutları çalıştıran fonksiyonlar.

grep -r --include="*.php" -l "passthru\|shell_exec\|system\s*(" /var/www/html/public --exclude-dir=vendor
1.3 REQUEST + Eval Kritik

Kullanıcı girdisini doğrudan çalıştıran kod.

grep -r --include="*.php" -l '\$_\(REQUEST\|POST\|GET\).*eval\|eval.*\$_\(REQUEST\|POST\|GET\)' /var/www/html
1.4 Assert Exploit Yüksek

PHP assert() fonksiyonu kod çalıştırabilir.

grep -r --include="*.php" "assert\s*(" /var/www/html/public --exclude-dir=vendor
1.5 Create Function Yüksek

Eski PHP exploit yöntemi.

grep -r --include="*.php" -l "create_function" /var/www/html --exclude-dir=vendor

2 Dosya Manipülasyonu Tespiti

2.1 File Write + Decode Kritik

Şifreli içeriği dosyaya yazan kod.

grep -r --include="*.php" -l "file_put_contents.*base64_decode" /var/www/html --exclude-dir=vendor
2.2 @copy / @move Yüksek

Dosya kopyalama/taşıma (hata gizleme ile).

grep -r --include="*.php" -l "@copy\|@rename\|@move" /var/www/html/public --exclude-dir=vendor
2.3 Chmod/Chown Orta

İzin değiştirme komutları.

grep -r --include="*.php" -l "chmod\|chown" /var/www/html/public --exclude-dir=vendor

3 Gizli & Şüpheli Dosya Tespiti

3.1 Gizli PHP Dosyaları Kritik

Nokta ile başlayan gizli PHP dosyaları.

find /var/www/html -name ".*php" -o -name ".*.php" 2>/dev/null
3.2 Rastgele Hex İsimli Dosyalar Kritik

453bbb9eb16f.php gibi rastgele isimler.

find /var/www/html/public -maxdepth 2 -type f -regextype posix-extended -regex '.*/[a-f0-9]{16,}\.[a-z]+$'
3.3 Public'te Şüpheli PHP Yüksek

Public klasöründe olmaması gereken PHP'ler.

find /var/www/html/public -maxdepth 1 -name "*.php" ! -name "index.php" ! -name "robots.txt"
3.4 Şüpheli TXT Dosyaları Orta

Marker/beacon dosyaları.

find /var/www/html/public -maxdepth 1 -name "*.txt" ! -name "robots.txt"

4 Upload Klasörü Güvenliği

4.1 Uploads'da PHP Kritik

Upload klasöründe PHP dosyası OLMAMALI!

find /var/www/html/public/uploads -name "*.php" 2>/dev/null
4.2 PHP Varyantları Kritik

phtml, phar, php5, php7 uzantıları.

find /var/www/html/public/uploads -type f \( -name "*.phtml" -o -name "*.phar" -o -name "*.php5" -o -name "*.php7" \)
4.3 Resim İçinde PHP Kritik

JPG/PNG/GIF içine gizlenmiş PHP kodu.

find /var/www/html -type f \( -name "*.jpg" -o -name "*.png" -o -name "*.gif" \) -exec grep -l "<?php" {} \;

5 Şifreli/Karmaşık Kod Tespiti

5.1 Gzip Encoded Kritik

Sıkıştırılmış zararlı kod.

grep -r --include="*.php" -l "gzinflate\|gzuncompress\|str_rot13" /var/www/html/public
5.2 Chr() Encoded Yüksek

chr(98).chr(97)... formatı.

grep -r --include="*.php" -l "chr(98).chr(97).chr(115).chr(101)" /var/www/html
5.3 Uzun Base64 String Yüksek

50+ karakter base64 encoded string.

grep -r --include="*.php" -l '\$[a-zA-Z_]*\s*=\s*["'"'"'][a-zA-Z0-9+/=]\{50,\}["'"'"']' /var/www/html/public
5.4 Preg_replace /e Orta

Eski PHP versiyonlarında kod çalıştırır.

grep -r --include="*.php" "preg_replace.*['\"]\/.*e['\"]" /var/www/html --exclude-dir=vendor

6 Ağ & Remote Erişim Tespiti

6.1 Socket/Reverse Shell Kritik

Uzak bağlantı açan kod.

grep -r --include="*.php" -l "fsockopen\|socket_create\|pfsockopen" /var/www/html --exclude-dir=vendor
6.2 Remote Include Kritik

Uzak sunucudan dosya include.

grep -r --include="*.php" -l "include.*http\|require.*http" /var/www/html/public
6.3 Proc Open Yüksek

Process açma fonksiyonu.

grep -r --include="*.php" -l "proc_open" /var/www/html/public

7 Sistem & Cron Kontrolü

7.1 Cron Kontrolü Yüksek

Zamanlanmış görevlerde backdoor.

crontab -l | grep -v "^#"
7.2 .htaccess Değişiklikleri Yüksek

Son 7 günde değişen htaccess.

find /var/www/html -name ".htaccess" -mtime -7 -exec ls -la {} \;
7.3 World Writable Orta

Herkesin yazabildiği dosyalar.

find /var/www/html/public -type f -perm -002 ! -path "*/storage/*"
7.4 Symlink Saldırısı Orta

Şüpheli sembolik linkler.

find /var/www/html/public -type l ! -path "*/storage/*" ! -path "*/readme/*"

8 Zaman Bazlı Tarama

8.1 Son 24 Saat PHP Yüksek

Son 24 saatte oluşturulan PHP dosyaları.

find /var/www/html -name "*.php" -mtime -1 ! -path "*/vendor/*" ! -path "*/storage/framework/*"
8.2 Son 7 Gün Uploads Yüksek

Son 7 günde uploads'a eklenen PHP.

find /var/www/html/public/uploads -name "*.php" -mtime -7

9 Özel Tehditler

9.1 Crypto Miner Kritik

Kripto madenci zararlıları.

grep -r --include="*.php" -l "coinhive\|cryptonight\|stratum\|xmrig" /var/www/html
9.2 Mail Spam Yüksek

Public'te mail fonksiyonu (spam için kullanılabilir).

grep -r --include="*.php" -l "mail\s*(" /var/www/html/public --exclude-dir=vendor

10 Variable Function & Dinamik Kod

10.1 Variable Function Call Kritik

$func() şeklinde dinamik fonksiyon çağrısı. Backdoor'larda çok yaygın.

grep -r --include="*.php" -l '\$[a-zA-Z_][a-zA-Z0-9_]*\s*(' /var/www/html/public --exclude-dir=vendor | head -20
10.2 Call User Func Kritik

call_user_func ile dinamik kod çalıştırma.

grep -r --include="*.php" -l "call_user_func\|call_user_func_array" /var/www/html/public --exclude-dir=vendor
10.3 Array Callback Exploit Yüksek

array_map, array_filter ile kod çalıştırma.

grep -r --include="*.php" "array_map\|array_filter\|array_walk\|usort" /var/www/html/public --exclude-dir=vendor | grep -i "eval\|assert\|base64"
10.4 ReflectionFunction Yüksek

Reflection API ile kod çalıştırma.

grep -r --include="*.php" -l "ReflectionFunction\|ReflectionMethod" /var/www/html/public --exclude-dir=vendor

11 Hex & Gelişmiş Encoding

11.1 Hex Encoded String Kritik

\x62\x61\x73\x65 formatında gizli kod.

grep -r --include="*.php" '\\x[0-9a-fA-F]\{2\}\\x[0-9a-fA-F]\{2\}' /var/www/html/public --exclude-dir=vendor
11.2 Octal Encoded Yüksek

\142\141\163\145 formatında octal encoding.

grep -r --include="*.php" '\\[0-7]\{3\}\\[0-7]\{3\}' /var/www/html/public --exclude-dir=vendor
11.3 Double Encoding Yüksek

Çift base64 encoding ile gizleme.

grep -r --include="*.php" "base64_decode.*base64_decode" /var/www/html --exclude-dir=vendor
11.4 Pack/Unpack Yüksek

Binary veri manipülasyonu ile kod gizleme.

grep -r --include="*.php" "pack\s*(\|unpack\s*(" /var/www/html/public --exclude-dir=vendor

12 PHP Wrappers & Streams

12.1 php://input Exploit Kritik

Raw POST verisi ile kod çalıştırma.

grep -r --include="*.php" "php://input" /var/www/html/public --exclude-dir=vendor
12.2 data:// Wrapper Kritik

Data URI ile kod injection.

grep -r --include="*.php" "data://" /var/www/html/public --exclude-dir=vendor
12.3 php://filter Yüksek

Filter wrapper ile dosya okuma/encoding.

grep -r --include="*.php" "php://filter" /var/www/html --exclude-dir=vendor
12.4 expect:// Wrapper Kritik

Sistem komutu çalıştırma wrapper'ı.

grep -r --include="*.php" "expect://" /var/www/html --exclude-dir=vendor

13 Webshell Patterns

13.1 Bilinen Webshell İsimleri Kritik

c99, r57, b374k gibi ünlü shell'ler.

grep -r --include="*.php" -l "c99shell\|r57shell\|b374k\|WSO\|FilesMan" /var/www/html
13.2 File Manager Patterns Kritik

Dosya yöneticisi shell imzaları.

grep -r --include="*.php" "FilesMan\|filemanager\|File Manager" /var/www/html/public --exclude-dir=vendor
13.3 Cookie Backdoor Auth Kritik

Cookie ile gizli erişim kontrolü.

grep -r --include="*.php" '\$_COOKIE.*==\|md5.*\$_COOKIE' /var/www/html/public --exclude-dir=vendor
13.4 Deserialization Attack Kritik

unserialize ile RCE saldırısı.

grep -r --include="*.php" "unserialize\s*(\s*\$_" /var/www/html --exclude-dir=vendor

14 Config & INI Manipülasyonu

14.1 .user.ini Dosyaları Kritik

PHP ayarlarını override eden .user.ini dosyaları.

find /var/www/html -name ".user.ini" -exec cat {} \;
14.2 auto_prepend_file Kritik

Her PHP çalışmadan önce otomatik include.

grep -r "auto_prepend_file\|auto_append_file" /var/www/html -l 2>/dev/null
14.3 SVG/XML PHP Injection Yüksek

SVG ve XML dosyalarına gizlenmiş PHP.

find /var/www/html -type f \( -name "*.svg" -o -name "*.xml" \) -exec grep -l "<?php\|<script" {} \;
14.4 Alternatif PHP Uzantıları Yüksek

.pht, .phps, .inc gibi az bilinen PHP uzantıları.

find /var/www/html -type f \( -name "*.pht" -o -name "*.phps" -o -name "*.inc" -o -name "*.php3" -o -name "*.php4" \)

Kategori 15-18: Imunify360 Gelişmiş Testler (51-70)

15 Imunify360: Malware Signatures

15.1 SEO Spam Injection Kritik

Gizli SEO linkler, viagra/casino spam.

grep -ri "viagra\|cialis\|casino\|poker\|pharma" /var/www/html --include="*.php" --include="*.html" | grep -i "display.*none\|visibility.*hidden" | head -20
15.2 Malicious Redirects Kritik

JavaScript/Meta tag ile gizli yönlendirmeler.

grep -r "window\.location\|document\.location\|meta.*refresh" /var/www/html/public --include="*.php" --include="*.html" | grep -v "vendor" | head -20
15.3 Defaced Page Detection Yüksek

Hacked by, owned by pattern'leri.

grep -ri "hacked by\|owned by\|defaced by\|pwned by" /var/www/html/public --include="*.php" --include="*.html"
15.4 Known Malware Strings Kritik

Bilinen malware imzaları (eval chains).

grep -r "eval.*base64_decode.*gzinflate\|eval.*str_rot13.*base64" /var/www/html --include="*.php" --exclude-dir=vendor
15.5 Suspicious Function Chains Yüksek

Şüpheli fonksiyon kombinasyonları.

grep -r "file_get_contents.*base64_decode\|curl_exec.*eval" /var/www/html --include="*.php" --exclude-dir=vendor | head -10

16 Imunify360: Gelişmiş Tespit

16.1 Polymorphic Malware Kritik

Sürekli değişen, kendini şifreleyen kod.

find /var/www/html -name "*.php" -exec sh -c 'grep -l "eval.*\\\$" "$1" && stat -c "%Y %n" "$1"' _ {} \; | sort -rn | head -20
16.2 Time-Based Execution Yüksek

Belli saatlerde aktif olan backdoor.

grep -r "date\s*(\|time\s*(" /var/www/html/public --include="*.php" --exclude-dir=vendor | grep -i "if\|switch" | head -20
16.3 IP-Based Backdoors Kritik

Sadece belli IP'lerden erişilebilen backdoor.

grep -r "\$_SERVER\[.*REMOTE_ADDR.*==\|REMOTE_ADDR.*!=\|in_array.*REMOTE_ADDR" /var/www/html/public --include="*.php" --exclude-dir=vendor | head -10
16.4 User-Agent Filtering Yüksek

User-agent kontrol eden backdoor.

grep -r "\$_SERVER\[.*HTTP_USER_AGENT" /var/www/html/public --include="*.php" --exclude-dir=vendor | grep -i "if\|preg_match" | head -10
16.5 Multi-Stage Payloads Kritik

Çok aşamalı encoded yükler.

grep -r "eval.*eval\|base64_decode.*base64_decode.*base64_decode" /var/www/html --include="*.php" --exclude-dir=vendor

17 Imunify360: Dosya Bütünlüğü

17.1 Core File Modifications Kritik

Laravel core dosyalarında değişiklik.

find /var/www/html/vendor/laravel -name "*.php" -mtime -30 ! -path "*/cache/*" 2>/dev/null | head -10
17.2 Permission Anomalies Yüksek

777 izinli PHP dosyaları.

find /var/www/html -type f -name "*.php" -perm 0777 ! -path "*/storage/*" 2>/dev/null
17.3 Timestamp Manipulation Yüksek

Eski tarihli ama yeni içerikli dosyalar.

find /var/www/html/public -name "*.php" -type f -printf "%T@ %p\n" | sort -n | head -20 | awk '{print $2}' | xargs -I {} sh -c 'echo "File: {}"; grep -c "eval\|base64" {}'
17.4 Hidden Attributes Orta

Immutable (değiştirilemez) attribute.

find /var/www/html/public -type f -name "*.php" -exec lsattr {} \; 2>/dev/null | grep -E "i-|a-" | head -10
17.5 Suspicious File Sizes Orta

Çok küçük (<100 byte) veya çok büyük (>1MB) PHP.

find /var/www/html/public -name "*.php" -type f \( -size -100c -o -size +1M \) ! -path "*/vendor/*" 2>/dev/null | head -10

18 Imunify360: Davranış Analizi

18.1 Mass File Creation Kritik

Son 1 saatte 10+ PHP dosyası oluşturulmuş.

find /var/www/html -name "*.php" -type f -cmin -60 ! -path "*/vendor/*" ! -path "*/storage/framework/*" 2>/dev/null | wc -l
18.2 Rapid Modifications Yüksek

Aynı dosyaya 1 saat içinde çok sayıda modify.

find /var/www/html/public -name "*.php" -type f -mmin -60 ! -path "*/storage/*" -exec ls -lt {} \; | head -20
18.3 Suspicious Includes Yüksek

Dinamik include/require pattern'i.

grep -r "include\s*(\s*\$\|require\s*(\s*\$" /var/www/html/public --include="*.php" --exclude-dir=vendor | head -10
18.4 External File Operations Kritik

Dışarıdan dosya indirme/kaydetme.

grep -r "file_get_contents\s*(\s*['\"]http\|curl_exec" /var/www/html/public --include="*.php" --exclude-dir=vendor | grep "file_put_contents" | head -10
18.5 Suspicious Variable Names Orta

Tek harf veya anlamsız değişken isimleri.

grep -r '\$[a-z]\s*=.*eval\|\$[a-z]\s*=.*base64' /var/www/html/public --include="*.php" --exclude-dir=vendor | head -10

v5 Yeni Kontroller (71-90) - 20 Ekleme

19 Information Disclosure (Bilgi Sızıntısı) YENİ

19.1 .env File Exposure Kritik

Public'te .env dosyası (database credential sızıntısı).

find /var/www/html/public -name ".env" -o -name ".env.backup" -o -name ".env.old" 2>/dev/null
19.2 .git Directory Exposure Kritik

Public'te .git klasörü (tüm kaynak kod sızıntısı).

find /var/www/html/public -type d -name ".git" 2>/dev/null
19.3 Backup Files Yüksek

.bak, .old, .backup, ~, .swp uzantılı dosyalar.

find /var/www/html/public -type f \( -name "*.bak" -o -name "*.old" -o -name "*.backup" -o -name "*~" -o -name "*.swp" \) 2>/dev/null
19.4 SQL Dump Files Kritik

Public'te .sql dosyaları (database dump sızıntısı).

find /var/www/html/public -name "*.sql" -o -name "*.sql.gz" -o -name "dump.sql" 2>/dev/null
19.5 phpinfo() Pages Kritik

Sistem bilgisi ifşa eden phpinfo() sayfaları.

grep -r --include="*.php" "phpinfo\s*(" /var/www/html/public --exclude-dir=vendor | head -10

20 Credential & Key Exposure (Kimlik Sızıntısı) YENİ

20.1 Hardcoded API Keys Kritik

Kod içine yazılmış API anahtarları.

grep -r --include="*.php" -E "api[_-]?key|apikey|api[_-]?secret" /var/www/html --exclude-dir=vendor | grep -i "=" | head -20
20.2 SSH Private Keys Kritik

Public'te private key dosyaları.

find /var/www/html/public -name "id_rsa" -o -name "*.pem" -o -name "*.key" -o -name "*.ppk" 2>/dev/null
20.3 Database Credentials in Code Kritik

Kod içinde DB şifresi.

grep -r --include="*.php" -E "DB_PASSWORD|mysql.*password|mysqli.*connect" /var/www/html/public --exclude-dir=vendor | grep -v "env(" | head -10
20.4 Composer auth.json Yüksek

Public'te composer kimlik dosyası.

find /var/www/html/public -name "auth.json" -o -name "composer.json" -o -name "composer.lock" 2>/dev/null
20.5 AWS/Cloud Credentials Kritik

AWS access key, secret key hardcoded.

grep -r --include="*.php" -E "AKIA[0-9A-Z]{16}|aws_access_key|aws_secret" /var/www/html --exclude-dir=vendor | head -10

21 Attack Patterns (Saldırı İzleri) YENİ

21.1 SQL Injection Attempts Kritik

SQL injection pattern'leri (UNION, OR 1=1).

grep -r --include="*.php" -E "UNION.*SELECT|OR.*1.*=.*1|admin'--|\' OR \'1" /var/www/html/public --exclude-dir=vendor | head -10
21.2 XSS Patterns Yüksek

Cross-Site Scripting saldırı izleri.

grep -r --include="*.php" --include="*.html" -E "<script>|javascript:|onerror=|onload=" /var/www/html/public --exclude-dir=vendor | grep -v "vendor\|node_modules" | head -10
21.3 Directory Traversal Kritik

../../../ pattern'i ile dosya okuma.

grep -r --include="*.php" "\.\./\.\./\.\." /var/www/html/public --exclude-dir=vendor | head -10
21.4 NULL Byte Injection Yüksek

%00 (null byte) ile dosya uzantısı bypass.

grep -r --include="*.php" "%00\|\\x00\|chr(0)" /var/www/html/public --exclude-dir=vendor | head -10
21.5 LDAP Injection Orta

LDAP sorgularında injection.

grep -r --include="*.php" "ldap_search\|ldap_bind" /var/www/html --exclude-dir=vendor | grep "\$_" | head -10

22 Configuration Issues (Yapılandırma Sorunları) YENİ

22.1 Debug Mode Enabled Kritik

APP_DEBUG=true production'da (stack trace sızıntısı).

grep -r "APP_DEBUG.*true\|debug.*true" /var/www/html/.env /var/www/html/config/app.php 2>/dev/null
22.2 Error Display On Yüksek

display_errors = On (hata mesajları gösteriliyor).

grep -r "display_errors\s*=\s*On\|error_reporting.*E_ALL" /var/www/html --include="*.ini" --include="*.php" 2>/dev/null | head -5
22.3 Default Credentials Kritik

admin/admin, root/root gibi default şifreler.

grep -r --include="*.php" -E "password.*=.*(admin|123456|password|root)" /var/www/html/public --exclude-dir=vendor | head -10
22.4 Weak Session Config Yüksek

session.cookie_secure = false (HTTP üzerinden çerez).

grep -r "session\.cookie_secure.*false\|session\.cookie_httponly.*false" /var/www/html --include="*.ini" --include="*.php" 2>/dev/null
22.5 Insecure CORS Yüksek

Access-Control-Allow-Origin: * (tüm domainlere izin).

grep -r --include="*.php" "Access-Control-Allow-Origin.*\*" /var/www/html --exclude-dir=vendor | head -10

GÜVENLİ SİLME PROSEDÜRÜ

ÖNEMLİ UYARI

Bulguları hemen silmeyin! Önce analiz edin, yedekleyin, sonra temizleyin. Sistemi bozabilecek dosyaları asla silmeyin (vendor, core files).

Senaryo 1: Dosya İçinde Zararlı Kod

Dosya meşru ama içinde zararlı kod var (örn: Laravel controller'da backdoor).

1. Yedek Al
cp dosya.php dosya.php.backup-$(date +%s)
2. İçeriği İncele
cat dosya.php | less
3. Zararlı Kısmı Tespit Et
grep -n "eval\|base64_decode" dosya.php
4. Sadece O Kısmı Sil
nano dosya.php # Manuel temizle
5. Test Et
php artisan route:list # Site çalışıyor mu?
6. Git'e Kaydet
git add dosya.php && git commit -m "Security: Cleaned backdoor"

Senaryo 2: Dosya Tamamen Zararlı

Dosya %100 zararlı (örn: public/453bbb9eb16f.php webshell).

1. Yedek Al (Analiz İçin)
cp dosya.php /tmp/malware-backup-$(date +%s).php
2. İçeriği Kaydet
cat dosya.php > /tmp/malware-analysis.txt
3. Dosyayı SİL
rm -f dosya.php
4. Test Et
curl -I https://site.com/ # 200 OK?
5. Git'e Kaydet
git add -A && git commit -m "Security: Removed malware"
6. Analiz Et
cat /tmp/malware-analysis.txt # Nasıl sızdı?

ASLA SİLME - Kritik Sistem Dosyaları

  • vendor/ klasörü içindeki dosyalar (Laravel core)
  • node_modules/ klasörü (NPM paketleri)
  • storage/framework/ (session, cache, views)
  • bootstrap/cache/ (Laravel cache)
  • .env (silinmemeli, içeriği kontrol edilmeli)
  • config/ klasörü (konfigürasyon dosyaları)

⚠️ Bu dosyalarda zararlı kod bulursan → Rapor et, sistemi yeniden kur!

HAZIR PROMPT v5 - KOPYALA & YAPIŞTIR

v5 Prompt - 90 Kontrol + Güvenli Silme

  1. 1. Aşağıdaki prompt'u kopyalayın
  2. 2. Claude AI'ya yapıştırın
  3. 3. AI otomatik olarak:
    • ✓ 90 kontrolü çalıştırır
    • ✓ Bulguları analiz eder
    • ✓ Güvenli silme planı yapar
    • ✓ Zararlı dosyaları yedekler
    • ✓ Sadece zararlı kısımları temizler
    • ✓ Detaylı HTML rapor oluşturur

📋 Prompt v5 (90 Kontrol + Güvenli Silme)

https://ixtif.com/readme/2026/01/02/guvenlik-tarama-rehberi/v5/ bu linkteki 90 güvenlik kontrolünü tek tek uygula.

GÖREV:
1. Todo listesi oluştur (90 kontrol için 22 kategori)
2. Tüm kontrolleri tek tek çalıştır (1-90)
3. Sonuçları derle ve analiz et
4. Bugüne ait (YYYY/MM/DD formatında) detaylı HTML rapor oluştur:
   - public/readme/[YYYY]/[MM]/[DD]/guvenlik-tarama-sonuclari/v1/index.html
   - İki seviyeli içerik (basit anlatım + teknik detaylar)
   - Kritik bulgular ayrı bölüm
   - Temiz sonuçlar ayrı bölüm
   - 90 kontrolün özet tablosu
   - GÜVENLİ SİLME PLANI bölümü (ÇOK ÖNEMLİ!)

5. Bulgu varsa GÜVENLİ SİLME prosedürü uygula:
   a) YEDEK AL:
      - Her dosya için timestamp'li yedek oluştur
      - cp dosya.php dosya.php.backup-$(date +%s)

   b) ANALİZ ET:
      - Dosya tamamen zararlı mı? → SİL
      - Dosya içinde zararlı kod var mı? → SADECE O KISMI TEMİZLE
      - Sistem dosyası mı? (vendor, core) → ASLA SİLME, RAPOR ET

   c) TEMİZLE:
      - Tamamen zararlıysa: rm -f dosya
      - Kısmi zararlıysa: Sadece zararlı satırları kaldır

   d) TEST ET:
      - Site çalışıyor mu kontrol et
      - Curl ile 200 OK al

   e) GIT'E KAYDET:
      - git add -A
      - git commit -m "Security: Cleaned malware [dosya listesi]"

6. Rapor hazır olunca:
   - İzinleri düzelt (tuufi.com_:psaserv, 644/755)
   - Sembolik link oluştur
   - curl ile 200 OK kontrolü yap
   - Bana link ver

ÖNEMLİ:
- Hepsi onaylı, tek tek sormana gerek yok
- Her kategori bitince todo güncelle
- Vendor klasörünü hariç tut
- Temiz sonuçları da raporla (sadece hataları değil)
- Bulguları şiddete göre sınıflandır (Kritik/Yüksek/Orta/Normal)
- ⚠️ KRİTİK: Sistem dosyalarını (vendor, core) ASLA silme!
- ⚠️ KRİTİK: Silmeden önce MUTLAKA yedek al!
- ⚠️ KRİTİK: Raporda hangi dosyaların silindiğini/temizlendiğini belirt!

v5 Farkı: Bu prompt sadece tarama yapmaz, aynı zamanda bulguları güvenli şekilde temizler. Sistem dosyalarına dokunmaz, her şeyi yedekler, detaylı silme raporu oluşturur.

✅ v5 Prompt Ne Yapar?

  • • 90 kontrolü otomatik çalıştırır
  • • Bulguları analiz eder
  • • Güvenli silme planı yapar
  • • Yedek alır
  • • Zararlı kodları temizler
  • • HTML rapor + silme raporu

🛡️ Güvenlik Önlemleri

  • • Timestamp'li yedekler
  • • Sistem dosyası kontrolü
  • • Kısmi temizleme desteği
  • • Test sonrası git commit
  • • Detaylı changelog

📊 Rapor İçeriği

  • • 90 kontrolün sonuçları
  • • Kritik/Yüksek/Orta bulgular
  • • Silme planı
  • • Yedek konumları
  • • Temizlenen dosyalar
  • • Güvenlik önerileri

Önleme Tavsiyeleri (Saldırı Sonrası)

Şifre Değiştir

FTP, SSH, Database, Admin panel şifrelerini değiştir

.env Yeniden Oluştur

APP_KEY, DB_PASSWORD, API anahtarlarını değiştir

Upload Kapat

uploads/.htaccess: php_flag engine off

WAF Aktif Et

ModSecurity, Imunify360 veya Cloudflare WAF

Güncellemeler

PHP, Laravel, tüm paketleri güncel tut

Düzenli Tarama

Haftada bir bu 90 kontrolü çalıştır