hacktricks/pentesting-web/parameter-pollution.md

6.5 KiB
Raw Blame History

Parametre Kirliliği

AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları:

{% embed url="https://websec.nl/" %}

HTTP Parametre Kirliliği (HPP) Genel Bakış

HTTP Parametre Kirliliği (HPP), saldırganların HTTP parametrelerini manipüle ederek bir web uygulamasının davranışını istenmeyen şekilde değiştirdiği bir tekniktir. Bu manipülasyon, HTTP parametrelerinin eklenmesi, değiştirilmesi veya çoğaltılması yoluyla gerçekleştirilir. Bu manipülasyonların etkisi doğrudan kullanıcıya görünmez ancak sunucu tarafında uygulamanın işlevselliğini önemli ölçüde değiştirebilir ve istemci tarafında gözlemlenebilir etkilere neden olabilir.

HTTP Parametre Kirliliği (HPP) Örneği

Bir bankacılık uygulaması işlem URL'si:

  • Orijinal URL: https://www.victim.com/send/?from=accountA&to=accountB&amount=10000

Ek bir from parametresi ekleyerek:

  • Manipüle Edilmiş URL: https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC

İşlem, accountA yerine accountC'ye yanlışlıkla ücretlendirilebilir, HPP'nin işlemleri veya şifre sıfırlamaları, 2FA ayarları veya API anahtarı istekleri gibi diğer işlevleri manipüle etme potansiyelini gösterir.

Teknolojiye Özgü Parametre Ayrıştırma

  • Parametrelerin ayrıştırılması ve önceliklendirilmesi, temel web teknolojisine bağlı olarak değişir ve HPP'nin nasıl sömürülebileceğini etkiler.
  • Wappalyzer gibi araçlar, bu teknolojileri ve ayrıştırma davranışlarını tanımlamaya yardımcı olur.

PHP ve HPP Sömürüsü

OTP Manipülasyonu Durumu:

  • Bağlam: Bir OTP gerektiren bir giriş mekanizması sömürüldü.
  • Yöntem: Burp Suite gibi araçlar kullanılarak OTP isteği ele geçirilerek saldırganlar HTTP isteğinde email parametresini çoğalttı.
  • Sonuç: İlk e-posta için amaçlanan OTP, manipüle edilen istekte belirtilen ikinci e-posta adresine gönderildi. Bu hata, amaçlanan güvenlik önlemini atlayarak yetkisiz erişime izin verdi.

Bu senaryo, uygulamanın arka uçundaki kritik bir gözden kaçırma durumunu vurgular; bu durumda ilk email parametresi OTP oluşturmak için işlendi ancak teslimat için son parametre kullanıldı.

API Anahtarı Manipülasyonu Durumu:

  • Senaryo: Bir uygulama, kullanıcıların API anahtarlarını profil ayarları sayfası aracılığıyla güncellemesine izin verir.
  • Saldırı Vektörü: Bir saldırgan, POST isteğine ek bir api_key parametresi ekleyerek API anahtarı güncelleme işlevinin sonucunu manipüle edebileceğini keşfeder.
  • Teknik: Burp Suite gibi bir araç kullanarak, saldırgan, biri meşru diğeri kötü niyetli olmak üzere iki api_key parametresini içeren bir istek oluşturur. Sunucu, yalnızca son oluşumu işleyerek API anahtarını saldırganın sağladığı değere günceller.
  • Sonuç: Saldırgan, kurbanın API işlevi üzerinde kontrol kazanır, potansiyel olarak yetkisiz şekilde özel verilere erişebilir veya bunları değiştirebilir.

Bu örnek, özellikle API anahtar yönetimi gibi kritik özelliklerde güvenli parametre işleme gerekliliğini vurgular.

Parametre Ayrıştırma: Flask vs. PHP

Web teknolojilerinin çift HTTP parametrelerini nasıl ele aldığı farklılık gösterir ve HPP saldırılarına karşı duyarlılıklarını etkiler:

  • Flask: Sorgu dizesinde a=1&a=2 gibi karşılaşılan ilk parametre değerini benimser, başlangıçtaki örneği sonraki çoğaltmalardan önce önceliklendirir.
  • PHP (Apache HTTP Sunucusu üzerinde): Aksine, verilen örnekte a=2'yi tercih eder. Bu davranış, saldırganın manipüle edilen parametreyi orijinaline tercih ederek HPP sömürülerini yanlışlıkla kolaylaştırabilir.

Referanslar

{% embed url="https://websec.nl/" %}

AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları: