PDA

View Full Version : سوال: حملات CRLF و جلوگیری از آن



poriab
شنبه 23 اسفند 1393, 03:08 صبح
این حملات به چه شکل هست و راه مقابله با آن چیست ؟
یکی از برنامه هایی که نوشته بودم را داشتم چک می کردم(تست نفوذ پذیری) با نرم افزار ، که CRLF را گزارش داد !
تو سایت های فارسی اصلا مطلب خوبی در این مورد پیدا نکردم

ممنون میشم راهنمایی کنید که چطوری این باگ پوشش داده میشه

عکس هشدار :
129438
129437

desatir7316
شنبه 23 اسفند 1393, 07:21 صبح
اینجا یه توضیحی داده، از این می تونید شروع کنید: http://www.yiiframework.com/doc-2.0/guide-security-best-practices.html#avoiding-csrf

hamedarian2009
شنبه 23 اسفند 1393, 13:03 عصر
ایتجا رو مشاهده کنید
http://www.wikihow.com/Prevent-Cross-Site-Request-Forgery-%28CSRF%29-Attacks-in-PHP

freeman99
شنبه 23 اسفند 1393, 14:05 عصر
CRLF را گزارش داد !

CRLF که یعنی carriage return line feed :چشمک:
اینا دو کاراکتری هست که انتهای خطوط فایلهای متنی (یا همچنین در جاهای دیگری هم کاربرد دارن) میان.
اما CSRF یا XSRF یه چیز دیگس و همون حفره هه بوده احتمالا.

poriab
شنبه 23 اسفند 1393, 18:00 عصر
ممنون
CRLF و CSRF تفاوتی ندارند ؟

با Acunetix چک کردم ، CRLF رو گزارش داد

freeman99
شنبه 23 اسفند 1393, 20:51 عصر
اگر گفته CRLF پس یا یک چیز دیگری غیر از CSRF است یا اشتباه تایپی بوده توی برنامشون (که احتمالش کمه البته).
متن و توضیحات کامل پیام خطا رو از توی گزارشش بذارید.

ashkufaraz
شنبه 23 اسفند 1393, 21:54 عصر
من یه همچین چیزیهای فهمیدم نمیدونم درسته یا نه!
CRLF وقتی هست که بتونیم از خارج از دامنه اصلی یک فرم را submit کنیم
مثل شما یک فرم داریم شامل 2 تا input نام کاربری و رمز عبور
و حالا من هم توی مثلا توی سایت خودم یه همیچن فرمی درست می کنم و action فرمم رو همون action فرم شما میزارم
حالا برای جلوگیری از این بهترین راه حل قرار دادن session id داخل فرم هست که طرف سرور چک کنی که درست باشه

poriab
شنبه 23 اسفند 1393, 22:23 عصر
عکس رو به پست اول اضافه کردم

freeman99
شنبه 23 اسفند 1393, 22:29 عصر
اولا CRLF نه و CSRF.
دوما بعنوان مثال یه نگاهی به آدرس لینکی که نوشته «خروج» در بالای همین صفحه بنداز.
واسه من مثلا این شکلیه:

http://barnamenevis.org/login.php?do=logout&logouthash=1426360916-1c723086b2c65368a3724228fca0b1194e084326
الان اون logouthash همون توکن امنیتی برای جلوگیری از CSRF است، وگرنه کافی بود مثلا یه عکس با این آدرس در صفحه بذاریم (یا اصلا بگیم یه لینک ساده که خودتون بدون فکر و بررسی آدرسش روش کلیک کنید) تا از برنامه نویس لاگ آوت بشید.
البته CSRF در فرمها و متد POST هم وجود داره.
بنابراین همهء لینک ها و فرم ها باید به توکن امنیتی مجهز باشن.

اما اینجا برام مقداری سوال و ابهام پیش اومد!
سوال اینه که این قضیه از نظر سرچ در موتور جستجو و کلیک کاربران در نتایج موتور جستجو روی لینک های سایت چطور تعامل داره و چه اصول و نکاتی رو باید از این باب رعایت کرد. چون لینک موتور جستجو که توکن معتبری نداره.
باید سر فرصت روش فکر کنم :متفکر:

freeman99
شنبه 23 اسفند 1393, 22:31 عصر
عکس هشدار :
129438
129437
این مورد اصلا CSRF/XSRF نیست که!
این یه چیز دیگس که فقط اسمش مقداری شباهت داره.
احتمالا شما یه پارامتری رو که از سمت کاربر میاد در یک هدری چیزی درج میکنید؟

poriab
شنبه 23 اسفند 1393, 22:42 عصر
این مورد اصلا CSRF/XSRF نیست که!
این یه چیز دیگس که فقط اسمش مقداری شباهت داره.
احتمالا شما یه پارامتری رو که از سمت کاربر میاد در یک هدری چیزی درج میکنید؟

منم سوالم CRLF هست و تیتر تاپیک رو همین زده بودم ! ولی تغییر کرده !

freeman99
شنبه 23 اسفند 1393, 22:44 عصر
برای اینکه بفهمید کجای برنامتون ایراد داره باید ببینید اون متغییر و اینایی که براش این هشدار رو داده و جزییات دیگری که توی گزارش بود چیه.


سوالم CRLF هست و تیتر تاپیک رو همین زده بودم ! ولی تغییر کرده !
احتمالا مدیریت عنوان رو اصلاح کرده. ولی درواقع همون عنوان شما درست تر بود!

MMSHFE
یک شنبه 24 اسفند 1393, 08:05 صبح
عنوان تاپیک رو دوباره برگردوندم به همون قبلی. نمیدونم کی عوضش کرده بوده.
این لینک رو ببینید: https://bugscollector.com/tricks/3
همینطور این یکی: http://www.veracode.com/security/crlf-injection
بطور کلی بهتره توی ورودیهای کاربر، کارکترهای مخرب رو درنظر نگیرین. برای مثال کارکترهای معادل کد اسکی 10 و 13 رو حذف کنید. مثال:

header('Location: ' . str_replace(array(chr(10), chr(13)), '', $_GET['url']));