PDA

View Full Version : aspx و نفوذ پذیری



mg_mahyar
جمعه 17 اردیبهشت 1389, 21:32 عصر
سلام
یه سوال دارم اگر سایتی مثل این http://94.182.218.42/Portal/Std/inout/StdLog.aspx
رو داشته باشیم و محدودیت سه بار کلیک کردن و بعد مجبور به رفرش بشیم.
باز هم اکان نفذ داره؟
یعنی از این برنامه ها که کلی عدد تست میکنن کسی میتونه به صفحه شخصیم نفوذ کنه؟

Saeed.Masoumi
شنبه 18 اردیبهشت 1389, 04:04 صبح
سلام
اگه منظورتون از نفوذ بدست آوردن مشخصات ورود از طریق دیکشنری اتک باشه باید به عرض شما برسونم
یکی از راههای حفاظت همونطور که خودتون گفتید محدودیت در تلاش برای ورود است.
یکی دیگه از راهها استفاده از Captcha است البته یک جوری که نشه با OCX اونم بدست آورد.
و کلا ترکیبی از روشها.
به قول معروف امنیت مرز نمی شناسد.

mg_mahyar
شنبه 18 اردیبهشت 1389, 13:14 عصر
یعنی الان هیچ مشکلی نیست؟
چون محدودیت ورود داریم 3 بار پس نمیتونن با نرم افزاری تست کنن دونه دونه اعداد رو و بعد وارد سایت بشن؟

mehdi.mousavi
شنبه 18 اردیبهشت 1389, 18:09 عصر
یعنی الان هیچ مشکلی نیست؟ چون محدودیت ورود داریم 3 بار پس نمیتونن با نرم افزاری تست کنن دونه دونه اعداد رو و بعد وارد سایت بشن؟

سلام.
البته که مشکل داره. من با یه آزمایش ساده متوجه شدم که میشه از مکانیزم مورد شما با موفقیت عبور کرد. ببینید. شما به چه دلیلی ID و Password رو برای وجود کلمه OR چک می کنید؟؟؟ برای شما چه اهمیتی داره که من چی وارد کردم؟ فرض کنیم جلوی OR رو گرفتید، اگر من اندکی UID/PWD رو پیچیده تر کنم، براحتی از مکانیزم مورد نظر شما عبور میکنم و نیازی به Brute Force و مکانیزمهای دیگه برای عبور از مرحله authentication نیست.


هرگز از Dynamic SQL ها استفاده نکنید
هرگز Password ها رو بصورت Clear در بانک نگهداری نکنید

و هرگز، سوالی که مربوط به بخش ASP.NET میشه رو به بخش Classic ASP ارسال نکنید. :چشمک:

موفق باشید.

پاورقی: سوال شما به بخش ASP.NET منتقل شد.

mg_mahyar
شنبه 18 اردیبهشت 1389, 21:45 عصر
خوب یعنی بعد از پیچیده کردن یوزر پس به چه صفحه ای میری؟
مشکل اینه میخوام بدونم میشه کسی که فقط ایدی رو داره یه جوری با یه برنامه ای وارد بشه و پیج بقیه رو خراب کنه یا نه؟
من کلی بحث کردم که سیستم باید عوض بشه خیلی درد سر داریم ما. بماند. ولی این قضیه به شرطی میشه که نشون بدم مشکل اساسی داره.
حالا مثلا منظور از یوزر و پپسورد پیچیده چیه؟ یعنی خیلی طولانی یا کد کاراکتر ها مورد خاصی باید باشه؟
بابا ارسال نا به جا هم شرمنده خیلی به ای بخش وارد نیستم:لبخندساده:

mg_mahyar
یک شنبه 19 اردیبهشت 1389, 13:19 عصر
کسی نیست یه راهنمایی کنه منظور از پسورد پیچیده چیه؟:بوس:

m.hamidreza
دوشنبه 20 اردیبهشت 1389, 21:25 عصر
من فکر میکنم منظور برادر موسوی این باشه که بجای بکاربردن عین کاراکتر از کد هگزادسیمال کاراکتر استفاده شه.
تو این سیستم مثلا کاراکتر = فیلتر شده ولی اگه بجای = شما کدِ این کاراکتر رو بزنی سیستم میتونه اینو تشخیص بده؟
موفق باشید.

mg_mahyar
دوشنبه 20 اردیبهشت 1389, 23:31 عصر
من فکر میکنم منظور برادر موسوی این باشه که بجای بکاربردن عین کاراکتر از کد هگزادسیمال کاراکتر استفاده شه.
تو این سیستم مثلا کاراکتر = فیلتر شده ولی اگه بجای = شما کدِ این کاراکتر رو بزنی سیستم میتونه اینو تشخیص بده؟
موفق باشید.
کد هگزا دسیمال درسته ولی این کد رو میشه مثلا با چی توی سایت وارد کرد؟
اگر عدد وارد کنن که خوب عدد محسوب میشه نه کد دسیمال و اگر کاراکتر وارد کنن کاراکتر.
من فکر میکنم منظور چیز دیگه باشه. کاش خودشون بیشتر توضیح بدن.
اخه مگه میشه کد هگزا دسیمال رو کاربر وارد کنه؟

mehdi.mousavi
دوشنبه 20 اردیبهشت 1389, 23:50 عصر
من فکر میکنم منظور چیز دیگه باشه. کاش خودشون بیشتر توضیح بدن. اخه مگه میشه کد هگزا دسیمال رو کاربر وارد کنه؟

سلام.
شما اینقدر توی UI غرق شدید که فکر می کنید یه مهاجم هم از طریق UI به Brute Force و ... دست میزنه. بله. کدهای Hex رو میشه به SQL Server فرستاد، کدهای دیگه رو هم میشه فرستاد. من اینکارو نکردم، فقط یه OR رو آزمایش کردم تا دستم بیاد که کد رو چطور نوشته اید.

اولین اشکال اساسی اینه که شما تو ورودی من دنبال Pattern میگردید. این کار نادرسته. چه خوب انجام بشه، چه بد. شما اصلا نیازی به این کار ندارید. اگر از Parametric Command ها استفاده کنید، دیگه اهمیتی نداره که من چطوری بخوام Command مورد نظر شما رو دور بزنم.

مشکل دوم، دادن جزییات در پیام خطایی هستش که به کاربر میدید. به کاربر چه که OR توی Username زده؟ کافی بود بنویسید "نام کاربری / کلمه عبور معتبر نیست". همین. این اطلاعات کمی به مهاجم میده، در عین حال که کاربر سایت هم متوجه میشه که زوج ID/PWD رو درست وارد نکرده.

من اینجا قصد ندارم تا در مورد چگونگی نفوذ به سایت شما صحبت کنم، اما همین دو مورد فوق رو انجام بدید، جلوی اکثر حملات رو می گیرید. فقط می مونه Brute Force که اونو هم میتونید با یه Salt Value هندل کنید.

موفق باشید.

mg_mahyar
شنبه 25 اردیبهشت 1389, 09:48 صبح
سلام.
شما اینقدر توی UI غرق شدید که فکر می کنید یه مهاجم هم از طریق UI به Brute Force و ... دست میزنه. بله. کدهای Hex رو میشه به SQL Server فرستاد، کدهای دیگه رو هم میشه فرستاد. من اینکارو نکردم، فقط یه OR رو آزمایش کردم تا دستم بیاد که کد رو چطور نوشته اید.

موفق باشید.

ممنون ولی من که هگر نیستم
اگر ممکنه اسم برنامه ای رو که باهش توی سایت وارد شدید رو بگید
در مورد الگو هم بگم فرقی نداره شماره ایدی رو همه دارن و فقط یک فیلد ورود داریم اونم پسورده.
ایدی رو به راحتی میشه گیر اورد.
و نتیجتا طرف میدونه که اگر گفت اطلاعات ورودی اشتباه هست ایراد از پسورده نه ایدی

mehdi.mousavi
جمعه 31 اردیبهشت 1389, 21:14 عصر
من کلی بحث کردم که سیستم باید عوض بشه خیلی درد سر داریم ما. بماند. ولی این قضیه به شرطی میشه که نشون بدم مشکل اساسی داره.

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

اگه واقعا می دونید سیستم چه مشکلی داره، خوب، برید سرسختانه از نظراتتون دفاع کنید و رییس رو برای طراحی یک سیستم جدید که فاقد مشکلات مورد نظرتون هست قانع کنید. ورود غیر مجاز به یک سیستم، دلیلی بر طراحی مجدد و از ابتدای اون نمیشه که شما اینقدر روی این مساله پافشاری میکنید که من چطوری تونستم فلان کارو کنم یا از چه نرم افزاری برای فلان کار استفاده کردم.

ما کلا دو جور توسعه داریم:


Greenfield Development
Brownfield Development

Greenfield Development یعنی اینکه یا "هیچ نرم افزاری برای مکانیزه شدن فلان کار وجود نداره"، یا "برنامه ای وجود داره که خوب نوشته شده و قادر هستیم با تغییراتی جزیی، اونو نگهداری کنیم یا قابلیتهای جدیدی به اون بیفزاییم". به بیان دیگه، هر برنامه ای که Re-Modeling نخواد در این بخش قرار میگیره. این اسم از کجا انتخاب شده؟ این اسم در واقع از فیلد کشاورزی به این عرصه وارد شده. وقتی شما یه زمین سرسبزی دارید، میتونید اونو برای کشت محصول مورد نظر خودتون اونطور که مایلید تغییر بدید و شروع به ساخت و ساز در اون کنید.

Brownfield Development در مقابل، یعنی "پروژه ای داریم که نیاز به Re-Modeling داره"، "بد نوشته شده و تیم دیگه ای قادر نیست قابلیتهای جدیدی به اون اضافه کنه یا اضافه کردن قابلیتهای جدید، بخاطر ساختار فعلی بسیار دشواره" و ... این اسم از کجا انتخاب شده؟ توی مهندسی عمران، Brownfield Development یعنی ساخت و ساز ملکی در منطقه ای که در حال حاضر اونجا ملک وجود داره و بنای جدید باید بر اساس بناهای موجود قبلی ساخته بشه و بالا بره.

خوب، این چه ربطی به موضوع داره؟

شما اول باید مطمئن بشید که پروژه ای که قصد دارید دوباره طراحی کنید، جزء دسته دوم هستش. دسته دوم خودش به بخشهای دیگه ای تقسیم میشه و نباید گمان کنید که هر پروژه ای که در دسته دوم قرار گرفت، یعنی باید Re-Model بشه و از اول طراحی بشه. خیر. هرگز اینطور نیست.

در مورد مثال شما، یعنی دسترسی غیر مجاز به منابع، این هرگز به تنهایی نمیتونه دلیلی برای Re-Modeling پروژه باشه. تا وقتی من تمام مطلب رو ندونم، هرگز نمیتونم در مورد چنین مساله ای قضاوت کنم. شاید چند تغییر بسیار کوچک در بخش Login برنامه، کل مشکلات امنیتی سیستم شما رو رفع کنه.

در نهایت، بهتره شما از یک مشاور در این زمنیه کمک بگیرید. اونها خودشون میدونن در صورت نیاز، چطور رییس شما رو برای طراحی مجدد سیستم (در صورت نیاز) قانع کنن.

موفق باشید.