• 29-06-2010, 13:02:32
    #1
    Üyeliği durduruldu
    sql injecton açığı ile sitemi yönlendirme kodu ile yönlendiriyorlar. forumuda aradım ama yapamadım asp hakkında fazla bilgimde yok . bu konuda yardım bekliyorum.
  • 29-06-2010, 13:13:59
    #2
    Bunu yapmanız için sql injecton açığı kapanmayı öğrenmelisiz.Bu bir kodun veri çek komutundan dolayı ve veri çekme yeri boş olduğundan sitenizin table ve user değerlerini görebiliyorlar.Bunun için admin panelinizi silin yada admin panelinizin adını değişip kaynak kodda göstermeyecek şekilde saklı tutun
  • 29-06-2010, 13:16:16
    #3
    Üyeliği durduruldu
    tşk ederim mantıklı bir olay admini sadece kullanacağım zaman açayım geçici bir çözüm olrak denemek faydalı olabilir.
  • 29-06-2010, 18:55:19
    #4
    <%
    id = Request.QueryString("id" )
    if Not IsNumeric(Request.QueryString("id" ) ) then
    response.redirect("default.asp")
    end if
    %>

    bu şekil korunabilirsin..
  • 30-06-2010, 00:19:17
    #5
    Alıntı
    <%
    id = Request.QueryString("id" )
    if Not IsNumeric(Request.QueryString("id" ) ) then
    response.redirect("default.asp")
    end if
    %>
    mantıksız.Nedeni nedir? kişi default.asp ye yönledirmesi birşey ifade etmezki.zaten id 1 olarak girdiğinde direk md5 neyse

    evet sana dediğim yardımcı olacaktır.
  • 30-06-2010, 00:21:53
    #6
    🌐 𝘀𝗼𝗰𝗶𝗳𝗹𝘆.𝗰𝗼𝗺
    burakscan adlı üyeden alıntı: mesajı görüntüle
    mantıksız.Nedeni nedir? kişi default.asp ye yönledirmesi birşey ifade etmezki.zaten id 1 olarak girdiğinde direk md5 neyse

    evet sana dediğim yardımcı olacaktır.
    Pardon ama neyi mantıksız. En basit yönüyle böyle korunulabilir. Injection yaparken idde union select komutu kullanılıyor. E numeric olmadığına göre union select yazısı doğal olarak anasayfaya yönlendiricek.

    MD5'le ne alakası var pardon ama? Bilmeden yorum yaptığınız çok açık ortada.

    İyi geceler, iyi çalışmalar.
  • 30-06-2010, 00:24:58
    #7
    tolgasen adlı üyeden alıntı: mesajı görüntüle
    Pardon ama neyi mantıksız. En basit yönüyle böyle korunulabilir. Injection yaparken idde union select komutu kullanılıyor. E numeric olmadığına göre union select yazısı doğal olarak anasayfaya yönlendiricek.

    MD5'le ne alakası var pardon ama? Bilmeden yorum yaptığınız çok açık ortada.

    İyi geceler, iyi çalışmalar.
    Peki dediğiniz şey asp de de geçerlimidir?
    peki tablolara ulaşırken user 1 admin olarak giriş yapılıyor ve mail yada user her ne ise md5 halinde gelip admin sayfasını bulup sadece md5 i girip geriye giriş yapmak kalmıyor mu??

    Sizce bu yöntem mi daha kullanılır ve güvenilir yoksa admin panelini kaldırmak yada konuda belirttiğim gibi saklamak mı.Evet bu konuda belkide acemiyim.Siz söyleyin bizde ona göre oğrenelim.Pm de atabilirsiniz.
  • 30-06-2010, 00:30:14
    #8
    🌐 𝘀𝗼𝗰𝗶𝗳𝗹𝘆.𝗰𝗼𝗺
    burakscan adlı üyeden alıntı: mesajı görüntüle
    Peki dediğiniz şey asp de de geçerlimidir?
    peki tablolara ulaşırken user 1 admin olarak giriş yapılıyor ve mail yada user her ne ise md5 halinde gelip admin sayfasını bulup sadece md5 i girip geriye giriş yapmak kalmıyor mu??

    Sizce bu yöntem mi daha kullanılır ve güvenilir yoksa admin panelini kaldırmak yada konuda belirttiğim gibi saklamak mı.Evet bu konuda belkide acemiyim.Siz söyleyin bizde ona göre oğrenelim.Pm de atabilirsiniz.
    ASP veya bir başka dil farketmez. Mantık aynı. Normalde ID gelmesi gereken yere select komutu uygularsın ve injection yapmış olursunuz. ID normalde integerdir. Yani sayısal değer alır.

    Link: sayfa.asp?id=1 şeklindedir ve bu HayroLa arkadaşın verdiği kodla normal olarak çalışmasını devam ettirecektir. Çünkü 1 Numerictir. Injection yaparken link şu şekilde değişiecektir;

    sayfa.asp?id=-1 union+select+0+from+admin gibi...

    Kalın çizdiğim yerler numeric'e girmiyor. Arkadaşın verdiği kodda ID numeric değilse yönlensin diyor ve normal bir koruma yapıyor. En basitiyle bu şekilde korunulunabilir. Ama yok ben illa fonksiyon yazıcam öyle korunucam derseniz;

    <%
    Function inject(Str)
    Str = Replace(Str, "*", "[YASAK]",1,-1,1)
    Str = Replace(Str, "=", "[YASAK]",1,-1,1)
    Str = Replace(Str, "<", "[YASAK]",1,-1,1)
    Str = Replace(Str, ">", "[YASAK]",1,-1,1)
    Str = Replace(Str, ";", "[YASAK]",1,-1,1)
    Str = Replace(Str, "(", "[YASAK]",1,-1,1)
    Str = Replace(Str, ")", "[YASAK]",1,-1,1)
    Str = Replace(Str, "+", "[YASAK]",1,-1,1)
    Str = Replace(Str, "#", "[YASAK]",1,-1,1)
    Str = Replace(Str, "'", "[YASAK]", 1, -1, 1)
    Str = Replace(Str, "&", "[YASAK]", 1, -1, 1)
    Str = Replace(Str, "%", "[YASAK]", 1, -1, 1)
    Str = Replace(Str, "?", "[YASAK]", 1, -1, 1)
    Str = Replace(Str, "´", "[YASAK]", 1, -1, 1)
    Str = Replace(Str, ",", "[YASAK]",1,-1,1)
    Str = Replace(Str, "UNION", "[YASAK]",1,-1,1)
    Str = Replace(Str, "SELECT", "[YASAK]",1,-1,1)
    Str = Replace(Str, "WHERE", "[YASAK]",1,-1,1)
    Str = Replace(Str, "LIKE", "[YASAK]",1,-1,1)
    Str = Replace(Str, "FROM", "[YASAK]",1,-1,1)
    Str = Replace(Str, "UPDATE", "[YASAK]",1,-1,1)
    Str = Replace(Str, "INSERT", "[YASAK]",1,-1,1)
    Str = Replace(Str, "ORDER", "[YASAK]",1,-1,1)
    Str = Replace(Str, "GROUP", "[YASAK]",1,-1,1)
    Str = Replace(Str, "ALTER", "[YASAK]",1,-1,1)
    Str = Replace(Str, "ADD", "[YASAK]",1,-1,1)
    Str = Replace(Str, "MODIFY", "[YASAK]",1,-1,1)
    Str = Replace(Str, "RENAME", "[YASAK]",1,-1,1)
    Str = Replace(Str, Chr(39), "[YASAK]", 1, -1, 1)
    If InStr(1,Str,"[YASAK]",1) then
    Response.Redirect "/Default.asp"
    end if
    inject = Str
    End Function
    %>
    şeklinde fonksiyon oluşturur,

    inject(Request.QueryString("id")) olarak veriyi çektiririz. Buda fonksiyonla koruma sağlar.
  • 30-06-2010, 00:53:18
    #9
    burakscan adlı üyeden alıntı: mesajı görüntüle
    mantıksız.Nedeni nedir? kişi default.asp ye yönledirmesi birşey ifade etmezki.zaten id 1 olarak girdiğinde direk md5 neyse

    evet sana dediğim yardımcı olacaktır.
    evet yazdığım mesaj Mantıksız Senin verdiğin cevap çok(very) mantıklı