Forwarded from Ninja Learn | نینجا لرن
💎 حمله CSRF و چطوری ازش جلوگیری کنیم؟ 💎
امروز میخوایم در مورد یکی از حملات معروف تو دنیای وب، یعنی CSRF یا همون Cross-Site Request Forgery صحبت کنیم.
حالا CSRF چیه؟ 🤔
خب CSRF یه جور حملهست که هکر سعی میکنه با سوءاستفاده از سشن (session) کاربر، کارهایی رو به نمایندگی از کاربر انجام بده بدون اینکه اون کاربر خبر داشته باشه 😱. یعنی اگه کاربر توی یه سایت لاگین کرده باشه (مثل یه بانک یا شبکه اجتماعی) و بعد روی لینک یا دکمهای توی یه سایت دیگه کلیک کنه، هکر میتونه درخواستهایی رو به سایت اصلی (که کاربر لاگین کرده) بفرسته و کارهایی مثل انتقال پول یا تغییر اطلاعات کاربر رو انجام بده.
چجوری این حمله کار میکنه؟ 🎯
1️⃣ کاربر لاگین میکنه:
مثلا کاربر وارد حساب بانکی خودش میشه و یه سشن معتبر داره.
2️⃣ هکر یه لینک مخرب میسازه:
یه هکر توی یه سایت دیگه یه لینک یا فرم مخرب میسازه که درخواستهایی رو به حساب کاربر توی سایت بانکی ارسال میکنه.
3️⃣ کاربر روی لینک کلیک میکنه:
وقتی کاربر بدون اینکه خبر داشته باشه روی اون لینک کلیک میکنه، درخواست از طرف سشن کاربر به سرور سایت بانکی ارسال میشه.
4️⃣ هکر درخواستها رو اجرا میکنه:
سرور چون کاربر لاگین کرده، درخواست رو معتبر میدونه و اون کار انجام میشه (مثل انتقال پول، تغییر پسورد و...)
چجوری میشه جلوی CSRF رو گرفت؟ 🛡️
1️⃣ استفاده از CSRF Token
هر وقت کاربر یه فرم رو پر میکنه یا عملیاتی رو انجام میده، سرور یه توکن منحصربهفرد به فرم اضافه میکنه. این توکن رو سرور چک میکنه تا مطمئن بشه درخواست از طرف خود کاربر ارسال شده نه یه سایت دیگه. جنگو، فلکس و خیلی از فریمورکهای معروف به صورت پیشفرض از این مکانیزم پشتیبانی میکنن 🔑.
2️⃣ استفاده از روش POST به جای GET
برای درخواستهایی که نیاز به تایید کاربر دارن (مثل انتقال پول یا تغییر اطلاعات)، از POST استفاده کن، نه GET. توی درخواستهای GET دادهها توی URL قرار میگیرن که راحتتر میشه ازشون سوءاستفاده کرد. با POST درخواستها ایمنتر میشن 🛠️.
3️⃣ محدود کردن Referer Header
سرورها میتونن Referer header رو چک کنن تا مطمئن بشن که درخواستها از یه منبع قابل اعتماد (مثلاً همون سایت خودت) ارسال شدن نه از یه سایت دیگهای که هکرها توش لینک مخرب گذاشتن. اینجوری درخواستهای مشکوک رد میشن 🚫.
4️⃣ استفاده از Double Submit Cookies
یه راه دیگه برای جلوگیری از CSRF اینه که هم از کوکیها و هم از پارامترها استفاده کنی. توی این روش، یه کوکی حاوی CSRF token ارسال میشه و سرور مطمئن میشه که درخواست معتبره.
5️⃣ لاگاوت خودکار
اگه کاربر برای مدت زیادی هیچ فعالیتی توی سایت نداشت، اونو به صورت خودکار از سیستم خارج کن. اینجوری خطر CSRF کمتر میشه چون سشن کاربر خیلی طولانی باز نمیمونه ⏳.
جمعبندی ✅
فهمیدیم CSRF یه حمله جدیه که اگه درست ازش جلوگیری نشه، میتونه خیلی از اطلاعات حساس رو به خطر بندازه. با استفاده از CSRF Token، چک کردن Referer header و بقیه روشهایی که گفتیم، میتونی از اپلیکیشنهات در برابر این حمله محافظت کنی و امنیتشون رو بالا ببری 💪.
امید وارم مفید بوده باشه :)
@ninja_learn_ir
امروز میخوایم در مورد یکی از حملات معروف تو دنیای وب، یعنی CSRF یا همون Cross-Site Request Forgery صحبت کنیم.
حالا CSRF چیه؟ 🤔
خب CSRF یه جور حملهست که هکر سعی میکنه با سوءاستفاده از سشن (session) کاربر، کارهایی رو به نمایندگی از کاربر انجام بده بدون اینکه اون کاربر خبر داشته باشه 😱. یعنی اگه کاربر توی یه سایت لاگین کرده باشه (مثل یه بانک یا شبکه اجتماعی) و بعد روی لینک یا دکمهای توی یه سایت دیگه کلیک کنه، هکر میتونه درخواستهایی رو به سایت اصلی (که کاربر لاگین کرده) بفرسته و کارهایی مثل انتقال پول یا تغییر اطلاعات کاربر رو انجام بده.
چجوری این حمله کار میکنه؟ 🎯
1️⃣ کاربر لاگین میکنه:
مثلا کاربر وارد حساب بانکی خودش میشه و یه سشن معتبر داره.
2️⃣ هکر یه لینک مخرب میسازه:
یه هکر توی یه سایت دیگه یه لینک یا فرم مخرب میسازه که درخواستهایی رو به حساب کاربر توی سایت بانکی ارسال میکنه.
3️⃣ کاربر روی لینک کلیک میکنه:
وقتی کاربر بدون اینکه خبر داشته باشه روی اون لینک کلیک میکنه، درخواست از طرف سشن کاربر به سرور سایت بانکی ارسال میشه.
4️⃣ هکر درخواستها رو اجرا میکنه:
سرور چون کاربر لاگین کرده، درخواست رو معتبر میدونه و اون کار انجام میشه (مثل انتقال پول، تغییر پسورد و...)
چجوری میشه جلوی CSRF رو گرفت؟ 🛡️
1️⃣ استفاده از CSRF Token
هر وقت کاربر یه فرم رو پر میکنه یا عملیاتی رو انجام میده، سرور یه توکن منحصربهفرد به فرم اضافه میکنه. این توکن رو سرور چک میکنه تا مطمئن بشه درخواست از طرف خود کاربر ارسال شده نه یه سایت دیگه. جنگو، فلکس و خیلی از فریمورکهای معروف به صورت پیشفرض از این مکانیزم پشتیبانی میکنن 🔑.
2️⃣ استفاده از روش POST به جای GET
برای درخواستهایی که نیاز به تایید کاربر دارن (مثل انتقال پول یا تغییر اطلاعات)، از POST استفاده کن، نه GET. توی درخواستهای GET دادهها توی URL قرار میگیرن که راحتتر میشه ازشون سوءاستفاده کرد. با POST درخواستها ایمنتر میشن 🛠️.
3️⃣ محدود کردن Referer Header
سرورها میتونن Referer header رو چک کنن تا مطمئن بشن که درخواستها از یه منبع قابل اعتماد (مثلاً همون سایت خودت) ارسال شدن نه از یه سایت دیگهای که هکرها توش لینک مخرب گذاشتن. اینجوری درخواستهای مشکوک رد میشن 🚫.
4️⃣ استفاده از Double Submit Cookies
یه راه دیگه برای جلوگیری از CSRF اینه که هم از کوکیها و هم از پارامترها استفاده کنی. توی این روش، یه کوکی حاوی CSRF token ارسال میشه و سرور مطمئن میشه که درخواست معتبره.
5️⃣ لاگاوت خودکار
اگه کاربر برای مدت زیادی هیچ فعالیتی توی سایت نداشت، اونو به صورت خودکار از سیستم خارج کن. اینجوری خطر CSRF کمتر میشه چون سشن کاربر خیلی طولانی باز نمیمونه ⏳.
جمعبندی ✅
فهمیدیم CSRF یه حمله جدیه که اگه درست ازش جلوگیری نشه، میتونه خیلی از اطلاعات حساس رو به خطر بندازه. با استفاده از CSRF Token، چک کردن Referer header و بقیه روشهایی که گفتیم، میتونی از اپلیکیشنهات در برابر این حمله محافظت کنی و امنیتشون رو بالا ببری 💪.
#csrf #امنیت
Forwarded from PenetrationTest ( THE ERROR1067 )
thehackings.zip
9.1 MB
#Bug #Csrf
📽 آموزش تصویری ورود به پنل ادمین از طریق باگ csrf همراه با اکسپلویت و دورک #درخاستی
🆔 @PenetrationTest
📽 آموزش تصویری ورود به پنل ادمین از طریق باگ csrf همراه با اکسپلویت و دورک #درخاستی
🆔 @PenetrationTest
Forwarded from Gopher Academy
🔵 عنوان مقاله
A Modern Approach to Preventing CSRF/CORF in Go
🟢 خلاصه مقاله:
این مقاله یک رویکرد مدرن برای مقابله با حملات CSRF/CORF در Go معرفی میکند. بهجای تکیه بر tokens، در Go 1.25 یک middleware به نام http.CrossOriginProtection ارائه شده که با استفاده از سیگنالهای امنیتی مرورگر (مانند Fetch Metadata و سیاستهای SameSite) میان درخواستهای امن هممبداء و درخواستهای مشکوک بینمبداء تفکیک ایجاد میکند. این میانافزار بهطور پیشفرض درخواستهای امن را میپذیرد و درخواستهای تغییردهنده حالت از مبداءهای نامطمئن را مسدود میکند، درحالیکه برای مسیرهای ضروری (مثل OAuth callback یا webhook) قابلیت allowlist دارد و با CORS نیز سازگار است. نتیجه، کاهش پیچیدگی پیادهسازی CSRF، تکیه بر قابلیتهای جدید مرورگرها، و استقرار مرحلهای (از حالت گزارش تا اعمال) است؛ ضمن اینکه جایگزین احراز هویت و کنترل دسترسی نیست، بلکه مکمل آنهاست.
#Go #CSRF #WebSecurity #FetchMetadata #SameSite #Middleware #GoLang #Security
🟣لینک مقاله:
https://golangweekly.com/link/175634/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
A Modern Approach to Preventing CSRF/CORF in Go
🟢 خلاصه مقاله:
این مقاله یک رویکرد مدرن برای مقابله با حملات CSRF/CORF در Go معرفی میکند. بهجای تکیه بر tokens، در Go 1.25 یک middleware به نام http.CrossOriginProtection ارائه شده که با استفاده از سیگنالهای امنیتی مرورگر (مانند Fetch Metadata و سیاستهای SameSite) میان درخواستهای امن هممبداء و درخواستهای مشکوک بینمبداء تفکیک ایجاد میکند. این میانافزار بهطور پیشفرض درخواستهای امن را میپذیرد و درخواستهای تغییردهنده حالت از مبداءهای نامطمئن را مسدود میکند، درحالیکه برای مسیرهای ضروری (مثل OAuth callback یا webhook) قابلیت allowlist دارد و با CORS نیز سازگار است. نتیجه، کاهش پیچیدگی پیادهسازی CSRF، تکیه بر قابلیتهای جدید مرورگرها، و استقرار مرحلهای (از حالت گزارش تا اعمال) است؛ ضمن اینکه جایگزین احراز هویت و کنترل دسترسی نیست، بلکه مکمل آنهاست.
#Go #CSRF #WebSecurity #FetchMetadata #SameSite #Middleware #GoLang #Security
🟣لینک مقاله:
https://golangweekly.com/link/175634/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
www.alexedwards.net
A modern approach to preventing CSRF in Go - Alex Edwards