PDA

View Full Version : مشکل در عدم اجرای ثبت کوکی



javad_hosseiny
پنج شنبه 22 اردیبهشت 1384, 13:12 عصر
من به تازگی سایت جدیدی را اپلود کردم که به مشکل جدیدی برخورد کردم
در قسمت ورودی که لازم به ثبت یزر و پسورد برای ورود است مشخصات در کوکی ذخیره می شود این کد بصورت لوکال درست جواب می دهد ولی بر روی سرور کار نمی کند تنظیمات اکسپلورر برای دریافتی کوکی درست است و مدیر سرور هم می گوید در سرور او مشکلی نیست دوستان در صورت امکان راهنمایی کنند

oxygenws
پنج شنبه 22 اردیبهشت 1384, 18:16 عصر
اینطوری نمی تونم جوابتون رو بدم:
1- یک فایل phpinfo بذار رو سرور و لینکش رو بده.
2- لینک صفحات و روش ایجاد مشکل رو برام بنویس.

javad_hosseiny
شنبه 24 اردیبهشت 1384, 19:52 عصر
آقا امید عزیز من اشتباه متوجه شدم کوکی ثبت می شود ولی متاسفانه متغیر استفاده شده در صفحات بعد فراخوانده نمی شود
مشکل اصلی این است که این سایت رو من بر روی سرور خودم (منظور سروری که اطلاعاتی خودم روش هست یه سروری لینوکسی) آپلود کردم مشکل نداره
ولی این سرور یه سرور ویندوزی هست ولی چرا نمی دونم؟
(یکی از دوستان گفت از دستور http_cookie_var در اول صفحات استفاده کن اینکار رو هم کردم باز نشد)
لینک Phpinfo در سرور لینوکسی:
http://www.madahi.com/bagher/admin/phpinfo.php
لینک phpinfo در سرور جدید:
http://www.bou.ac.ir/admin/phpinfo.php
و البته ورژن Php در هر دو سرور 4.3.11 هست

oxygenws
شنبه 24 اردیبهشت 1384, 21:30 عصر
سلام،
کد برنامه در فایل اول و دوم رو اینجا بذارید.

javad_hosseiny
یک شنبه 25 اردیبهشت 1384, 09:44 صبح
سورس کد صفحه اول (که در ابتدای آن کوکی ثبت می شود)
و یک نمونه از صفحات دوم (که در آن متغیر کوکی فراخوانی شده و در بانک جستجو می شود) را گذاشتم
ولیکن مشکل حل شده (یعنی در صفحات بعد نیز فعال گردید)
اما سوال من این است که چطور می شود که اینگونه می شود؟ (یعنی چرا در اول اینچنین مشکلی داشت و چرا خود به خود حل شد)
یعنی من کدم را عوض نکردم و از اول در سرور دیگری آن را تست کردم و آنجا از اول درست بود ولی اینجا نه ( و از کجا معلوم که در آینده اینچنین نشود) و شاید هم مشکلی بوده و مسئولین سرور آن را تصحیح کردند (می خواهم بدانم آن مشکل چی بوده)
(در ضمن مسئولین سرور php.ini را در روت شاخه من گذاشته برای تغییر و تحول)
(و یک نکته دیگر اینکه روت سایت من پر شده از فایلهای tmp سیشن (حال آنکه من از سیشن اصلا استفاده نکردم))

oxygenws
سه شنبه 27 اردیبهشت 1384, 13:01 عصر
لطف کن توضیح بده که برنامه ات چیکار می کنه، کدوم فایل اول فراخوانی میشه و ...

javad_hosseiny
سه شنبه 27 اردیبهشت 1384, 19:18 عصر
در برنامه اول مشخصات یوزر و پسورد (که در یکی از زیرمجموعه فایل نام و پسورد را می گیرد ) در کوکی ذخیره می شود (یعنی می خواستم کد مربوط به ذخیره کوکی را نشان شما بدهم)
و در فایل دوم (در ابتدای برنامه کوکی را فراخوانی کرده ام) (که یعنی اگر یوزر ثبت شده بود ادامه کار را انجام بده و الا خروج کن) می توانید به اصل سایت هم مراجعه کنید www.bou.ac.ir در صفحه اول سمت راست بخش ورود یوزر و پسورد )
با تشکر

oxygenws
سه شنبه 27 اردیبهشت 1384, 23:05 عصر
ببخشید....
من فایل های شما رو هنوز بررسی نکردم، اما این روش شما کلا اشتباهست و سایت طراحی شده توسط شما اصلا امن نیست و هر کسی می تونه وارد سیستم بشه.
موفق باشید.

houtanal
چهارشنبه 28 اردیبهشت 1384, 02:50 صبح
یه نوشته برات در جنبش نرم افزاری اضافه کردم :mrgreen:
مطلب امنیت در نرم افزارهای تحت وب رو در بخش امنیت نرم افزار بخون

houtanal
چهارشنبه 28 اردیبهشت 1384, 02:51 صبح
هر کسی می تونه وارد سیستم بشه.
از چه روشی استفاده کردی؟

oxygenws
چهارشنبه 28 اردیبهشت 1384, 03:08 صبح
از چه روشی استفاده کردی؟
من کد این دوستمون رو قبلا دیدم و یادم نیست دقیقا چه متغیری تو کوکی ذخیره کرد، اما اگر مثلا مقداری برابر "login=1" بذاره. میشه با کمی بالا-پایین کردن، وارد سیستم شد.

در مورد شبکه و ISP و همکار و ..... هم که خودت استادی :mrgreen:

houtanal
چهارشنبه 28 اردیبهشت 1384, 03:22 صبح
چه متغیری تو کوکی ذخیره کرد،
کد رو الان دانلود کردم میخونم

ایضا
بیست ثانیه حداکثر زمانیست که برای Sql Injection لازمه.

راه حل کوکی ها:
مقادیر منحصر به فرد کاربر مثلا پسورد هش شده یا شماره شناسایی منحصر به فرد رو هم ذخیره و هنگام خواندن بازیابی کن

راه حل sql injection
ورودی ها را مستقیما به رشته پرس و جو نده

javad_hosseiny
چهارشنبه 28 اردیبهشت 1384, 18:48 عصر
با تشکر از راهنمایی دوستان
اما در رابطه با نفوذ در سیستم متوجه نشدم (چونکه متغیری مربوط به یوزر تنها را فقط من در کوکی ثبت کردم با توجه به راهنمایی دوستمان هوتن که پسورد و... در کوکی ذخیره کنم که بدتر می شود) و در صفحات بعد با توجه به نام یوزر و سرچ در جدول (تیبل) قدرت کاربر (در مدیریت صفحه جدید) مشخص می شود و حال اولا چونکه نام متغیر و یا محتوی آن (نام کاربر) را شخص (کسی که می خواهد نفوذ کند) بدست بیاورد و دوم بعد از بدست آوردن آن چگونه می تواند در کد من دست ببرد که مثلا متغیر فلان را با کمی بالا و پایین کردن وارد کند (اگر بحث ایجاد کوکی به نام آن صفحه و ایجاد آن متغیر باشد) که با بحث تاریخ انقضا کوکی مشکل پیدا می کند و در کل واقعا می خواهم بدانم واقعا چگونه امکان نفوذ در این کدنویسی هست ؟
و در پایان آقا امید من هنوز پاسخ سوالم را نگرفتم (چرا سرور چنین مشکلی داشت و .... ؟)

houtanal
چهارشنبه 28 اردیبهشت 1384, 19:37 عصر
مورد اول:


اما در رابطه با نفوذ در سیستم متوجه نشدم

عکسو ببین.
یه یوزر نیم واسه خودم ساختم . در صفحه مدیریتی ببین



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



چگونه امکان نفوذ در این کدنویسی هست ؟

title برنامت دقیقا اینه
Crack me please

اگر بخوام برات توضیح بیشتر بدم هر کسی به راحتی با کمی کنجکاوی به سیستمت نفوذ می کنه. مطالب قبلی رو بخون.

در سایتت یه چیز باحالی نوشته.بهش توجه کن


قال الباقر (ع): عالمى که از علم خویش بهره بردارى کند بهتر است از هزار عابد

مورد آخر:
آقا از کجا باید خودمو بعنوان پژوهش برتر در صفحه اول معرفی کنم؟ :mrgreen:

houtanal
چهارشنبه 28 اردیبهشت 1384, 19:40 عصر
یه مورد دیگه
مشخصا داری پسورد های رو به صورت clear text ذخیره میکنی
ابدا این کار رو نکن
ازتوابع md5 و sha1 در php استفاده کن
در مورد امنیت نرم افزار های تحت وب مطالعه کن

oxygenws
پنج شنبه 29 اردیبهشت 1384, 00:53 صبح
راه حل کوکی ها:
مقادیر منحصر به فرد کاربر مثلا پسورد هش شده یا شماره شناسایی منحصر به فرد رو هم ذخیره و هنگام خواندن بازیابی کن
به جای کوکی از سشن استفاده کن.

در مورد اینکه چرا کار می کرده و نمی کرده، نمی تونم دلیل دقیقش رو بهت بگم، اما شاید به این دلیل بوده که قبل از ثبت کوکی، چیزی رو صفحه چاپ می کردی (با چیزهایی که تو صفحه اول نوشتی، خیلی این احتمال میره)

(باز هم میگم... سایتت رو به چندین روش میشه هک کرد، توصیه های هوتن و من رو جدی بگیر :) )

houtanal
پنج شنبه 29 اردیبهشت 1384, 02:04 صبح
به جای کوکی از سشن استفاده کن
البته امید برای این گونه حملات session ها هم در صورتیکه از همین الگوریتم استفاده کنند ایمن نیستند
با نصب یک نزم افزار پروکسی مثل آشیل (که البته انتخاب های بهتری هم موجود است) به راحتی میشه مقادیر رو در بین راه ویرایش کرد.
یکی از دلایلی که میگم به هیچ وجه اعتبار سنجی فرم ها رو در سمت کلاینت ساید انجام ندهید همینه

فی المجموع
اکیدا توصیه می کنم برای برنامه هایی که از حساسیت خاصی برخوردارند از الگوریتم رمز نگاری خودتان استفاده کنید.این الگوریتم الزاما نباید از یک ساختار بسیار پیچیده برخوردار باشه
ترکیب ایمن نگه داشتن سرور یا استفاده از ابزارهایی مثل zend encoder برای ایمن نگه داشتن سورس ها و استفاده از الگوریتم خاص برای غیرقابل فهم بودن آن ها برای مهاجم (با احتمال 1% دسترسی مهاجم به آن ها) می تونه بسیار مفید باشه

oxygenws
پنج شنبه 29 اردیبهشت 1384, 02:22 صبح
البته امید برای این گونه حملات session ها هم در صورتیکه از همین الگوریتم استفاده کنند ایمن نیستند
سشن، فقط یک مقدار نامعلوم و یکتا رو در سمت کلاینت ذخیره می کنه و مابقی اطلاعات در سرور (حالا یا رو هارد، یا تو بانک یا ...) و این امنیت خیلی خیلی خیلی بالاتری نسبت به کوکی داره.

javad_hosseiny
پنج شنبه 29 اردیبهشت 1384, 18:11 عصر
با تشکر از آقا هوتن
(من تا حالا سایت های زیادی رو طراحی کردم و الان بیشتر در حال application (برنامه های کاربردی) با php هستم و تاحالا اینچنین موردی نداشتم)
ولی واقعا برام جالب بود که متوجه بشم بحث امنیتی برای این سایت اینقدر ضعیف بوده ولی خوشحال می شم که روش کار (ایجاد کاربر admin) رو بصورت pm برام توضیح بدهین
من برای ذخیره پسوردهام از تابع md5 استفاده کردم و تصمیم به تغییر ذخیره اطلاعات از کوکی به سیشن کردم (البته قبلا بیشتر با سیشن کار می کردم ولی چون در چندین مورد با ادمین های سرور مشکل داشتم (که اجازه نوشتن سیشن در سرور را نمی دادند) بی خیال سیشن شدم و با کوکی کار کردم
اما در رابطه با استفاده از zend encoder و حفاظت از سورسها (مگر سورسها Php روی سرور برای کاربران قابل مشاهده است) می توانید توضیح بیشتر بدهید؟

javad_hosseiny
پنج شنبه 29 اردیبهشت 1384, 18:13 عصر
و با تشکر از آقا امید
ولی سورس کد بنده قبل و بعد از انجام این کار (قبول نکردن و قبول کردن کوکی) تغییری نکرده بود و ثانیا همون کد روی لوکال و سرور دیگر جواب می داد
و دوم اینکه این احتمال که به علت ذخیره فایلهای tmp روی روت سرور باعث ایجاد این ضعیف امینی نشده است
و سوم اینکه بیشتر خوشحال می شم تا بحث های امنیتی ضد هک سایت رو برام بیشتر باز کنید (روش های مختلف هک کردن سایتتون)

houtanal
پنج شنبه 29 اردیبهشت 1384, 18:42 عصر
فایلهای tmp روی روت سرور باعث ایجاد این ضعیف امینی نشده است
نه

خوشحال می شم تا بحث های امنیتی ضد هک سایت رو برام بیشتر باز کنید
مقاله امنیت در نرم افزارهای تحت وب در بخش امنیت نرم افزار رو بخون

oxygenws
جمعه 30 اردیبهشت 1384, 00:28 صبح
بی خیال سیشن شدم و با کوکی کار کردم
کار اشتباهی کردید :) همیشه اولین راهی که به ذهنتون می رسه بهترین راه نیست. (و البته الان کار درست تر! رو داری انجام میدی)


مگر سورسها Php روی سرور برای کاربران قابل مشاهده است
خیر، اما انکود کردن برنامه ها توصیه میشه. توجه کن که فقط کاربرا نیستند که ممکنه بتونند فایل ها رو ببینند.


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


فایلهای tmp روی روت سرور باعث ایجاد این ضعیف امینی نشده است
اگر منظورت از "روت" شاخه قبل از www است، همونطور که هوتن گفت، مشکلی نیست، حتی تا حدودی امنیت رو بیشتر می کنه :)
اما اگر منظورت از "روت" خود www یا public_html می باشد، که می تونه باعث بشه که امنیت پایین بیاد.


خوشحال می شم تا بحث های امنیتی ضد هک سایت رو برام بیشتر باز کنید
:confy2: فکر کنم زبون هوتن جان مو درآورده باشه!!! فکر کنم بار سوم یا چهارمه که داره اینو تو همین تاپیک میگه!!

:موفق:
امید