[Owasp-turkey] BSQL Hacker Beta Versiyon - v0.9

Izzet Kerem Kusmezer keremskusmezer at gmail.com
Tue Aug 28 19:36:11 EDT 2007


Merhabalar,

Oncelikle ellerine saglik guzel bir arayüz ve uygulama geliştirmişsin.
2 - 3 tane ufak önerim olacak, daha koda tam olarak bakamadım ama kısaca
gozume çarpanlar:

a) BrwMain'de ScriptErrorSuppressed = True yapabilirsen, indirilmiş olan
html içeriği gösterilirken oluşan script error dialog boxlarından
kurtulabiliriz :)

b) Bir Static Constructorla HttpRequest Classinin icinde su handler
atamasinin bir kere olmasini saglayabilirsin.
Shared Sub New()
'PERFORMANCE: May we can put it to somewhere else for only one execution
ServicePointManager.ServerCertificateValidationCallback = New
Net.Security.RemoteCertificateValidationCallback(AddressOf
Helpers.ValidateCertificate)
End Sub

c) Ayrıca String kontrolleri için String.IsNullOrEmpty ' i kesinlikle
tavsiye ederim , boyle If tmpStr = String.Empty'de gözden kaçabilecek null
olma durumlarınıda kapsıyor olacaksın. Veya direkt olarak söyle bir
IsStringReallyEmpty diye bir method :)

Public Function IsStringReallyEmpty(SourceText as String) as Boolean
     Return CBool(IIf(String.IsNullOrEmpty(SourceText),True,
String.IsNullOrEmpty(SourceText.Trim())))
End Function

d) Ayrica kullandığın regular expressionları ya static olarak , ya da
property set edildiginde
Dim tempEx As New System.Text.RegularExpressions.Regex("kerem",
RegularExpressions.RegexOptions.Compiled)
gibi tutarsan her seferinde RegEx.IsMatch'te pattern geçişi yapıldığındaki
parse maliyetindende kurtulmuş olursun.

Bu arada belki Database Interface implementasyonları plugin based bir yapıya
geçirebilirsin diye düşünüyorum, böylece mesela aynı database için farklı
methodlarla kontroller yapan bir motor oluşturulabilir. Ben böyle bir plugin
yapısını implemente etmek için şimdiden talibim, elimde kendi projelerim
için yazmış olduğum bir plugin engine var ve rahatlıkla kullanabiliriz.

e) Gene çok dikkat ettiğini koddada görmeme rağmen string concatları
StringBuilder veya String.Format ile yapabilirsen kod okunurluğu artabilir
kanaatindeyim.

Kesinlikle cross thread gui access ve invoke kullanım tarzına gerçekten
bayıldım, ellerine sağlık.

Ayrica en azindan Console bazlı tarafın mono'ya port edilmesinede talibim,
seninle bununla ilgili olarakta bir time plan çıkartabiliriz.

Gerçekten çok faydalı bir tool yazmışın, elimden gelen yardımda bulunmak
isterim.

Saygılarımla
Kerem Küsmezer

27.08.2007 tarihinde Ferruh Mavituna <ferruh at mavituna.com> yazmış:
>
> Selamlar,
>
> Cok uzun zaman once basladigim ancak yakin donemde tekrar yazmaya
> basladigim bir Blind SQL Injection programi var. Ilk beta verisyonunu
> yayinladim. Henuz beta bile denemez belki ama en azindan calisiyor.
> Dokumantasyon cok zayif henuz, uzerinde calisiyorum.
>
> Lisans GPL, stable versiyon insallah 1-2 ay icerisinde yayinlanacak.
>
> Program ozetle Blind SQL Injection lari otomatik olarak exploit etmek icin
> gelistirildi. Hemen hemen her durumda her sekilde SQL Injection' i her
> database den alma amaci ile yazdim. Ancak bu esnekligin bedeli programi
> konfigure etmek biraz zor. Ben cok uzun suredir kendi testlerimde
> kullaniyorum. Diger SQL Injection araclarinda olmayan bir cok gelismis
> ozellige sahip mesela Nonce lari kullanabilme ( degisken viewstateler gibi
> rasgele deger kullanan formlari exploit ederken).
>
> Konsol ve GUI olarak iki farkli uygulama var GUI de her ozellik yokken
> konsolda da GUI deki her ozellik yok. Sonucta ikiside hemen hemen tum
> ozelliklere sahip olacak. GUI "otomatik injection" modunda calisabiliyor. Bu
> modda injection a basladiktan sonra eger DB yapisi destekleniyorsa ( su an
> sadece SQL Server modulu calisiyor) tum db semasi ve kayitlar otomatik
> olarak cekiliyor.
>
> Genis ve bir o kadar karisik / guncellenmemis ve zaman zaman yanlis olan
> bir dokumantasyon var. Konsol versiyonu kullanacaksaniz ozellikle kesinlikle
> bunu kontrol edin. Ek olarak parametrelerden de uygulamanin neleri
> destekledigini gorebilirsiniz.
> http://ferruh.mavituna.com/makale/bsql-hacker-console-manual/
>
> Sadece Uygulama :
> http://ferruh.mavituna.com/opensource/BSQLHacker_v09_Binary.zip
>
> .NET Framework 3.5 gerekebilir ama .NET Framework 2.0 ile de calismasi
> gerekiyor
>
>
> Kaynak Kodu :
> http://ferruh.mavituna.com/opensource/BSQLHacker_v09_Source.zip
>
>
> Kullananlar olursa her turlu yorum, oneri, hata bildirilerine bekliyorum.
> Dedigim gibi tum yazilimi tamamen test amacli kabul edebilirsin, ilginc
> hatalarla karsilasilabilirsiniz ya da bazi GUI formlarinin henuz
> calismadigini gorebilirsiniz.
>
>
> Kullanim Ornegi (Klasik bir SQL Injection icin) :
> http://localhost/sqlserver/?p=1 AND ISNULL(ASCII(SUBSTRING(( {INJECTION}),
> {POSITION},1)),0){OPERATION}{CHAR}--
>
> Kalin olan yazilar dinamik degiskenler, sadece {INJECTION}  "Automated
> Attack" kullanilcaksa kullaniliyor. Aksi takdirde buraya kendiniz herhangi
> bir SQL query koyabilirsiniz. Bu Query sadece bir kayit dondurmek zorunda.
> Bu ornek SQL Server icin ama ne yapmaniz normalde biliyorsaniz basitce
> ORACLE, PostgreSQL, MySQL vs. icinde benzer kodlar yazabilirsiniz. Ben
> MySQL, ORACLE ve SQL Server da cesitli testler yaptim. Ek olarak MySQL
> Benchmark ve SQL Server WAITFOR DELAY tarzi full blind' lari destekliyor.
>
> Bu dinamik degiskenler ana adreste Request & Injection  tabi altindaki
> heryerde kullanilabilir. Dolayisiyla GET, POST, HTTP HEADERS ve Cookie lerde
> injection yapabilirsiniz.
>
>
>
>
> Tesekkurler,
>
>
> --
> Ferruh Mavituna
> http://ferruh.mavituna.com
> _______________________________________________
> Owasp-turkey mailing list
> Owasp-turkey at lists.owasp.org
> https://lists.owasp.org/mailman/listinfo/owasp-turkey
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.owasp.org/pipermail/owasp-turkey/attachments/20070829/c7377842/attachment.html 


More information about the Owasp-turkey mailing list