route('login'); } // ========================================== // راه‌اندازی آزمایشگاه // ========================================== public function setupLab() { User::firstOrCreate( ['email' => 'victim@webapp.kr-rezvan.ir'], [ 'name' => 'کاربر قربانی', 'password' => Hash::make('12345678') ] ); if(User::where('email', 'hacker@eitebar.ir')->exists()) { User::where('email', 'hacker@eitebar.ir')->first()->delete(); } return "

آزمایشگاه آماده شد! 🧪

کاربر هدف (victim@webapp.kr-rezvan.ir) با رمز عبور (12345678) در دیتابیس ساخته شد.

رفتن به صفحه لاگین
"; } // ========================================== // نمایش فرم ورود // ========================================== public function showLogin() { return view('user.login'); } // ========================================== // پردازش ورود کاربر // ========================================== public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { return redirect()->route('user.profile'); } return back()->withErrors(['message' => 'اطلاعات ورود صحیح نیست.']); } // ========================================== // خروج کاربر // ========================================== public function logout() { Auth::logout(); return redirect()->route('login'); } // ========================================== // نمایش پروفایل کاربری // ========================================== public function profile() { return view('user.profile', ['user' => Auth::user()]); } // ========================================== // متد آسیب‌پذیر تغییر ایمیل (CSRF Target) // ========================================== public function updateEmail(Request $request) { // بررسی اعتبار کوکی نشست (آیا SameSite اجازه ارسال کوکی را داده است؟) if (!Auth::check()) { return response()->json([ 'error' => 'شما لاگین نیستید. مرورگر کوکی نشست را بلاک کرده است! (محافظت SameSite عمل کرد)' ], 401); } $user = Auth::user(); $oldEmail = $user->email; // اعمال تغییرات مخرب در دیتابیس $user->email = $request->input('email'); $user->save(); return response()->json([ 'status' => 'success', 'message' => 'حمله موفق! ایمیل کاربر در دیتابیس تغییر یافت.', 'old_email' => $oldEmail, 'new_email' => $user->email ]); } }