X
تبلیغات
رایتل
Mobin@Freedom
این بلاگ در زمینه ی شبکه،امنیت شبکه و برنامه نویسی فعالیت دارد و ضمن ارائه ی اطلاعات پاسخگوی سئوالات شما نیز خواهد بود
آرشیو
موضوع بندی
سه‌شنبه 5 خرداد‌ماه سال 1383
ISP Util بــــــاگ داره ؟

سلام
  همون طور که قول دادم قرار شد یه مطلب دربارهء‌ ISP Util بنویسم.این مطلب یه چیز تو مایه های کشف و گزارش یه باگ هست و دربارهء ISP Util هایی صدق میکنه که بانک اطلاعاتیشون SQL باشه.از اون جایی که من هنوز در زمینه امنیت شبکه اطلاعاتی در حد یه مبتدی هستم شما این مطلب رو زیاد جدی نگیرید! آخه من کسی نیستم که بخوام کار یه گروه برنامه نویسی رو زیر سئوال ببرم.خوب دیگه زیاد حرف زدم.بریم سر اصل قضیه.
  چند روز پیش کــــه داشتم با ISP Util اکانتم رو چک میکردم به یه Error‌ برخوردم:


 .ERROR: Could not found your Username (cp140510h) in database

 همون طور که متوجه شدین این یه پیغام خطای ساده مبنی بر وجود نـــداشتن چنین Username ای توی Data Base هست.همین جا یه هو فکرم رفت طرف SQL Piggy Back که با برگردوندن پیغام های خطاهای بسیار خطرناک میتونه همه چی رو لو بده(مثلاْ مشخص شدن اسم فیلدها).ولی خوب این خطا یه خطای کاملاْ منطقی هست و هیچ مشکلی هم درش نیست.واسه همین با خودم گفتم دستورات SQL رو تست میکنم.شاید اونطوری بتونم به نتیجه ای برسم.با وارد کردن دستورات SQL توی قسمت یوزر و فشار دادن دکمه WEB Report به Error جالبی برخوردم.
» دستوری که وارد کردم این بود:

SELECT * From UID

» که پیغام خطای زیر رو بهم داد :


    .ERROR: Could not found your Username (***$*$*$*$*$*&(&)&(&)&() in database

  با خودم گفتم شاید چون طول رشته زیاد بوده قاطی کرده.واسه همین یه رشــته الکی وارد کردم تا ببینم واقعاْ این رو به عنوان دستور SQL شناخته و Error رو برگردونده یا نه.
» رشته ای که وارد کردم:

 my name is mobin

» و جوابی که گرفتم:

.ERROR: Could not found your Username (my name is mobin) in database

 خوب همون طور که می بینید این رو به عنوان یه ورودی معمولی که همون Username‌ باشه شناخت.ولی حالا با اضافه کردن یه سیمی کالن(;) به آخــــر رشته ورودی که در SQL نشان دهندهء پایان یک دستور هست و برای فرستادن بیش از یک دستور به صورت هزمان به Data Base‌ استفاده میشه نتیجه متفاوتی گرفتم.
» رشته ورودی با سیمی کالن:

;my name is mobin

» خروجی :

  .ERROR: Could not found your Username (****$*&(&)&(+++()-==@^0) in database

جالبه,نه؟ حالا جالب تر از همه این جاست که اگه یه دستور (دستور،نه رشته معمولی بدون سیمی کالن) غیر معتبر مثل دستور بالا همیشه همین Error رو میده.حالا که از فرستادن دستور SQL رو Data Base‌ از روی پیغام خطا خیالم راحت شدم دستورات SQL  دیگه ای رو تست کردم.
» مثل این یکی:

'SELECT * From Users Where UID = 'mobin

» که پیغام خطای زیر رو داد:

   ERROR: Could not found your Username (***%@%@%@%@%@&0&0&0&0&0) in database.

باز یه نکته جالب دیگه که هست اینه که هر دستور SQL با یه پیغام جداگانه ظاهر میشه.
» مثل این یکی:

 DELETE * From UID

» که پیغام خطای زیر رو داد:

    ERROR: Could not found your Username (***&^&^&^&^&^%*%*%*%*%*) in database.

نکاتی مهم از کتاب نفوذگری در شبکه و روشهای مقابله:
۱- "هر واکنش غیر طبیعی نشان دهندهء یک ضعف است و نفوذگر با تمرکز بر آن سعی میکند تا از طریق دستورات و عبارات SQL‌ در قالب داده های ورودی عملیات مورد نظرش را روی بانک اطلاعاتی اعمال کند."
۲- "برای هر نقطه ضعف در برنامه کاربردی, مجموعه ای از دستورات به صورت سعی و خطا امتحان شده و پاسخ آنها برسی میشود تا عملیات موفق و قابل انجام مشخص شود."

خوب،فکر میکنم زیاد هم غیر منطقی نباشه... نظر شما چیه؟


برای عضویت در خبرنامه این وبلاگ نام کاربری خود در سیستم بلاگ اسکای را وارد کنید
نام کاربری
تعداد بازدیدکنندگان : 122282


Powered by BlogSky.com