PDA

View Full Version : سوال: امکان دارد هک شوم ؟



Sp|R|T
پنج شنبه 05 آبان 1390, 21:47 عصر
سلام

من یه برنامه(کلاینت) نوشتم که به دیتابیس سایتم متصل میشه

در واقع داخل برنامه یوزر و پسورد دیتابیس سایتم داخلش ست شده

حالا این کلاینت اگه کسی داشته باشه میتونه یوزر و پسورد دیتابیسم رو پیدا کنه ؟ :متفکر::متفکر:

1- از نظر اسنیفینگ
2- باز کردن برنامه با ole debug و و و

؟؟؟

اگر امکان هک هس، راه چارش چیه ؟

nunegandom
پنج شنبه 05 آبان 1390, 23:13 عصر
سلام.اینو بخون
http://www.mediafire.com/?rdhdaxex6t5rbne
تویه این مقاله درباره SQLi و مقابله باهاش توضیح داده شده!

Sp|R|T
پنج شنبه 05 آبان 1390, 23:23 عصر
سلام.اینو بخون
http://www.mediafire.com/?rdhdaxex6t5rbne
تویه این مقاله درباره SQLi و مقابله باهاش توضیح داده شده!

عزیز من، من از Applacation استفاده میکنم و تحت وب نیست! و خیلی ساده کدم رو قرار دادم

مثلآ:

String sqlquery = "SELECT username, password FROM users Where username='" + textBoxEmail.Text + "' and password='" + passfordatabase.Password + "'";

خب حالا چطور طرف میتونه کد مخرب خودش رو توی textbox وارد کنه و اطلاعات از دیتابیس رو get کنه

Sp|R|T
جمعه 06 آبان 1390, 01:11 صبح
آقا nunegandom (http://barnamenevis.org/member.php?194035-nunegandom) شرمنده، حرفم رو پس میگیرم :خجالت::لبخند::قلب:

برنامم همین مشکل رو داشت که تونستم باگ رو پچ کنم :چشمک::قلب:

و اما شما دوستان گل که اگه میخوایین به مشکل بر نخورین:

1- یوزر نیم و پسورد و یا هر چیزی که حالا میخوایین ست کنین رو کارکاتر ' رو روش فیلتر کنین

بدین صورت:

var username = textBoxEmail.Text.Replace("'", "''");

در واقع میایم کاراکتر ' رو به جای کاراکتر " جایگزین میکنیم !

و یه راه دیگه ای هم هس که ورودی هایی که میدین رو به هش تبدیل کنیم ( معمولآ واسه پسورد بکار میره) یعنی کلمه وارد شده اول مثلآ به MD5 تبدیل بشه و سپس برای MYSQL فرستاده بشه :چشمک: (این خودم استفاده میکنم)

این کد هم واسه هش که توی یه تاپیک دیگه ای هم گذاشته بودم:

static string GetMd5Hash(MD5 md5Hash, string input)
{

// Convert the input string to a byte array and compute the hash.
byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input)) ;

// Create a new Stringbuilder to collect the bytes
// and create a string.
StringBuilder sBuilder = new StringBuilder();

// Loop through each byte of the hashed data
// and format each one as a hexadecimal string.
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}

// Return the hexadecimal string.
return sBuilder.ToString();
}

string source = textBoxPassword.Password;
using (MD5 md5Hash = MD5.Create())
{
string hash = GetMd5Hash(md5Hash, source);

passfordatabase.Password = (hash);

}

که passfordatabase.Password رو واسه insert و یا حالا select دیتابیس مون ازش استفاده میکنیم
=========================

خب حالا ما دنبال یه مشکل دیگه ای بودیم که به یه چی دیگه بر خوردیم

آقا سوالم رو تکرار میکنم

من داخبل form مم user و password دیتابیس سایتم واسه کانکت شدن بکار بردم

بدین شکل:

conn.ConnectionString = "Server=127.0.0.1;Port=3306;Database=test;User ID=root;Password=;CharSet=utf8;";

حالا مشکلم اینجا آیا کسی میتونه برنامم رو کرک یا همون با Ole Debug بازش کنه و این یوزر و پسورد هارو ببینه ؟

و یا اینکه موقعی که میخواد کانکت بشه یک نرم افزار اسنیفر بزاره و اطلاعاتی که رد و بدل میشه ( همون یوزر و پسورد واسه کانکت) رو بدســــــــــــــــــــــ ـــــت بیاره ؟

nunegandom
جمعه 06 آبان 1390, 11:38 صبح
با سلام مجدد، یه sniffer دانلود کن و خودت تستش کن، www.ashiyane.org

علیرضا حسن زاده
جمعه 06 آبان 1390, 13:04 عصر
من هم ار این روش استفاده کردم خیلی نا امنه تا جایی هم که تحقیق کردم روش خاصی نداره تا کسی نتونه یوزر پسورد رو از برنامه بیرون بکشه
بهترین را استفاده از WEBService هست که اونوقت می تونی دسترسی Remote به دیتابیس رو قطع کنی و فقط وب سرویس هات می تونن به دیتابیست به صورت Local وصل بشن
حالا می مونه بحث امنیت تو WebServiseها که راه حل های زیادی داره و می تونی روش کار کنی
اما ازتباط مستقیم با دیتابیس (حداقل برای SQLServer دیگر پایگاه داده های رو نمی دونم) کار صحیحی نیست

Sp|R|T
جمعه 06 آبان 1390, 17:40 عصر
خب تا الان که چندین سوال رو کردم و فقط خودم جواباش رو در آخر پیدا کردم و با آموزشش اینجا گذاشتم :دی :لبخند:

واسه این مشکلی که داشتم به این جا سفر کنید:

http://barnamenevis.org/showthread.php?311036-Encrypt-%DA%A9%D8%B1%D8%AF%D9%86-connectionStrings-%D8%AF%D8%B1-app.config&p=1365706#post1365706

با تشکر :دی