• 08-08-2007, 01:17:07
    #1
    Üyeliği durduruldu
    <?php
    //ARama Kayıt
    if($q != ''){
    $kelime = strip_tags(mysql_real_escape_string($_REQUEST['q']));
    $sonuc = mysql_query("Select Count(kelime) From arananlar where kelime='$kelime'");
    $sayi = mysql_result($sonuc,0);
    if($sayi ==0){
    if($_COOKIE['aradim'] != $_SERVER['REMOTE_ADDR']){
    setcookie('aradim', $_SERVER['REMOTE_ADDR'], time()+3600);
    mysql_query("Insert Into arananlar (zaman, kelime) Values ('".time()."', '$kelime')");
    }
    }
    //Arama Kayıt
    }
    ?>

    bu kodda nerede açık var arkadaşlar db FGD&^/3eGHDS farklı farklı bu şekil binlerce aramayla doluyor.

    ekte komple ara.php dosyası var. Lütfen yardım edin.
  • 08-08-2007, 01:31:01
    #2
    Flood yapılıyodur. sayfaya captcha ekle
  • 08-08-2007, 09:49:49
    #3
    elimde arama ya hacklenmesin die bir kod var ama tam olarak nerede kullanılıyor bilmiorum

    if(ereg("OR ",$sorgu) || ereg("insert",$sorgu) || ereg("delete",$sorgu) || ereg("select",$sorgu) || ereg("drop",$sorgu))
     die("Hack Denemesi");
    $sorgu ya sen kendi arama değişkeninin ekleyeceksin yani $kelime galiba kolay gelsin +rep
  • 08-08-2007, 12:41:50
    #4
    $sorgu=$_SERVER['QUERY_STRING'];
    yazıp altına da senin verdiğin kodları yazıp sayfa başına eklerse olur.
  • 08-08-2007, 12:48:16
    #5
    niye veriyi iyi filtrelemediğiniz için saçma önlemler aliyorsunuz

    if(ereg("OR ",$sorgu) || ereg("insert",$sorgu) || ereg("delete",$sorgu) || ereg("select",$sorgu) || ereg("drop",$sorgu)) 
     die("Hack Denemesi");

    bunu kullandıığnız takdirde mesela adam black or white diye arama yapamiyacak hadi diyelim yapmasın önemli deil

    peki insert in inS/**/ert diye bypass edilmesi nolacak
  • 08-08-2007, 13:25:37
    #6
    inSert olayını halleder $sorgu=strtolower($sorgu);

    yukarda problem yaratacak tek satır
    $sonuc = mysql_query("Select Count(kelime) From arananlar where kelime='$kelime'");

    kelimeden de union ı kaldırırınca oda problem olmaz.
    if(ereg("union",strtolower($kelime)))
    die("ups, tehlikeli bir kelime aradıınız");

    şeklinde yazabilir. bi ihtimal de,
    aramadan base64_decode u yasaklar,
    kelimeyi veritabanına,
    base64_encode($kelime); şeklinde girer, gösterirken de base64_decode($kelime); şeklinde gösterir. benzer şeyler de üretilebilir
  • 08-08-2007, 20:37:44
    #7
    Üyeliği durduruldu
    bu kelimeler '' içinde olduğu sürece standart kelimeden öteye gidemez zaten boşuna uğraşıyorsunuz. Aramaya gidecek kelimeyi escape ederse ve aramada oluşacak bug'lardan korunmak için % [ ] ^ + gibi karakterlerin başına \ koyarsanız sorun olmaz.
  • 08-08-2007, 22:08:05
    #8
    i n S e R / * * / t

    yazmak istemiştim forum blockloyur o karakterleri

    nuke sentinel sözde phpnuke için güvenlik eklentisimidir nedir kendinde güvenlik açığı wardı çok iyi filtreleme yapiolamrış maşallah dediğim gibi herşey kullanıcıdan alacağınız veriyi uygulyacağınız yere göre iyi filtrlemede bitiyor tabi yapabilirseniz
  • 08-08-2007, 22:22:57
    #9
    lisans zaten veriyi girerken değil alırken problem olabileceğini söyledim. seninki bi yoldur, parametreleri yasaklarsın, bizimki de ayrı bi yoldur kelimeleri yasaklarız. çözemediğimiz bişey değil ki boşa uğraşalım. hatta daha da abartıp güvenlikten daha emin olmak isterseniz base64 kullanırsınız diye örnek verdim, boşa uğraşmak nedir yani

    tontong zaten her zman şunu söylemişimdir, nukesentinel hiç bir filtreleme yapmıyo, nukenin die("access denied") yazması yerine, sadece o yazıyı göresi gerekeni banlıyo