diff --git a/resources/views/hacker/cors.blade.php b/resources/views/hacker/cors.blade.php new file mode 100644 index 0000000..cb83e2f --- /dev/null +++ b/resources/views/hacker/cors.blade.php @@ -0,0 +1,105 @@ + + + + + + CORS Exploitation Lab + + + +
+

+ Cross-Origin Resource Sharing (CORS) Lab +

+ +

+ Attempting to read data from https://webapp.kr-rezvan.ir/api/secret-data + which does NOT have CORS headers allowing this domain. +

+ +
+ +
+

Test 1: Standard Fetch

+

Standard cross-origin request. Browser will enforce Same-Origin Policy.

+ +
+ + +
+

Test 2: No-CORS Mode

+

Forces request using mode: 'no-cors'. Network request happens, but JS cannot see data.

+ +
+
+ + +
+
+ Browser Console Output + +
+

+        
+
+ + + + \ No newline at end of file diff --git a/resources/views/user/partners.blade.php b/resources/views/user/partners.blade.php index fb78213..1a065ca 100644 --- a/resources/views/user/partners.blade.php +++ b/resources/views/user/partners.blade.php @@ -11,8 +11,8 @@

Our External Partners

Click the links below to visit our partners. Notice the tab behavior.

diff --git a/routes/web.php b/routes/web.php index c4ff173..ab14546 100644 --- a/routes/web.php +++ b/routes/web.php @@ -58,6 +58,11 @@ Route::get('/fake-login', function () { return view('hacker.fake-login'); })->name('hacker.fake-login'); + + // CORS Test Exploit Page + Route::get('/cors-test', function () { + return view('hacker.cors'); + })->name('hacker.cors'); }); @@ -95,6 +100,15 @@ Route::get('/partners', function () { return view('user.partners'); })->name('user.partners'); + + // Dummy API endpoint simulating sensitive user data (No CORS headers) + Route::get('/api/secret-data', function () { + return response()->json([ + 'user' => 'admin_rezvan', + 'balance' => '50,000 USD', + 'credit_card' => '****-****-****-1234' + ]); + })->name('user.api.secret'); // ----- بخش‌های محافظت شده با سشن ----- Route::middleware(['web', 'auth'])->group(function () {