بله کلا دو مورد امنیتی دارد.
سشن ارتباطی با اسکریپت ندارد و فرض بر این میگیریم که سرور امن است؛
ورودی کوکی و GET مستقیما در دیتابیس سرچ می شوند؛ بدون اعتبار سنجی! SQLi
نمایش نسخه قابل چاپ
بله کلا دو مورد امنیتی دارد.
سشن ارتباطی با اسکریپت ندارد و فرض بر این میگیریم که سرور امن است؛
ورودی کوکی و GET مستقیما در دیتابیس سرچ می شوند؛ بدون اعتبار سنجی! SQLi
فکر کنم متوجه منظور بنده نشدید.
برای مثال در خط 10 این متغیر را استفاده کرده اید :
همانطور که میدانید کوکی در سیستم شخص ذخیره می شود !کد PHP:
$level=$_COOKIE["level"];
حال در خط 28 از این دستور استفاده کردید :
خوب حالا فرض می کنیم مقدار کوکی level برابر با 1 باشد ! تا این جا بدون در نظر گرفتن متغیر id خیلی خوب کار می کند حال اگر من با کمی دستکاری مقدار کوکی را به 1' تبدیل کردم 100% می توانم به دیتابیس شما نفوذ کنم.کد PHP:
$query3="SELECT * FROM news WHERE id=$id AND level=$level limit 1";
حرف من اشتباهه دوست عزیز ؟
اما چجوری می توانیم مقدار کوکی رو عوض کنیم ؟ خیلی از افزونه های مرورگر هستند که برای شما این کار را انجام می دهند.
درضمن همین افزونه ها امکان ایجاد session هم دارند ، پس میتونیم یک سشن با مقدار دلخواه ایجاد کرد ، برای مثال مقدار : test'
سوالی که از شما دارم ، در قسمتی که نوشتید //Ok یعنی دیگر نیازی به استفاده از متغیر userid نیست ؟
اگر اشتباه می کنیم بفرمایید :)
- - - Updated - - -
درصورتی که نیاز هستش بفرمایید بهتون افزونه مرورگر هم معرفی می کنم.
در ضمن هر سرور از لحاظ سشن امن نیست ، این کدی که شما نوشتید نحوه ی استفاده از سشن به نوعی باگ هستش ... ما نمیتونیم فرض کنیم سرور امن هست.
سشن با کوکی متفاوت است ! بله امکان تغییر در کوکی وجود دارد و در بالا نیز به این مورد اشاره کردم! اما سشن نه !
در هیدر فقط آی دی سشن ارسال می شود و سشن عملا قابل تغییر از سمت کلاینت نیست!
خوشحال می شوم افزونه ای که می فرمایید رو معرفی کنید.
بله اطلاع دارم که باهم فرق دارند و شرایط نگهداری آنها به چه صورت خواهد بود.
پس اگر مسئله ی کوکی را قبول کردید نوشته ی شما بیش از 2 باگ دارد.(بدون در نظر گرفتن روش های تکراری)
بنده بدون اطلاع به شما چیزی نگفتم و نخواهم گفت ، ابتدا خودم هم اطلاعی نداشتم که میشود با سشن کاری کرد ، اما وقتی به سیستمی که نوشته بودم نفوذ شد فهمیدم میشه :)
از نظر من این چیزی که شما نوشتید باگ دیگری هم دارد : اینکه مقدار کوکی باید از هر نظر بررسی شود ، با یک روش خیلی ساده شاید بتوان یک کوکی ایجاد کرد و خیلی راحت وارد حساب کاربری شخص دیگر شد(از این طریق ضربه خوردم پس نگید نمیشه)
و همانطور که گفتم در مسائل امنیتی چیزی برای فرض کردن وجود ندارد.
به سوالی که پرسیدم جواب ندادید.
متاسفانه اسمش رو پیدا نکردم ولی قبلا از چنین افزونه ای استفاده کردم و تنها برای اثبات آن توانستم عکس چنین افزونه ای برای شما پیدا کنم :
http://i.stack.imgur.com/dD572.png
این عکس تقریبا شبیه به ان افزونه هستش ولی خودش نیست و یادم هست فقط برای کروم بودش)
از لحاظ منطقی کد شما بیشتر از 2 باگ دارد.دلیل :
برای آنکه نمیتوانیم فرض کنیم سرور از لحاظ سشن ایمن هستش.
جایی چک نشده که مقدار حقیقی بوده یا خیر (جهت ساختن کوکی جعلی)
به راحتی میتوان با مقدار کوکی یک حمله موفق sql injection داشت.
فقط از لحاظ ظاهری نگاه نکنید ...
بنده 2 روز نیست که برنامه نویس شدم از بدو ورود به دوره ی راهنمایی آموزش دیدم تا همین الان به همین خاطر مطمئن باشید چیزی که میگم قصد ندارم گفته یا دانش شما را تخریب کنم ، فقط خواستم مطلع باشید برای نفوذ حتی از آنجایی که فکرش رو هم نمی کنید امکان پذیر است و امیدوارم قبول کرده باشید بیشتر از 2 باگ دارد :-D
خودتون به عکسی که فرستادید دقت کنید ! نوشته Coocki !! :71:
ما داریم درمورد باگ برنامه صحبت میکنیم نه سرور! تفاوت سشن با کوکی تو همینه که سش به دلیل اینکه سمت سرور هست قابل تغییر نیست.
یه نگاه کنید فقط داریم مطالبو تکرار می کنیم! من تا صبح هم تکرار کنم شما باز حرف خودتون رو میزنید؛ باشه حق باشما
موفق باشید
با دقت بخونید : این خود اون چیزی که گفتم نیست شبیه به ساختارش هست :)
متاسفانه شما هم قبول نمی کنید چیزی که نوشتید بیشتر از 2 مشکل دارد .
فقط به عنوان یک پیشنهاد : جهت محکم کاری زمان برنامه نویسی سشن و کوکی را حداقل از addslashes گذر دهید فکر نمی کنم ضرری بکنید.
سپاس
شما نوشتید:" برای اثبات حرفتون این عکسو گذاشتید" یعنی عکس یه پلاگین گذاشتید که قابلیت تغییر در کوکی را دارد تا اثبات کنید که Session قابل تغییر است؟
:71:
امروز منطق داره از سر و روی این انجمن می باره!
خدایا امروزو زودتر تمومش کن #:-S
در خصوص پیشنهادتون هم تشکر! ولی اگه دقت کنید من خودم عمدا از این روش استفاده کردم و از قبل هم گفتم دو باگ SQLi دارد!
منتظر یه کلمم ، بیشتر از 2 باگ دارد یا خیر ؟ :دی
دوست عزیز ، همکار عزیز امیدوارم متن پایین عکس هم خونده باشید اون چیزی که یادم هست چنین ظاهری داشت... اوکی ؟
در مباحث سمت سرور آشنایی ندارم اما چطور نرم افزاری مثل acunetix می تواند مقدار سشن هارو در زمان اسکن نمایش دهد ؟
اگر قصد دارید در این باره منطقی صحبت کنیم یاهو بیاید تا تاپیک این بنده خدا بیش از این از بحثش خارج نشه.
بله میدونم از دلیل اینکه اینکارو نکردید چی هست ، گفتم شما که اعتقاد ندارید از طریق سشن هم میتوان نفوذ کرد بهتره اینکارو انجام دهید.
هر طور مایلید :)