Hata ödülü avcıları için JavaScript dosyalarını test etme


Şüphesiz diğer hata ödülü avcılarının JavaScript dosya numaralandırması sayesinde kritik güvenlik açıklarını bulduğunu duymuş veya görmüşsünüzdür, değil mi? Bu makale tamamen hata ödülü avcıları için JavaScript dosyalarını test etmenin ve incelemenin önemiyle ilgilidir. Tam olarak neyi aramanız gerektiği konusunda size rehberlik edeceğiz ve JavaScript dosyalarındaki en yaygın güvenlik açıklarına (ve güvenlik açıklarına yol açan kalıplara) ilişkin örnekler sunacağız!

Teknik içeriğimizin çoğunda olduğu gibi, hata ödülü hedefinizde hata ararken bunu her zaman kontrol listeniz olarak kullanabilirsiniz!

Hadi dalalım!

JavaScript dosyalarının çok çeşitli (kritik) güvenlik açıklarına yol açabilmesi nedeniyle hata ödülü açısından ne kadar önemli olduğunu hepimiz biliyoruz.

Bazı hata ödülü avcıları genellikle javascript dosyalarını test etmeyi ve incelemeyi gözden kaçırır veya hatta atlar. Çoğunlukla okunması zor, incelenmesi ve tam olarak anlaşılması oldukça zor olduğundan.

Ancak bu dosyalar genellikle API uç noktalarına, uygulama rotalarına ve giriş parametrelerine referanslar içerir. Bazen bunların içinde jetonlar veya diğer sabit kodlanmış sırlar da bulunabilir.

Bu nedenle JavaScript dosyaları asla ihmal edilmemelidir. Özellikle hedef güncelliğini yitirmiş göründüğünde veya JavaScript ağırlıklı bir uygulama olduğunda.

Bu yazımızda JavaScript dosyalarında nelere dikkat etmeniz gerektiği konusunda size yol göstereceğiz.

Başvurulan API uç noktaları ve uygulama rotaları

JavaScript dosyaları, uygulamanın son kullanıcı için çalışmasını sağlamak için genel amaçlı kod (işlev çağrıları gibi) içerir. Bu işlevler, özellikle de bir API (Uygulama Programlama Arayüzü) ile iletişim kurmak için mevcut olanların, API’nin bekleyebileceği tüm giriş parametreleri veya veri yapıları dahil olmak üzere iletişim kurulacak uç noktayı tanımlaması gerekir.

Hata ödül avcıları olarak temel amacımız, içerik keşif sürecimizin ayrılmaz bir parçası olduğu için mümkün olduğunca çoğunu sıralamaktır.

Dikkate alınması gereken bir diğer düşünce, bazı hedeflerin, ana uygulamanın parçası olmayan veya son kullanıcıya yönelik olmayan javascript dosyalarında başvurulan API uç noktalarına veya uygulama yollarına sahip olmasıdır (yönetim panellerini veya geliştirici hata ayıklama araçlarını düşünün). Hedefe bir proxy müdahale aracıyla göz atmak bu gizli API uç noktalarını veya URL’lerini alamayabilir; bu nedenle içerik keşfi gerçekleştirmenin ek yollarına başvurmamız gerekir.

Bu nedenle, JS dosyalarında bu tür ulaşılması zor API uç noktalarını veya uygulama rotalarını her zaman bulmayı denemelisiniz; çünkü bunlar, kritik güvenlik açıklarına yol açabilecek test edilmemiş bileşenleri keşfetme şansımızı ciddi şekilde artırabilir.

UÇ! LinkFinder @GerbenJavado tarafından JavaScript dosyalarındaki bağlantıları bulmanıza yardımcı olacak mükemmel ve basit bir açık kaynaklı araçtır!

Sabit kodlanmış kimlik bilgileri

Geliştiricilerin yanlışlıkla hata yapması ve sabit kodlanmış anahtarları JavaScript dosyaları gibi genel kaynaklara aktarması mümkündür. Örneğin, AWS kimlik bilgileri sabit kodlanmamalı ve statik javascript dosyalarında bulunmamalıdır.

Bu nedenle, yapılandırma dosyalarında sabit kodlanmış (genellikle genel nesneler veya değişkenler olarak bildirilen) her türlü kimlik bilgisini aramanız önerilir.

Sabit kodlanmış AWS kimlik bilgilerine sahip bir yapılandırma dosyası örneği

Otomatik araçlar çok sayıda kimlik bilgisi türünü algılayabilir ancak sonuçların bir kısmı geçersiz veya zaten iptal edilmiş anahtarlar olduğundan, raporlamadan önce keşfedilen kimlik bilgilerinizi manuel olarak doğrulamanız gerekecektir.

@Streaak, popüler genel API anahtarları ve kimlik bilgilerinin bir listesini ve keşfedilen bulgularınızı bu API’lere göre nasıl doğrulayacağınızı içeren açık kaynaklı bir GitHub deposu yayınladı.

UÇ! Bazı API anahtarları veya belirteçleri herkese açık olmalıdır (örneğin, Google API anahtarı). Kimlik bilgilerinin gerçekten ifşa edilmek üzere tasarlanmadığını ve ayrıcalıklı eylemlere erişim sağladığını her zaman doğrulayın.

Giriş parametreleri

Giriş parametreleri rastgele kullanıcı verilerini kabul eder ve bu, SSRF, SQL enjeksiyonları, XSS ve çok daha fazlası gibi her türlü güvenlik açığına yol açabilir. Belirli bir uç noktanın kabul edebileceği tüm olası parametreleri haritalandırmamız çok önemlidir.

Bunu yapmanın oldukça doğru bir yolu JavaScript dosyalarıdır. API işlev çağrılarında sıklıkla başvurulan gövde veya sorgu parametrelerini bulacaksınız:

Gövde parametrelerine başvuran bir işlevi içeren örnek kod parçacığı

Bunları not edin ve API uç noktasına karşı çeşitli şekillerde deneyin, istek gövdenizin içerik türünü de değiştirmeyi deneyin. Bazı parametrelerin yeniden kullanıldığını bile unutmayın.

İşte daha fazla XSS güvenlik açığını bulmanıza yardımcı olacak @Hakluke’nin ek ipucu!

DOM tabanlı güvenlik açıkları

JavaScript dosyaları ayrıca DOM tabanlı XSS ​​veya prototip kirliliği gibi daha fazla DOM tabanlı güvenlik açığı bulmanıza da yardımcı olabilir. DOM tabanlı güvenlik açıkları, DOM havuzlarını ve kaynaklarını aramanızı gerektirir. DOM kaynağı, isteğe bağlı girişinizin nereden geldiğinin kaynağıdır (örneğin location.hash veya bir sorgu parametresi). Uygulama güvenlik açığına maruz kaldığında, güvenli olmayan girişinizi doğrudan dinamik istemci tarafı kod yürütmeyi destekleyen bir işlev çağrısı olan DOM havuzuna (örneğin, eval, location.href veya innerHTML).

DOM tabanlı güvenlik açıklarını bulmak için özellikle bu anahtar kelimeleri arayabiliriz. Prototip kirliliği güvenlik açıkları da aynı yaklaşımı benimser ve nesneleri rastgele girdilerle güvenli olmayan bir şekilde birleştiren işlevler veya yöntemler aramamızı gerektirir.

Şanslıyız ki, DOM Invader ve Untrusted Types gibi web uzantısı araçları, algılama kısmını doğrudan web tarayıcımızda otomatikleştirmemize yardımcı olabilir. Bu şekilde JS dosyalarını manuel olarak incelemek için fazla zaman harcamamıza gerek kalmayacak!

JavaScript dosyaları asla ihmal edilmemelidir; bir sonraki kritik güvenlik açığınızı bulmanıza yardımcı olabilecek değerli bilgiler içerirler! Sayfa yüklendikten sonra dinamik olarak içe aktarılanlar da dahil olmak üzere, her zaman hedefinizdeki tüm gömülü JS dosyalarını incelemeye çalışın. JavaScript dosyaları ayrıca özellikle referans verilen URL’leri, API uç noktalarını ve parametrelerini arayarak saldırı yüzeyimizi genişletmemize yardımcı olabilir.

JavaScript dosyaları ve bunların hata ödülü aramadaki önemi hakkında yeni bir şey öğrendiniz… Şimdi becerilerinizi test etme zamanı! Intigriti’deki 70’ten fazla genel hata ödül programımıza göz atın ve kim bilir, belki bir sonraki ödülünüz bizimle kazanılır!

INTIGRITI’DE HACKLEMEYE BUGÜN BAŞLAYIN



Source link