Son zamanlarda yapılan bir otonom penetrasyon testinde, son derece kısıtlayıcı web uygulaması güvenlik duvarlarını (WAF) bile ortadan kaldıran yeni bir siteler arası komut dosyası (XSS) baypas.
Güvenlik araştırmacıları, titizlikle yapılandırılmış bir WAF tarafından korunan bir ASP.NET uygulamasını ortaya çıkardılar. Geleneksel XSS yükleri-tek tırnaklı JavaScript dizelerinden çıkarılan-derhal engellendi.
Ancak HTTP parametre kirliliğini kötüye kullanarak ekip, kötü amaçlı kodu birden çok sorgu parametresine ayırmayı başardı ve WAF’ın hiç tespit etmediği sözdizimsel olarak geçerli JavaScript’e dokundu.
Savunma kontrolleri aktif olarak sömürüyü önlediğinde sömürülebilirliği göstermek klasik bir muammadır.
Bu “poc‖gtfo” senaryosu için araştırmacıların WAF, ASP.NET parametre ayrıştırıcısı ve tarayıcının JavaScript tercümanı arasındaki ayrıştırma farklılıklarını anlamaları gerekiyordu.
Geçmiş nişanlara dayanarak, ASP.net’in nasıl HttpUtility.ParseQueryString()
yinelenen parametreleri virgülle birleştirir. Bu davranış bir sorguyu çeviriyor
text/?q=1'&q=alert(1)&q='2
diziye 1',alert(1),'2
hangisi, enjekte edildiğinde
jsuserInput="…";
Geçerli Kodu Verir:
jsuserInput="1",alert(1),'2';
Burada, JavaScript’in virgül operatörü alert(1)
Son değeri döndürmeden önce-mükemmel işlevsel ancak imza tabanlı desen eşleşmesi için görünmez.
HTTP parametre kirliliği, yinelenen parametrelerin çerçeveler arasında tutarsız işlenmesini kullanır. ASP.net ve klasik ASP virgülle değerleri birleştirirken, diğerleri (örneğin Golang, Python’un Zope) diziler üretir.
Araştırmacılar, çıktıdaki tüm değerleri içeren çerçeveler için filtreleyerek ASP.NET’in virgülle uyumlu davranışına odaklandılar.
JavaScript kodunu birden çok boyunca bölme q
Parametreler, klasik bir tek parametreli XSS imzası ile eşleşmeden enjeksiyonları yerleştirmelerine izin verir.
Popüler WAF’leri test etmek
On yedi WAF Yapılandırması-AWS WAF kural setleri, Google Cloud Zırh, Azure WAF, Open-AppSec, Cloudflare, Akamai, F5, Fortiweb ve Nginx uygulaması koruma-dört yük ile test edilen testler:
- Basit enjeksiyon:
q=';alert(1),
- Semyolon ile parametre kirliliği.
- Çizgi kırılmalarıyla parametre kirliliği.
- Sezgisel tabanlı motor yükleri.
Yalnızca Google Cloud Armor (ModSecurity Kuralları), Azure WAF Varsayılan Kural Seti 2.1 ve her üç açık uygulamalı duyarlılık seviyesinin tümü üç manuel yükü de engelledi.

AWS WAF’ın yönettiği, siber güvenlik bulutu ve F5 kural setleri her seferinde atlandı. Yük karmaşıklığı arttıkça, baypas oranları basit enjeksiyon için% 17.6’dan en gelişmiş parametre kirliliği yükü için% 70,6’ya yükseldi.
Araştırmacılar daha sonra yenilmez WAF’lere karşı özerk hackbotlarını serbest bıraktılar:
- Azure WAF: Kaçan bir backsash kullanarak bir baypas keşfetti (
test\\';alert(1);//
), WAF’ın desen eşleşmesi ve JavaScript ayrıştırma arasında eşleşmeyen kaçış kullanımından yararlanmak. - Google Bulut Zırhı: Kapsamlı çabalara rağmen, hiçbir baypas bulunmadı. Hackbot, sunucunun parametre ayrıştırmasının gelecekteki keşif yollarına işaret ederek vaka duyarsız olduğunu belirtti.
- açık uygulama: 30 saniyenin altında, hackbot kritik konfigürasyon için bir bypass buldu. Daha sonra ilk yükleri engellendiğinde uyarlandı,
alert
ileconfirm
ve sonunda yükler oluşturmakq='+new Function('a'+'lert(1)')()+'
.
Bu sonuçlar, insan araştırmacılarının göz ardı edebileceği varyasyonların ortaya çıkması – manuel testi tamamlama otomasyonunun gücünün altını çizmektedir.
Çıkarımlar ve öneriler
- WAF sınırlamaları: Geleneksel İmza Tabanlı WAFS, parametreler arasında bölünmüş yükleri tespit etmek için mücadele ediyor. Etkili savunma, çoğu proxy düzeyinde çözüm için empertikal, çerçeveye özgü ayrıştırma ve bağlama duyarlı JavaScript analizi gerektirecektir.
- Makine öğrenimi uyarıları: ML tabanlı WAFS umut vaat ediyor, ancak zararsız trafik kalıplarını öğrenmeye başladıktan sonra uyarlanabilir saldırı botları tarafından hızla yıkılabilir.
- Derinlik Savunma: WAFS, güvensiz kod için bir tedavi olarak güvenilmemelidir. Titiz giriş validasyonu, bağlama duyarlı kodlama ve güvenli kalkınma uygulamaları şarttır.
- Otomasyon sinerjisi: İnsan yaratıcılığını hackbot verimliliğiyle birleştirmek, sürekli, otomatik güvenlik değerlendirmelerine olan ihtiyacı vurgulayarak hem yeni teknikleri hem de basit baypasları ortaya çıkarır.
Parametre kirliliğinin bu tavşan deliği, en sofistike WAF konfigürasyonlarının bile ince ayrıştırma uyuşmazlıkları ile geri alınabileceğini ortaya koymaktadır. Hackbotların yükselişi sadece tehdidi güçlendirir, katmanlı savunmaların ve güvenli kodlama standartlarının önemini eve götürür.
Bu hikayeyi ilginç bul! Daha fazla güncelleme almak için bizi LinkedIn ve X’te takip edin.