Tersine Yaşam

Mühendis

Web Sitesi : https://xss-quiz.int21h.jp

Bu sorularda amaç, farklı xss payload değerleri üretmek değildir. Asıl amaç, farklı bakış açıları kazandırmaktır.

1 ) ilk soruda bizden istenen alert(document.domain) ile ekrana domain ismini yazdırmamız.  Bunun için yapmamız gereken ilk olarak sistemin yazdığımız girdilere karşı nasıl bir tepki verdiğini ölçmektir. Bunu anlayabilmek adına ‘”<>alert gibi bir girdi yolladım. Yolladığım girdinin ekrana bastırıldığını sizde aşağıdaki görselden görebilirsiniz.

ekran-resmi-2016-09-24-00-26-13

Girdinin durumunu daha iyi anlayabilmek adına kaynak kodu incelediğimizde herhangi bir kontrolün olmadığını görebilirsiniz.

 

ekran-resmi-2016-09-24-00-26-44

Sonuç olarak bu soruyu çözmek amacı ile en basit ve bilinen xss payloadını kullandım.

  • Payload : <Script>alert(document.domain);</Script>

2 ) Bu soruda durum biraz daha farklı, her zaman yaptığımız gibi sistemin davranışını analiz etmek adına girdi noktasına birşeyler yazıyoruz. Ben bunun için basit bir kelime yazdım  (deneme). Bunun sonucunda aşağıdaki görselden de gördüğünüz üzere ekrana herhangi birşey yazdırmadı.

ekran-resmi-2016-09-24-00-38-56

Bir önceki soruda yaptığımız gibi durumu daha iyi anlayabilmek adına kaynak kodu inceliyoruz. Bu inceleme sonucunda yazdığımız değerin, aslında value isimli değerde durduğunu görüyoruz.

ekran-resmi-2016-09-24-00-36-42

Burda yapmamız gereken şey bu tag içinden kurtulmaktır. Bunun için, aşağıdaki payloadı yazdım .

  • Payload : “><svg onload=alert(document.domain);>

3 ) Bu soruda da aynı yöntemler ile devam ettim. Ancak bu sefer yazdığımı değerlerin (‘”<>) ekrana basıldığını ancak kaynak kod kısmında encode edildiğini gördüm. Büyük ihtimal htmlspecialchar fonksiyonu kullanıldı.

ekran-resmi-2016-09-24-00-48-32

ekran-resmi-2016-09-24-00-45-29

Bu nedenle bende soruda varsayılan olarak bulunan başka bir değer üzerinden bu işlemi gerçekleştirmeye karar verdim. Zaten benden istenen de buydu. Dikkat ettiyseniz, girdi sayfasında ülke seçebildiğimiz bir alan var. Proxy ile araya girip değeri herhangi bir xss payload ile değiştirmem yeterli oluyor. Çünkü ülke seçenekleri için herhangi bir encode işlemi uygulanmamış.

  • Payload : <Script>alert(document.domain);</Script>

4 ) 3.soru ile aynı gibi görünsede aslında farklı bir yol izlemem gerektiğini gördüm. Çünkü aynı şekilde bir proxy ile araya girip xss payload değerimi gönderdiğimde encode edildiğini gördüm.

Ancak bunu denerken ek bir verinin daha server tarafına gönderildiğini gördüm.

ekran-resmi-2016-09-24-01-03-07

Kaynak kodu incelediğimde hidden değer olduğunu ve value içinde bulunduğunu gördüm.

ekran-resmi-2016-09-24-01-06-25

Amacım daha önceki sorularda olduğu gibi bu tag içinden çıkmaktı. Bu nedenle aynı xss payload ile bu soruyu da çözüyoruz.

  • Payload : “><svg onload=alert(document.domain);>

5 ) Bu soru 2. soru ile aynı ancak, bu sefer yazacağımız xss payload için bir karakter kısıtlaması var. Bizden istenen bu kısıtlamayı ortadan kaldırmak. Bizden bunu sağ tuş – ögeyi denetle diyerek gerçekleştiriyoruz.

ekran-resmi-2016-09-24-01-11-13

  • Değiştirilen değer : maxlength
  • Payload : “><svg onload=alert(document.domain);>

6 ) Girdilerin işleniş biçimini anlamak amacı ile ilk soruda yaptığım gibi ‘”<>alert değerini girdim. bunun sonucunda küçüktür ve büyüktür işaretlerinin encode edildiğini gördüm. Aynı zamanda bu değer value değişkeninin içinde bulunmaktadır.

ekran-resmi-2016-09-24-01-16-35

  • Payload : “>besim onmouseover=alert(document.domain);//

7 ) Kaynak kodu incelediğimizde değerin value içinde tutulduğunu ve herhangi bir tırnak ifadesinde tutulmadığını görüyoruz. Bu nedenle bu soruda  değeri kapayıp içinden çıkmak için herhangi bir tırnak ifadesi kullanmayacağız. 

  • Payload : besim onmouseover=alert(document.domain);

8 ) Bu soruda da girdiğimiz sakıncalı değerlerin encode edildiğini görüyoruz. Aynı zamanda girdi alanında girdiğimiz değeri href attr değerine vererek link oluşturulmakta.

 ekran-resmi-2016-09-24-01-59-58

Ben bunun için aşağıdaki payload değerini kullandım. Bunun nedeni de clickable bir değer yaratılması, ancak ben burda sayfadan ayrılmadan kullanıcıya bir popup gösterebildim.

  • Payload : javascript:alert(document.domain);

9 ) Bu soruda hint kısmından bir ipucu aldım. İpucunda utf-7 xss yazıyordu. Bunun ile ilgili internette payload değerleri mevcut, ancak her yerde çalışmıyorlar.

Bu nedenle bende Firefox Geliştirici özelliğinden faydalanarak oradaki Console üzerinden bunu tetikleyip bu adımı geçmeyi başardım.

NOT : Diğer kısımları çözdükçe bu yazıyı güncelleyeceğim. 

Cisco IOS cihazlarda bazı çalışma modları vardır. Bu modların her birinde çalıştırabileceğimiz komutlar farklıdır. Farklı katmanlar gibi düşünebilirsiniz.

Bu nedenle bu katmanlar için bazı parolalar belirleyerek geçişler için bir denetleme yapmanız gerekmektedir.

Aşağıdaki görselde de bunu göstermeye çalıştım. Görseli inceleyerek bilgi alabilirsiniz.

Ekran Resmi 2016-08-17 23.35.06

Bir arayüz için ip vermek istiyorsanız aşağıdaki adımları izleyebilirsiniz : 

  • en
  • conf t
  • interface fastEthernet 0/0 veya interface gigabitEthernet 0/1 olabilir
    • 0/0 ip vermek istediğiniz portun ismidir.
    • Bu bazı durumlarda değişebilir. Bu nedenle hangi porta ip vermek istiyorsanız onu yazmalısınız.
  • ip address [ip_address] [netmask_address]
  • no shutdown
    • Cihazın portları varsayılan olarak down (pasif) durumdadır.Bu komut ile down durumda olan interface up (aktif) duruma getirilir.

Cisco Paket tracer ile işlemler yaparken cihazların port durumlarını  daha rahat görebilmeniz açısından kullanabileceğiniz bir özellik bulunmaktadır.

Bu özelliği aktifleştirmek için menüde sırası ile: 

  • Options -> Prefences kısmından aşağıdaki görselde belirtilen kısmı aktifleştirmeniz gerekmektedir.

Screenshot at Ağu 16 18-43-05

 

  • Özelliği aktifleştirmeden önce :

Ekran Resmi 2016-08-16 18.39.59

  • Aktifleştirdikten sonra :

Ekran Resmi 2016-08-16 18.40.17