Güvenlik Rehberi v2

PHP Güvenlik Tarama Rehberi

Backdoor, Malware ve Zararlı Kod Tespiti

2 Ocak 2026 | 50 Kontrol Noktası | +20 Yeni

Basit Anlatım (Herkes İçin)

Bu rehber, web sitenize sızabilecek zararlı kodları (virüs, backdoor, shell) tespit etmenizi sağlar. Hacker'lar genellikle:

Aşağıdaki komutları düzenli olarak çalıştırarak sitenizi koruyabilirsiniz.

Kritik Uyarı

Bu taramalar sırasında bulunan şüpheli dosyaları hemen silmeyin! Önce içeriğini inceleyin, yedek alın ve emin olduktan sonra silin. Yanlışlıkla silinen sistem dosyaları siteyi çökertebilir.

v2'de Eklenen Yeni Kontroller

Kategori 10-13: Variable function, Hex encoding, PHP Wrappers, Webshell patterns, Deserialization, Config manipulation, SEO spam, Advanced obfuscation

50 Güvenlik Kontrol Noktası

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

v2 - Yeni Eklenen Kontroller (31-50)

10 Variable Function & Dinamik Kod YENİ

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 YENİ

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 YENİ

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 YENİ

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 YENİ

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" \)

Hızlı Tarama Script'i v2.0

Tüm 50 kontrolü tek seferde çalıştırmak için:

#!/bin/bash
# PHP Security Scanner v2.0 - 50 Kontrol
# Path'i kendi sunucunuza göre düzenleyin
WEBROOT="/var/www/html"

echo "=== PHP GÜVENLİK TARAMASI v2.0 ==="
echo "=== 50 Kontrol Noktası ==="
echo ""

# Kategori 1: Backdoor
echo "[1/50] Eval+Base64 kontrolü..."
grep -r --include="*.php" -l "eval(base64_decode" $WEBROOT --exclude-dir=vendor 2>/dev/null

echo "[2/50] Shell komutları kontrolü..."
grep -r --include="*.php" -l "passthru\|shell_exec" $WEBROOT/public 2>/dev/null

echo "[3/50] REQUEST+Eval kontrolü..."
grep -r --include="*.php" -l '\$_\(REQUEST\|POST\|GET\).*eval' $WEBROOT 2>/dev/null

# Kategori 3: Gizli Dosyalar
echo "[9/50] Gizli PHP dosyaları..."
find $WEBROOT -name ".*php" 2>/dev/null

echo "[10/50] Rastgele isimli dosyalar..."
find $WEBROOT/public -maxdepth 2 -regextype posix-extended -regex '.*/[a-f0-9]{16,}\.[a-z]+$' 2>/dev/null

# Kategori 4: Upload
echo "[13/50] Uploads'da PHP..."
find $WEBROOT/public/uploads -name "*.php" 2>/dev/null

echo "[15/50] Resim içinde PHP..."
find $WEBROOT -type f \( -name "*.jpg" -o -name "*.png" \) -exec grep -l "<?php" {} \; 2>/dev/null

# Yeni v2 kontrolleri
echo "[31/50] Variable function calls..."
grep -r --include="*.php" "call_user_func\|call_user_func_array" $WEBROOT/public --exclude-dir=vendor 2>/dev/null

echo "[35/50] Hex encoded strings..."
grep -r --include="*.php" '\\x[0-9a-fA-F]\{2\}\\x[0-9a-fA-F]\{2\}' $WEBROOT/public --exclude-dir=vendor 2>/dev/null

echo "[39/50] php://input exploit..."
grep -r --include="*.php" "php://input" $WEBROOT/public --exclude-dir=vendor 2>/dev/null

echo "[43/50] Webshell patterns..."
grep -r --include="*.php" -l "c99shell\|r57shell\|b374k\|WSO" $WEBROOT 2>/dev/null

echo "[46/50] Deserialization attack..."
grep -r --include="*.php" "unserialize\s*(\s*\$_" $WEBROOT --exclude-dir=vendor 2>/dev/null

echo "[47/50] .user.ini dosyaları..."
find $WEBROOT -name ".user.ini" -exec echo "FOUND: {}" \;

echo "[49/50] SVG/XML PHP injection..."
find $WEBROOT -type f \( -name "*.svg" -o -name "*.xml" \) -exec grep -l "<?php" {} \; 2>/dev/null

echo "[50/50] Alternatif PHP uzantıları..."
find $WEBROOT -type f \( -name "*.pht" -o -name "*.phps" -o -name "*.inc" \) 2>/dev/null

echo ""
echo "=== TARAMA TAMAMLANDI (v2.0 - 50 Kontrol) ==="

Zararlı Dosya Bulunduğunda

1

Yedek Al: Dosyayı silmeden önce içeriğini kaydet (analiz için)

2

İçeriği İncele: cat dosya.php ile içeriğe bak

3

Oluşturma Tarihini Kontrol Et: ls -la dosya.php

4

Sil: rm -f dosya.php

5

Git'e Kaydet: git add -A && git commit -m "Security: Zararlı dosya silindi"

Önleme Tavsiyeleri

Upload Klasörü

uploads/.htaccess dosyasına php_flag engine off ekleyin

Dosya İzinleri

Dosyalar 644, klasörler 755 olmalı

Güncellemeler

PHP, Laravel ve paketleri güncel tutun

Düzenli Tarama

Haftada bir bu kontrolleri çalıştırın

.user.ini Koruması

Upload klasörlerinde .user.ini oluşturulmasını engelleyin

Uzantı Kontrolü

Sadece izin verilen dosya uzantılarını kabul edin