• 20-09-2013, 14:18:35
    #1
    Merhaba

    Şimdi,bir algoritma yapmam gerekiyor şöyle düşünün sizin bir kullanıcı adınız var bir buton var ve butona basınca "tolgay007 butona bastı" gibisinden yazıyor.Şimdi burda soket kullanacağım için direk session erişimim yok.

    Sokete gönderirken iki veri yollayacağım birincisi kullanıcı adı,ikincisi token dediğim benim üreteceğim bir kombinasyon.Burda php ile session kontrolü yapmayı unutun öyle bir kontrol yok.Algoritmam şöyle olacak:

    1)Sokete kullanıcı adı ve kendi özel kombinasyonumla üretmiş olduğum kullanıcı adının şifrelenmiş hali gönderilir(bu token değeri oluyor).
    2)Soket kullanıcı adını ve token değerini alır,tokenı nasıl şifrelediysem aynı şekilde çözer ve gelen sonuç kullanıcı adına eşitse isteği veritabanına işler.Eğer değilse çalışmaz.

    Bu korumayı aşabilir miydiniz ? Yani kendi hesabınıza girip ufak bir değişiklik ile başkası gibi butona basmış gösterebilir miydiniz ?

    Not:Unutmayın php ile session kontrolü yapamıyorum sokette,tamamen dediğim algoritmaya göre çalışacak.

    Not 2:Token oluşturma algoritması karmaşık olacak,yani onun nasıl şifreleme yaptığını bulamayacaksınız.
  • 20-09-2013, 14:35:08
    #2
    butona basınca tolgay007 butona bastı demesi için, butonun, basanın tolgay007 olduğunu bilmesi gerekir. sen algoritmayı filan geç buna çözüm bul bence. hacker hendeğin derinliğine bakmaz karşıya uzaklığına bakar bi köprü atar geçer. bir sayfa var sayfada bir buton var. ben ona basınca sokete veri gönderecek sinan bu butona bastı diye bir de token. ben oturup böyle bir sistemi kırmaya uğraşacak olsam mesela, algoritma nasılmış da nasıl reverse ederim diye hiç kasmam çünkü en basit base64 bile içine statik metin koyunca kafa ağrıtır onunla uğraşacağıma sistem nasıl çalışıyor da benim adımı oraya gönderiyor diye bakarım zaten senin bahsettiğin sisteme göre tokenın bir manası yok kullanıcı adı tek değişkenli kripto olacaksa. oturum da işin içinde olmayacaksa bu sayfa butona basanın ben mi sen mi olduğunu nasıl ayırt edecek?
  • 20-09-2013, 14:53:54
    #3
    zinan adlı üyeden alıntı: mesajı görüntüle
    butona basınca tolgay007 butona bastı demesi için, butonun, basanın tolgay007 olduğunu bilmesi gerekir. sen algoritmayı filan geç buna çözüm bul bence. hacker hendeğin derinliğine bakmaz karşıya uzaklığına bakar bi köprü atar geçer. bir sayfa var sayfada bir buton var. ben ona basınca sokete veri gönderecek sinan bu butona bastı diye bir de token. ben oturup böyle bir sistemi kırmaya uğraşacak olsam mesela, algoritma nasılmış da nasıl reverse ederim diye hiç kasmam çünkü en basit base64 bile içine statik metin koyunca kafa ağrıtır onunla uğraşacağıma sistem nasıl çalışıyor da benim adımı oraya gönderiyor diye bakarım zaten senin bahsettiğin sisteme göre tokenın bir manası yok kullanıcı adı tek değişkenli kripto olacaksa. oturum da işin içinde olmayacaksa bu sayfa butona basanın ben mi sen mi olduğunu nasıl ayırt edecek?
    Hayır şu şekilde

    Siz index.php desiniz diyelim,burada kullanıcı adını sessiondan alıyorum zaten php ile ben.Onu biliyorum yani,daha sonra bunu şifreleyip sokete gönderiyorum sokette şifreyi ters yönde çalıştırıp çözüyor eğer kırılan şifre ile kullanıcı adı eşleşiyorsa veritabanı kaydı yapıyor.Yani demek istediğim sadece soket bilmiyor session olayını.
  • 20-09-2013, 15:07:43
    #4
    servis zaten oturuma filan bakmaz gelen veriye bakar. ben de onu demek istemiştim güvenlik için şifrelemenin ne kadar zor olduğu değil senin gittiğin yoldan başka yollar olup olmadığı önemlidir. yoksa yazdığın kodu ele geçirmedikten sonra oturup token algoritmasıyla pek uğraşılmaz herhalde. yani ben olsam öyle yapardım token reverse ile uğraşacağıma sağda solda kapı pencere var mı girilecek diye bakardım..
  • 20-09-2013, 15:13:11
    #5
    zinan adlı üyeden alıntı: mesajı görüntüle
    servis zaten oturuma filan bakmaz gelen veriye bakar. ben de onu demek istemiştim güvenlik için şifrelemenin ne kadar zor olduğu değil senin gittiğin yoldan başka yollar olup olmadığı önemlidir. yoksa yazdığın kodu ele geçirmedikten sonra oturup token algoritmasıyla pek uğraşılmaz herhalde. yani ben olsam öyle yapardım token reverse ile uğraşacağıma sağda solda kapı pencere var mı girilecek diye bakardım..
    Yani şu an başka yol göremiyorum ben,o zaman dediğim algoritma sorunsuz çalışır diyebilir miyiz ?
  • 20-09-2013, 15:26:02
    #6
    yani bu benim bakış açım tabi ki. belki benim görüşüm yanlıştır sonuçta ucu açık bir iş. ama ben kendi programlarımda da kripto için kasmam pek. windows uygulaması yazarsın yüzlerce satır şifreleme sınıfı yazarsın sonra program pazara çıkınca bi bakarsın cart diye kırılmış web servis yazarsın sql injection yaparlar üye paneli yaparsın çerezi aşırır girerler bu liste uzar gider yani genellikle reverse engineer aa nasıl bir algoritma acaba diye bakmaz gelen veriye giden veriye nasıl müdahale ederim diye bakar anlatabildim mi demek istediğimi emin olamadım ama

    umumi olmasın diyorsan özel mesajla gönderebilirsin ne yapmak istediğini, oturup kod yazmasam da fikir verebilirim diye düşünüyorum beyin fırtınası iyidir belki söylediklerim aklına yatmasa da sana başka bir fikir verir farklı bakış açısı iyidir
  • 20-09-2013, 16:12:56
    #7
    zinan adlı üyeden alıntı: mesajı görüntüle
    yani bu benim bakış açım tabi ki. belki benim görüşüm yanlıştır sonuçta ucu açık bir iş. ama ben kendi programlarımda da kripto için kasmam pek. windows uygulaması yazarsın yüzlerce satır şifreleme sınıfı yazarsın sonra program pazara çıkınca bi bakarsın cart diye kırılmış web servis yazarsın sql injection yaparlar üye paneli yaparsın çerezi aşırır girerler bu liste uzar gider yani genellikle reverse engineer aa nasıl bir algoritma acaba diye bakmaz gelen veriye giden veriye nasıl müdahale ederim diye bakar anlatabildim mi demek istediğimi emin olamadım ama

    umumi olmasın diyorsan özel mesajla gönderebilirsin ne yapmak istediğini, oturup kod yazmasam da fikir verebilirim diye düşünüyorum beyin fırtınası iyidir belki söylediklerim aklına yatmasa da sana başka bir fikir verir farklı bakış açısı iyidir
    Anladım ben demek istediğini,diğer yerlerde problem olmadığını varsayarsak diyorum ben zaten,sadece bu anlattığım duruma bakarsak,benim aklıma bir şey gelmiyor.Ben kendi hesabıma girdim aşağıda javascriptte şöyle iki değişken olacak

    var username="tolgay007";
    var hash="asddsdgdfgd545648fdg";

    Gibi bir şey olacak,şimdi ben curl ile aynı şekilde taklit ettim diyelim,username değişkenini kafama göre başka bir isimle değiştirdim diyelim ama hash değerini hesaplayamayacağım için sistem zaten kabul etmeyecek hash ile eşleşmeyince.

    Var mı aklına bir yöntem gelen bunu aşabilecek ?
  • 20-09-2013, 16:19:04
    #8
    tolgay007 adlı üyeden alıntı: mesajı görüntüle
    Anladım ben demek istediğini,diğer yerlerde problem olmadığını varsayarsak diyorum ben zaten,sadece bu anlattığım duruma bakarsak,benim aklıma bir şey gelmiyor.Ben kendi hesabıma girdim aşağıda javascriptte şöyle iki değişken olacak

    var username="tolgay007";
    var hash="asddsdgdfgd545648fdg";

    Gibi bir şey olacak,şimdi ben curl ile aynı şekilde taklit ettim diyelim,username değişkenini kafama göre başka bir isimle değiştirdim diyelim ama hash değerini hesaplayamayacağım için sistem zaten kabul etmeyecek hash ile eşleşmeyince.

    Var mı aklına bir yöntem gelen bunu aşabilecek ?

    eğer ki şifreleme işlemi basit birşey olmazsa şifrelenmiş değer kırılmazsa problem olmaz hocam senin dediğin türde.

    yani adam kendi kullanıcı adı ve tokenini alıp tokeni kırarsa ancak o zaman diğer insanlar ile sokete veri gönderebilir başka kulllanıcı ismiyle.
  • 20-09-2013, 16:23:17
    #9
    şimdi ben kendi yol haritamı söylüyorum; böyle bir haince plana kalkıştım, girdim baktım sayfana, ahan dedim bu sayfada neler dönüyor bi kurcalayım;

    ilk yapacağım şey haliyle CTRL+V ile kaynak koda bakmak. Orda javascriptle kabak gibi username ve hash aldığını görürsem oo derim acaba bu nereye gidiyor nasıl gidiyor ona bakarım. ola ki servis adresini ve post parametrelerini de buldum, bu sefer oraya brute yaparım. servis yanıt veriyor mu onu dinlerim. hala sonuç yoksa sayfaya geri döner kullanıcı adını ve hash değerini nerden alıyorsun ona bakarım. eğer ordan da birşey çıkartamazsam en son 2 yöntem kalır; 1. farklı kullanıcı adlarıyla hash hesaplatıp algoritma reverse ile uğraşmak, 2. servise erişimi olan bir kullanıcı aramak. her ikisi de vakit alacak işler olduğundan, uğraşmaya değecek kadar değerli birşey yoksa allaha havale eder giderim.

    umarım anlatabildim, komplo teorilerine gerek yok aslında. çok kıtır olmayan bir şifreleme yaparsın, sonra bu senin yaptığın birşey değilmiş gibi kötü niyetli kullanıcı gibi girip açık ararsın sonra birkaç kişiye test ettirirsin o kadar. AES kullanırsın mesela şifreleme için. anahtar sözcüğü bulamadıktan sonra kırılmaz. gayet de kolay uygulanır. o kısmı geçtik öyleyse. javascript ile değişken tutma ve servise veri gönderimini gizli yapma konusuna da çözüm bulursan benim haince saldırı planlarımı bertaraf etmiş olursun