Hata Kodlarına Göre Login Durumu Tespiti (200, 401, 403)

Hata Kodlarına Göre Login Durumu Tespiti

Hata Kodlarına Göre Login Durumu Tespiti (200, 401, 403)

Credential stuffing ve checker yazılımlarında, bir sistemin kullanıcı adı ve şifre kombinasyonlarına nasıl yanıt verdiği büyük önem taşır. Bu yanıtlar sadece içerikte değil, aynı zamanda HTTP durum kodlarında da gizlidir. Özellikle 200, 401 ve 403 hata kodları, login kontrolünde karar verici rol oynar. Bu yazıda, bu kodların mantığını, senaryolarını ve checker mantığı içinde nasıl işlendiğini derinlemesine inceleyeceğiz.

1. 200 OK — Başarılı Giriş

HTTP 200 kodu, sunucunun isteği başarıyla işlediği anlamına gelir. Ancak bu, her zaman "başarılı giriş" anlamına gelmeyebilir. Genellikle doğru kullanıcı adı ve şifre kombinasyonu girildiğinde döner. İçerik analiz edilerek doğrulanır.

POST /api/login HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "email": "test@example.com",
  "password": "123456"
}
HTTP/1.1 200 OK
Content-Type: application/json

{
  "status": "success",
  "user_id": "5482",
  "token": "eyJhbGci..."
}

Crackle gibi bir checkerda bu yanıtın işlenmesi:

if response.status_code == 200 and "token" in response.text:
    return "HIT"
💡 Not: 200 kodu döndüğünde bile içerik "login failed" gibi bir mesaj içeriyorsa bu bir "BAD" olabilir.

2. 401 Unauthorized — Yetkisiz Giriş

401, giriş denemesinde kullanılan bilgiler geçersiz olduğunda döner. Kullanıcı adı ya da şifre hatalıdır. Bu durum neredeyse her zaman BAD olarak değerlendirilir.

HTTP/1.1 401 Unauthorized
Content-Type: application/json

{
  "error": "Invalid credentials",
  "code": "AUTH_FAILED"
}
if response.status_code == 401:
    return "BAD"

Bu durumda yeni bir kombinasyona geçilir. Ek bir kontrol gerekmez.

3. 403 Forbidden — Engellenmiş Erişim

403 kodu, erişim izninizin olmadığını gösterir. Genellikle bu durumlar:

  • IP adresi kara listede ise,
  • Geolocation engeli varsa,
  • Bot trafiği tespit edildiyse,
  • 2FA zorunluysa ama sağlanmamışsa
HTTP/1.1 403 Forbidden
Content-Type: application/json

{
  "message": "Access denied",
  "reason": "IP blocked"
}
if response.status_code == 403:
    return "RETRY"  # veya "BLOCKED"

Eğer checker proxy kullanıyorsa, IP değiştirilip tekrar denenebilir.

4. Diğer Kodlar ve Belirsiz Durumlar

  • 429 Too Many Requests: Çok fazla istek gönderildi, geçici ban. Genellikle delay ayarlanarak çözülür.
  • 500 Internal Server Error: Hedef sunucu sorunlu, retry yapılabilir.
  • 302 Redirect: Genellikle web tabanlı sistemlerde login sonrası yönlendirme içerir, Location başlığı kontrol edilmelidir.

5. Crackle'da Hata Kodlarıyla Login Tespiti — Genel Yapı

Birçok config şu yapıyı izler:

if response.status_code == 200 and "token" in response.text:
    result = "HIT"
elif response.status_code == 401:
    result = "BAD"
elif response.status_code == 403:
    result = "RETRY"
elif response.status_code == 429:
    sleep(delay)
    retry()
else:
    result = "UNKNOWN"

Crackle gibi araçlarda status_code tabanlı filtreleme, kelime eşleşmesi kadar önemli bir güvenlik katmanıdır.

⚠️ Uyarı: Bu içerik yalnızca eğitim ve bilgi güvenliği amaçlıdır. Herhangi bir üçüncü taraf hizmete izinsiz istek göndermek yasa dışıdır. Crackle veya benzeri araçları yalnızca kendi sistemlerinizi test etmek için kullanınız.

Yorum Gönder

Daha yeni Daha eski