Log injection: kendi loglarında sahte kayıt üretmek
Loglar kanıttır. İstek verisi onlara escape edilmeden yazıldığında, o verideki bir satır sonu çağıranın kendi kayıtlarını eklemesine izin verir.
Örnek
console.log("Login failed for user:", req.body.userName);
// userName = "alice\nINFO Login succeeded for user: admin"const clean = String(req.body.userName).replace(/[\r\n]/g, "");
logger.warn({ event: "login_failed", user: clean });
// or a structured logger that writes values as JSON fieldsNasıl oluşur
alice'ten sonra bir satır sonu ve INFO Login succeeded for user: admin içeren bir kullanıcı adı iki log satırı üretir; ikincisini saldırgan yazmıştır. Sahte kayıtlar izleri örtebilir, başka bir kullanıcıyı suçlayabilir veya uyarı kurallarını şaşırtabilir. Bir web panelinde gösterilen loglar ikinci bir risk ekler: kayıttaki HTML, görüntüleyende XSS'e dönüşebilir.
Nasıl düzeltilir
Her değeri kendi kaydının içinde tut.
- Log'a yazmadan önce kullanıcı verisinden \r ve \n'yi temizle veya kodla
- Değerleri alan olarak yazan yapılandırılmış bir logger'ı (pino, JSON ile winston) tercih et
- Log içeriğini HTML'de gösterirken escape et
- Secret'ları ve tüm istek gövdelerini hiç log'lama
RepoVerse bunu nasıl bulur
- Düşükİstek girdisi log'a escape edilmeden yazılıyor
Satır sonu içeren bir değer sahte log kayıtları üretir — uydurma bir "giriş başarılı" satırı ya da logları sonra okuyan kişiden asıl saldırıyı gizleyen gürültü.
veri akışı · CWE-117
Sorular
- Log injection ciddi bir açık mı?
- Tek başına genelde düşük değerlendirilir ama diğer her olayı incelemek için güvendiğin logları zayıflatır ve log görüntüleyicilerde XSS'e zincirlenebilir.
- RepoVerse log injection'ı nasıl buluyor?
- İstek girdisini console ve logger çağrılarına kadar izler. İmzası doğrulanmış webhook içerikleri saldırgan girdisi sayılmaz.
İlgili
- Siteler arası betik (XSS): nasıl çalışır, nasıl durdurulurYansıtılan, kalıcı ve DOM tabanlı XSS (CWE-79), zafiyetli ve düzeltilmiş kodla; ayrıca hasarı sınırlayan şablon, CSP ve cookie ayarları.
- Kod, secret ve bağımlılıklar için GitHub güvenlik taramasıGitHub reposunu injection açıkları, sızmış secret'lar ve zafiyetli bağımlılıklar için tara. İstekten tehlikeli çağrıya veri akışı izi ve çözüm önerileri.
Güncellendi 2026-10-11