- HTTP Güvenlik Headerları
- Transport Layer Security (TLS, SSL)
- Güvenli TLS Yapılandırması
- HTTP Kimlik Doğrulama
B. TEST METODOLOJİLERİ
- Test Adımları
- Web uygulamalarında görülen zafiyet türleri hakkında genel bilgi
- Pasif bilgi toplama adımları
- Aktif bilgi toplama adımları
- Web uygulamasının haritasının çıkartılması
- Otomatize araçla
- Web uygulama güvenlik testleri için kullanılan tarayıcı eklentileri
- Web proxyler (Burp, Zap, Fiddler, Charles)
- Web cache deception
- Request smuggling
- Server Side Template Injection
C. OWASP TOP -V.2020
- Injection
- Broken Authentication
- Sensitive Data Exposure
- XML External Entities (XXE)
- Broken Access control
- Security misconfigurations
- Cross Site Scripting (XSS)
- Insecure Deserialization
- Using Components with known vulnerabilities
- Insufficient logging and monitoring
Yararlı olması dileğiyle...
![]() |
Siber Güvenlik - Ak.Web.TR |
---
A. GENEL HTTP BİLGİSİ VE TARİHÇESİ
Web uygulama sızma testleri, bir uygulamanın güvenlik açıklarını belirlemek ve bunları gidermek için yapılan testlerdir. HTTP protokolü, web uygulamalarının temelini oluşturduğundan, HTTP'nin güvenlik yönleri büyük önem taşır. Aşağıda, HTTP ve ilgili güvenlik kavramlarını detaylı olarak ele alacağız.
1. HTTP Güvenlik Headerları
HTTP güvenlik başlıkları (security headers), web uygulamalarının güvenliğini artırmak için HTTP yanıtlarında kullanılan özel başlıklardır. Bu başlıklar, tarayıcıların belirli güvenlik politikalarını uygulamasını sağlar.
Önemli HTTP Güvenlik Başlıkları:
-
Content-Security-Policy (CSP):XSS (Cross-Site Scripting) saldırılarını önlemek için hangi kaynaklardan içerik yüklenebileceğini belirler.Örnek:
Content-Security-Policy: default-src 'self'; script-src 'self' https://trustedsource.com
-
Strict-Transport-Security (HSTS):HTTP yerine yalnızca HTTPS bağlantılarına izin verir. Orta katman saldırılarını (MITM) önlemeye yardımcı olur.Örnek:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
-
X-Frame-Options:Clickjacking saldırılarını önlemek için sitenin iframe içine alınmasını kısıtlar.Örnek:
X-Frame-Options: DENY
-
X-Content-Type-Options:MIME tabanlı saldırıları önleyerek tarayıcının dosya türlerini tahmin etmesini engeller.Örnek:
X-Content-Type-Options: nosniff
-
Referrer-Policy:Tarayıcıların, yönlendirme bilgisini (referer) ne kadar paylaşacağını belirler.Örnek:
Referrer-Policy: no-referrer
-
Permissions-Policy:Tarayıcının belirli özellikleri (kamera, mikrofon vb.) nasıl yöneteceğini belirler.Örnek:
Permissions-Policy: geolocation=(), microphone=()
2. Transport Layer Security (TLS, SSL)
TLS (Transport Layer Security) ve eski versiyonu SSL (Secure Sockets Layer), internet üzerindeki veri iletişimini şifreleyerek güvenli hale getiren protokollerdir. HTTPS, bu protokoller üzerinden çalışır.
SSL ve TLS'nin Versiyonları:
- SSL 2.0 ve 3.0 (Güvensiz, kullanılmamalı)
- TLS 1.0 ve 1.1 (Güvensiz, terk edilmeli)
- TLS 1.2 (Güvenli, hala yaygın olarak kullanılıyor)
- TLS 1.3 (En güncel ve güvenli versiyon)
TLS/SSL Nasıl Çalışır?
-
Handshake (El Sıkışma):
- Sunucu ve istemci, hangi şifreleme protokolünü kullanacaklarını belirler.
- Sunucu sertifikasını (genellikle bir CA tarafından imzalanmış) gönderir.
- Ortak bir oturum anahtarı oluşturulur.
-
Şifreli İletişim:
- Tüm veri akışı bu oturum anahtarı ile şifrelenir.
-
Bağlantının Sonlandırılması:
- Oturum anahtarı kullanılarak bağlantı güvenli şekilde kapatılır.
3. Güvenli TLS Yapılandırması
TLS kullanımı tek başına yeterli değildir; doğru yapılandırılmazsa güvenlik açıklarına sebep olabilir.
Güvenli TLS Yapılandırma Adımları:
-
TLS 1.2 ve TLS 1.3 kullanın.
ssl_protocols TLSv1.2 TLSv1.3;
-
Zayıf Şifreleme Algoritmalarını Devre Dışı Bırakın.
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
-
HSTS Kullanımı:HTTPS bağlantısının zorunlu olmasını sağlar.
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
-
Sertifika Geçerliliğini Sağlayın:
- Sertifikanın güvenilir bir CA (Certificate Authority) tarafından imzalanmış olması gerekir.
- Let’s Encrypt gibi ücretsiz CA’lar kullanılabilir.
-
OCSP Stapling Kullanımı:Sertifika geçerlilik kontrolü için tarayıcının CA ile iletişim kurmasını hızlandırır.ssl_stapling on;ssl_stapling_verify on;
4. HTTP Kimlik Doğrulama
Web uygulamalarında kullanıcıların doğrulanmasını sağlamak için farklı HTTP kimlik doğrulama yöntemleri kullanılır.
Temel HTTP Kimlik Doğrulama Yöntemleri:
-
Basic Authentication:
- Kullanıcı adı ve şifre,
Base64
ile kodlanarakAuthorization
başlığında gönderilir. - Güvensizdir, çünkü Base64 kodlaması kolayca çözülebilir.Örnek:
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
- Kullanıcı adı ve şifre,
-
Digest Authentication:
- Sunucu, istemciden kimlik doğrulama için belirli bir “hash” değerini göndermesini ister.
- Şifre doğrudan gönderilmez, ancak yine de bazı saldırılara karşı savunmasız olabilir.
-
Token-Based Authentication (JWT, OAuth):
- Kullanıcı oturum açtıktan sonra bir “token” (örneğin, JWT) alır ve her istekte bu token'ı gönderir.
- Modern web uygulamalarında en çok kullanılan yöntemdir.Örnek JWT Kimlik Doğrulama:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
-
Mutual TLS Authentication (mTLS):
- Hem istemcinin hem de sunucunun TLS sertifikaları ile doğrulama yapmasını sağlar.
- Özellikle kurumsal ve yüksek güvenlik gerektiren sistemlerde tercih edilir.
Sonuç
Web uygulama sızma testlerinde, HTTP güvenlik önlemlerini anlamak kritik öneme sahiptir. Güvenlik başlıkları, TLS protokolleri ve kimlik doğrulama yöntemleri, bir web uygulamasının saldırılara karşı ne kadar dirençli olacağını belirler. Güvenli bir yapılandırma ile MITM saldırıları, kimlik bilgisi hırsızlığı ve veri sızıntısı gibi riskler büyük ölçüde azaltılabilir.
---
B. WEB UYGULAMA SIZMA TESTİ METODOLOJİLERİ
Web uygulama sızma testleri, sistemin güvenlik açıklarını belirlemek için belirli metodolojilere göre yürütülür. Bu süreç, çeşitli test adımlarını, zafiyet türlerini ve güvenlik araçlarını içerir. Aşağıda, web uygulama test metodolojilerinde kullanılan önemli kavramları detaylı olarak açıklıyoruz.
1. Test Adımları
Web uygulama sızma testleri genellikle aşağıdaki aşamalara ayrılır:
-
Bilgi Toplama (Reconnaissance)
- Hedef hakkında açık kaynaklardan (OSINT) bilgi toplanır.
- DNS, WHOIS, subdomain keşfi, IP bilgileri elde edilir.
-
Tarama ve Keşif (Scanning & Enumeration)
- Web uygulamasının yapısı ve bileşenleri analiz edilir.
- Açık portlar, servisler ve güvenlik açıkları tespit edilir.
-
Zafiyet Analizi (Vulnerability Analysis)
- Hedefte bilinen zafiyetlerin olup olmadığı kontrol edilir.
- OWASP Top 10 zafiyetleri araştırılır.
-
Saldırı ve İstismar (Exploitation)
- Bulunan güvenlik açıkları kullanılarak sistem ele geçirilmeye çalışılır.
- SQL Injection, XSS, RCE gibi teknikler uygulanır.
-
Yetki Yükseltme (Privilege Escalation)
- Daha yüksek yetkilere erişim sağlamak için exploit işlemi gerçekleştirilir.
-
Sistemde Kalıcılık Sağlama (Maintaining Access)
- Sistemde uzun süreli erişim için arka kapılar (backdoor) oluşturulabilir.
-
Kanıt Toplama ve Raporlama (Reporting & Documentation)
- Tespit edilen zafiyetler detaylı bir şekilde raporlanır.
- Çözümler ve güvenlik önlemleri önerilir.
2. Web Uygulamalarında Görülen Zafiyet Türleri
Web uygulamalarında sıkça karşılaşılan güvenlik açıkları şunlardır:
- SQL Injection (SQLi): Veritabanı manipülasyonu için kullanılır.
- Cross-Site Scripting (XSS): Kullanıcı tarayıcısında kötü niyetli kod çalıştırılır.
- Cross-Site Request Forgery (CSRF): Kullanıcı adına istekler gönderilir.
- Broken Authentication: Zayıf kimlik doğrulama mekanizmaları sömürülür.
- Security Misconfiguration: Yanlış yapılandırılmış güvenlik ayarları kullanılır.
- Server-Side Request Forgery (SSRF): Sunucunun iç ağdaki kaynaklara erişmesi sağlanır.
3. Pasif Bilgi Toplama Adımları
Pasif bilgi toplama, hedef sistemle doğrudan etkileşime girmeden yapılan keşif sürecidir.
- WHOIS sorguları: Alan adı bilgilerini elde etmek için kullanılır.
- Google Dorking: Google üzerinde özel arama operatörleriyle bilgi toplanır.
- Shodan, Censys taramaları: Hedef sistemin açık portları ve servisleri belirlenir.
- Wayback Machine: Web sitesinin geçmiş sürümleri incelenir.
4. Aktif Bilgi Toplama Adımları
Aktif bilgi toplama, hedef sistemle doğrudan etkileşime geçerek yapılan testlerdir.
- Nmap taramaları: Açık portları ve çalışan servisleri belirlemek için kullanılır.
- Dirb ve Gobuster: Web dizinlerini keşfetmek için kullanılır.
- Burp Suite & ZAP: Web istekleri analiz edilir.
- Subdomain keşfi:
subfinder
,amass
gibi araçlarla alt alan adları bulunur.
5. Web Uygulamasının Haritasının Çıkartılması
Web uygulamalarının saldırı yüzeyini belirlemek için şu yöntemler uygulanır:
- Site haritası oluşturma: Tüm URL’ler, parametreler ve endpoint'ler belirlenir.
- Manuel keşif: Tarayıcıyla gezinerek uygulamanın yapısı incelenir.
- Burp Suite Proxy: Web trafiği izlenir ve istekler kaydedilir.
6. Otomatize Araçlarla Testler
Otomatik araçlar kullanılarak zafiyet taramaları yapılır:
- Nikto: Web sunucusu açıklıklarını tespit eder.
- Wpscan: WordPress sitelerinde güvenlik açıklarını tarar.
- SQLmap: SQL Injection testleri yapar.
- Metasploit: Güvenlik açıklarını istismar etmek için kullanılır.
7. Web Uygulama Güvenlik Testleri için Kullanılan Tarayıcı Eklentileri
- HackBar: XSS ve SQLi testleri için kullanılır.
- Wappalyzer: Web teknolojilerini analiz eder.
- Cookie Editor: Çerezleri düzenleyerek oturum testleri yapılmasını sağlar.
- Burp Suite Extension’ları: Özel güvenlik testleri için kullanılır.
8. Web Proxyler (Burp, ZAP, Fiddler, Charles)
Web proxy araçları, HTTP/S trafiğini yakalayarak analiz etmeye yardımcı olur.
- Burp Suite: En popüler güvenlik test aracı, birçok modüle sahiptir.
- OWASP ZAP: Açık kaynaklı ve kullanıcı dostu bir web güvenlik tarayıcısıdır.
- Fiddler: HTTP trafiğini izlemek ve değiştirmek için kullanılır.
- Charles Proxy: Mobil ve web trafiğini analiz etmek için kullanılır.
9. Web Cache Deception
Web önbellekleme hatalarından yararlanarak hassas bilgilerin açığa çıkmasını sağlayan bir saldırı türüdür.
-
Senaryo:
- Kullanıcı özel bir URL (örneğin,
/profile.php?user=admin
) ile giriş yapar. - Önbelleğe alınması gereken URL yanlışlıkla herkese açık hale gelir.
- Başkaları, bu URL’yi ziyaret ederek özel bilgileri görebilir.
- Kullanıcı özel bir URL (örneğin,
-
Önlemler:
- Hassas sayfalar için önbellekleme devre dışı bırakılmalıdır.
Cache-Control: no-store, no-cache, must-revalidate
10. Request Smuggling
İki farklı HTTP proxy arasında farklı yorumlamalar oluşturarak saldırganın paket manipülasyonu yapmasını sağlayan bir tekniktir.
-
Çalışma Prensibi:
Content-Length
veTransfer-Encoding
başlıklarının çakışması kullanılır.- Proxy, istemcinin farklı bir istek gönderdiğini düşünerek hatalı yönlendirme yapabilir.
-
Önlemler:
- İçerik uzunluğu tutarsızlıklarını engellemek için sadece tek bir encoding yöntemi kullanılmalıdır.
Transfer-Encoding: chunked
11. Server-Side Template Injection (SSTI)
Web uygulamalarında kullanılan şablon motorlarındaki zafiyetler, uzaktan kod çalıştırmaya (RCE) yol açabilir.
-
Etkilenen Şablon Motorları:
- Jinja2 (Python)
- Twig (PHP)
- Freemarker (Java)
-
Saldırı Örneği:
- Kullanıcının girdiği metin, şablon motoru tarafından doğrudan işlendiğinde kötü amaçlı kod çalıştırılabilir:
{{ 7*7 }} → 49 (Eğer çalışıyorsa sistem SSTI'ye karşı savunmasızdır.)
-
Önlemler:
- Kullanıcı girdileri şablon motoruna doğrudan dahil edilmemelidir.
- White-list tabanlı girdi filtreleme uygulanmalıdır.
Sonuç
Web uygulama sızma testleri, bilgi toplama, tarama, analiz, istismar ve raporlama süreçlerini kapsayan çok aşamalı bir süreçtir. Güvenlik zafiyetlerini belirlemek için hem manuel hem de otomatik araçlardan faydalanmak gereklidir. Özellikle Request Smuggling, Web Cache Deception ve SSTI gibi modern saldırı teknikleri dikkate alınarak sistemler güçlendirilmelidir.
---
C. OWASP TOP 10 (2020) SİBER GÜVENLİK ZAFİYETLERİ
OWASP (Open Web Application Security Project), web uygulamalarında en yaygın güvenlik açıklarını belirleyerek OWASP Top 10 listesini yayımlar. 2020 versiyonunda, saldırganlar tarafından sıkça sömürülen zafiyetler ve korunma yöntemleri detaylandırılmıştır.
Aşağıda, her bir zafiyeti detaylı açıklamalar ve uygulamalı örneklerle inceliyoruz.
1. Injection
Injection saldırıları, uygulamanın kullanıcının girdiği veriyi güvenli bir şekilde işlemediği durumlarda meydana gelir. En yaygın türü SQL Injection (SQLi) olmakla birlikte Command Injection, LDAP Injection, NoSQL Injection gibi varyasyonları da mevcuttur.
Örnek: SQL Injection
Zayıf kod:
$username = $_GET['username'];
$password = $_GET['password'];$query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";$result = mysqli_query($conn, $query);
Kullanıcı giriş alanına şu girdi girerse:
' OR '1'='1
SQL sorgusu şu hale gelir:
SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '';
Bu sorgu daima doğru döneceğinden, saldırgan sisteme giriş yapabilir.
Korunma Yöntemleri
✅ Hazırlanmış SQL ifadeleri (Prepared Statements) kullanın:
$stmt = $conn->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$stmt->bind_param("ss", $username, $password);$stmt->execute();
2. Broken Authentication
Zayıf kimlik doğrulama mekanizmaları, saldırganların hesapları ele geçirmesine neden olabilir.
Örnek: Brute Force ile Hesap Ele Geçirme
Eğer bir sistem sınırsız giriş denemesine izin veriyorsa, saldırgan şu kodu kullanarak şifreleri deneyebilir:
import requests
url = "https://akblog.net/login"user = "admin"passwords = ["123456", "password", "admin", "admin123"]for pwd in passwords:response = requests.post(url, data={"username": user, "password": pwd})if "Login successful" in response.text:print(f"[+] Şifre bulundu: {pwd}")break
3. Sensitive Data Exposure
Kullanıcı verileri şifrelenmeden veya zayıf algoritmalarla saklanıyorsa, saldırganlar tarafından çalınabilir.
Örnek: Zayıf Şifreleme
Yanlış:
$password = md5($password);
MD5 artık kırılabilir bir algoritmadır.
✅ Güvenli yöntem:
$passwordHash = password_hash($password, PASSWORD_BCRYPT);
4. XML External Entities (XXE)
XXE saldırıları, XML verisinin harici varlıkları işlemesine izin verilmesiyle oluşur.
Örnek: XXE ile Dosya Okuma
Zayıf XML işleyici şu kodu işler:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]><user><name>&xxe;</name></user>
Eğer sistem bu XML'i işlerse, /etc/passwd
dosyasının içeriği saldırgana döner.
Korunma Yöntemleri
5. Broken Access Control
Yetkilendirme mekanizmalarındaki hatalar, saldırganların admin yetkisi almasına yol açabilir.
Örnek: ID Manipülasyonu ile Yetki Yükseltme
Eğer şu istek bir kullanıcıya ait siparişleri getiriyorsa:
GET /orders?user_id=1001
Saldırgan user_id=1002
yaparak başkasının siparişlerine erişebilir.
6. Security Misconfigurations
Yanlış yapılandırmalar saldırganlara sistem erişimi sağlar.
Örnek: Açık bırakılmış phpinfo()
sayfası.
https://akblog.net/phpinfo.php
7. Cross Site Scripting (XSS)
XSS, saldırganların zararlı JavaScript kodu çalıştırmasına neden olur.
Örnek: Stored XSS
Bir form girdisi doğrudan sayfaya eklenirse:
<input type="text" name="comment">
Kullanıcı şunu girerse:
<script>alert('XSS!')</script>
Kod tüm ziyaretçiler için çalışır.
Content Security Policy (CSP)
kullanın8. Insecure Deserialization
Serileştirilmiş nesneler saldırganlar tarafından değiştirilerek çalıştırılabilir.
Örnek: PHP Object Injection
class User {
var $role = "user";}$serialized = serialize(new User());
Eğer saldırgan şunu değiştirirse:
O:4:"User":1:{s:4:"role";s:5:"admin";}
Kendini admin yapabilir.
9. Using Components with Known Vulnerabilities
Eski kütüphaneler ve framework'ler sisteminizde açıklar oluşturabilir.
Örnek:
pip show flask
OWASP Dependency Check
gibi araçlarla güvenlik taraması yapın10. Insufficient Logging and Monitoring
Loglama ve izleme eksikliği saldırıların fark edilmesini geciktirir.
---
D. Yararlanılan Kaynaklar
- OWASP Foundation. (2020). OWASP Top Ten 2020. https://owasp.org/www-project-top-ten/
- OWASP Cheat Sheets. Security Testing Guide & Cheat Sheets. https://cheatsheetseries.owasp.org/
- CWE (Common Weakness Enumeration). Software Weakness Types. https://cwe.mitre.org/
1. Akademik ve Teknik Kaynaklar
- Viega, J., & McGraw, G. (2001). Building Secure Software: How to Avoid Security Problems the Right Way. Addison-Wesley.
- Bishop, M. (2005). Introduction to Computer Security. Addison-Wesley.
- Stuttard, D., & Pinto, M. (2011). The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws. Wiley.
2. Web Güvenliği ile İlgili Standartlar ve Belgeler
- NIST (National Institute of Standards and Technology). (2020). NIST Special Publication 800-53: Security and Privacy Controls for Federal Information Systems and Organizations. https://csrc.nist.gov/publications/sp800-53
- RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content. https://datatracker.ietf.org/doc/html/rfc7231
- MITRE ATT&CK Framework. Cyber Threat Intelligence & Attack Techniques. https://attack.mitre.org/
3. Güvenlik Araçları ve Uygulamalı Kaynaklar
- Burp Suite Documentation. Web Security Testing Tool. https://portswigger.net/burp/documentation
- ZAP (Zed Attack Proxy) Security Guide. OWASP ZAP Documentation. https://www.zaproxy.org/docs/
- Metasploit Framework Documentation. Penetration Testing Tool. https://docs.metasploit.com/
- AkSecurity | Akblog Pentest / Penetrasyon Testleri >|< https://www.akblog.net/
Bu kaynaklardan faydalanarak OWASP Top 10 kapsamındaki güvenlik açıklarını daha detaylı inceleyebilir ve uygulamalı testler gerçekleştirebilirsiniz.
E. Kaynak: (Ak.web.TR)
Bu Makale, platformumuzun uzman editör ekibi tarafından özenle hazırlanmış ve titizlikle derlenmiştir. İçerik, alanında deneyimli profesyonellerin katkılarıyla, en güncel bilgilere ve güvenilir kaynaklara dayanarak oluşturulmuştur.
Editörlerimiz bu çalışmada, okuyucularına doğru ve yüksek kaliteli bilgi sunma misyonunu yerine getirmek amacıyla kapsamlı bir araştırma süreci yürütmüştür. Sunulan bu içerik, editörlerin bilgi birikimi ve uzmanlıkları ile harmanlanarak, okuyucuların ihtiyaçlarını en iyi şekilde karşılayacak biçimde yapılandırılmıştır. Ak.web.TR'nin bağlı olduğu yüksek yayın standartları ve editoryal süreçler doğrultusunda, içeriklerin her aşamasında kalite kontrolü sağlanmış olup, en güncel verilerle sürekli güncellenmektedir. Bu titiz süreç, bilişim dünyasında güvenilir bir bilgi kaynağı olarak itibarımızı sürdürebilmek için, hayati önem taşımaktadır.
![]() |
Siber Güvenlik |
Ak.web.TR