AJAX Güvenliği

Eşzamansız Javascript ve XML (AJAX), zengin bir kullanıcı deneyimi sağlamak amacıyla web uygulaması geliştirmek için kullanılan en son tekniklerden biridir. Yeni bir teknoloji olduğu için henüz tamamlanmamış pek çok güvenlik sorunu var ve aşağıda AJAX'daki birkaç güvenlik sorunu var.

  • Korunacak daha fazla girdi olduğundan saldırı yüzeyi daha fazladır.

  • Ayrıca uygulamaların dahili işlevlerini de ortaya çıkarır.

  • Kimlik doğrulama bilgilerinin ve oturumların korunamaması.

  • İstemci tarafı ile sunucu tarafı arasında çok dar bir çizgi vardır, bu nedenle güvenlik hataları yapma olasılıkları vardır.

Misal

İşte AJAX Güvenliği için bir örnek -

2006 yılında, bir solucan, Yahoo Mail'in onload olay işlemesindeki bir güvenlik açığından yararlanan XSS ve AJAX kullanarak yahoo posta hizmetini etkiledi. Virüs bulaşmış bir e-posta açıldığında, solucan JavaScript'ini çalıştırarak virüs bulaşmış kullanıcının tüm Yahoo kişilerine bir kopya gönderiyordu.

Eller AÇIK

Step 1- XML ​​enjeksiyonu kullanarak izin verilen ödül setinize daha fazla ödül eklemeye çalışmalıyız. Senaryonun anlık görüntüsü aşağıdadır.

Step 2- Burp Suite'i kullanarak hem isteği hem de yanıtı yakaladığımızdan emin olun. Aşağıda gösterilenle aynı ayarlar.

Step 3- Senaryoda verilen hesap numarasını girin. Uygun olduğumuz tüm ödüllerin bir listesini alabileceğiz. 5 üzerinden 3 ödül almaya hak kazandık.

Step 4- Şimdi 'Gönder'i tıklayalım ve XML yanıtında ne aldığımızı görelim. Aşağıda gösterildiği gibi, uygun olduğumuz üç ödül XML olarak bize iletilir.

Step 5 - Şimdi bu XML'leri düzenleyelim ve diğer iki ödülü de ekleyelim.

Step 6- Artık tüm ödüller, seçmeleri için kullanıcıya gösterilecek. Eklediklerimizi seçin ve 'Gönder'i tıklayın.

Step 7 - "* Tebrikler. Bu dersi başarıyla tamamladınız" diyen aşağıdaki mesaj görünür.

Önleyici Mekanizmalar

İstemci tarafı -

  • .İnnerHtml yerine .innerText kullanın.
  • Eval kullanmayın.
  • Güvenlik için istemci mantığına güvenmeyin.
  • Serileştirme kodu yazmaktan kaçının.
  • XML'i dinamik olarak oluşturmaktan kaçının.
  • Asla müşteriye sırları iletmeyin.
  • İstemci tarafı kodunda şifreleme yapmayın.
  • İstemci tarafında güvenliği etkileyen mantığı uygulamayın.

Sunucu tarafı -

  • CSRF koruması kullanın.
  • Serileştirme kodu yazmaktan kaçının.
  • Hizmetler doğrudan kullanıcılar tarafından çağrılabilir.
  • XML'yi elle oluşturmaktan kaçının, çerçeveyi kullanın.
  • JSON'u elle derlemekten kaçının, mevcut bir çerçeveyi kullanın.