Add
This commit is contained in:
parent
cacf880fdc
commit
054eaacfe8
|
|
@ -1,7 +1,9 @@
|
||||||
services:
|
services:
|
||||||
# دیتابیس MariaDB
|
# ----------------------------------------
|
||||||
|
# MariaDB Database
|
||||||
|
# ----------------------------------------
|
||||||
mariadb:
|
mariadb:
|
||||||
image: mariadb:10.6
|
image: mariadb:10.11
|
||||||
container_name: sec_lab_db
|
container_name: sec_lab_db
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: root_password
|
MYSQL_ROOT_PASSWORD: root_password
|
||||||
|
|
@ -14,7 +16,9 @@ services:
|
||||||
- lab_net
|
- lab_net
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
|
# ----------------------------------------
|
||||||
# وبسرور اپلیکیشن اصلی (Victim)
|
# وبسرور اپلیکیشن اصلی (Victim)
|
||||||
|
# ----------------------------------------
|
||||||
victim-nginx:
|
victim-nginx:
|
||||||
image: nginx:stable-alpine
|
image: nginx:stable-alpine
|
||||||
container_name: sec_lab_victim_nginx
|
container_name: sec_lab_victim_nginx
|
||||||
|
|
@ -29,18 +33,14 @@ services:
|
||||||
- lab_net
|
- lab_net
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
# هسته پردازشی PHP
|
# ----------------------------------------
|
||||||
|
# هسته پردازشی PHP (مشترک بین دو سایت)
|
||||||
|
# ----------------------------------------
|
||||||
php:
|
php:
|
||||||
container_name: sec_lab_php
|
container_name: sec_lab_php
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: ./docker/php/Dockerfile
|
dockerfile: ./docker/php/Dockerfile
|
||||||
args:
|
|
||||||
- COMPOSER_REGISTRY=http://192.168.1.201:8081/repository/composer-runflare/
|
|
||||||
- LINUX_REGISTRY=http://192.168.1.201:8081/repository/debian-arvan
|
|
||||||
- SECURITY_REGISTRY=http://192.168.1.201:8081/repository/debian-arvan-security
|
|
||||||
- NPM_REGISTRY=http://192.168.1.201:8081/repository/npm-group/
|
|
||||||
- NODE_REGISTRY=http://192.168.1.201:8081/repository/node-dist
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./:/var/www/html:rw
|
- ./:/var/www/html:rw
|
||||||
depends_on:
|
depends_on:
|
||||||
|
|
@ -49,14 +49,19 @@ services:
|
||||||
- lab_net
|
- lab_net
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
# اپلیکیشن مهاجم (Hacker)
|
# ----------------------------------------
|
||||||
|
# وبسرور اپلیکیشن مهاجم (Hacker)
|
||||||
|
# ----------------------------------------
|
||||||
attacker-app:
|
attacker-app:
|
||||||
image: nginx:stable-alpine
|
image: nginx:stable-alpine
|
||||||
container_name: sec_lab_attacker_nginx
|
container_name: sec_lab_attacker_nginx
|
||||||
ports:
|
ports:
|
||||||
- "58691:80"
|
- "58691:80"
|
||||||
volumes:
|
volumes:
|
||||||
- ./hacker_site:/usr/share/nginx/html:ro
|
- ./:/var/www/html:ro # حالا هکر هم به کدهای لاراول دسترسی دارد
|
||||||
|
- ./docker/nginx/hacker.conf:/etc/nginx/conf.d/default.conf:ro # کانفیگ اختصاصی هکر
|
||||||
|
depends_on:
|
||||||
|
- php
|
||||||
networks:
|
networks:
|
||||||
- lab_net
|
- lab_net
|
||||||
restart: always
|
restart: always
|
||||||
|
|
|
||||||
17
docker/nginx/hacker.conf
Normal file
17
docker/nginx/hacker.conf
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
# این انجینیکس فقط به درخواستهای دامنه هکر جواب میدهد
|
||||||
|
server_name hackerapp.eitebar.ir;
|
||||||
|
root /var/www/html/public;
|
||||||
|
index index.php;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ /index.php?$query_string;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ \.php$ {
|
||||||
|
fastcgi_pass php:9000;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,55 +1,53 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\Http\Controllers\VulnerabilityController;
|
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
|
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
|
||||||
use App\Http\Controllers\UserController;
|
use App\Http\Controllers\UserController;
|
||||||
|
use App\Http\Controllers\VulnerabilityController;
|
||||||
|
|
||||||
// ==========================================
|
/*
|
||||||
// صفحه اصلی
|
|--------------------------------------------------------------------------
|
||||||
// ==========================================
|
| ☠️ دامنه مهاجم (Attacker App) : hackerapp.eitebar.ir
|
||||||
Route::get('/', [UserController::class, 'home'])->name('home');
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
Route::domain('hackerapp.eitebar.ir')->group(function () {
|
||||||
|
|
||||||
|
// داشبورد اصلی هکر برای مشاهده دیتای سرقت شده
|
||||||
|
Route::get('/', [VulnerabilityController::class, 'viewLogs'])->name('hacker.home');
|
||||||
|
Route::get('/hacker-panel', [VulnerabilityController::class, 'viewLogs'])->name('vulnerability.logs');
|
||||||
|
|
||||||
// ==========================================
|
// روت مخفی هکر برای دریافت کوکیهای سرقت شده (Stealer / C2 Server)
|
||||||
// ۱. راهاندازی سریع آزمایشگاه (مرحله اول)
|
Route::get('/stealer', [VulnerabilityController::class, 'logStolenData'])->name('vulnerability.stealer');
|
||||||
// ==========================================
|
|
||||||
Route::get('/setup-lab', [UserController::class, 'setupLab'])->name('setup.lab');
|
|
||||||
|
|
||||||
|
|
||||||
// ==========================================
|
|
||||||
// ۲. سیستم احراز هویت (Authentication)
|
|
||||||
// ==========================================
|
|
||||||
Route::get('/login', [UserController::class, 'showLogin'])->name('login');
|
|
||||||
Route::post('/login', [UserController::class, 'login'])->name('login.submit');
|
|
||||||
// نکته امنیتی: خروج در حالت استاندارد باید POST باشد اما برای راحتی تست در لابراتوار GET قرار دادیم
|
|
||||||
Route::get('/logout', [UserController::class, 'logout'])->name('logout');
|
|
||||||
|
|
||||||
|
|
||||||
// ==========================================
|
|
||||||
// ۳. پنل کاربری (محافظت شده با نشست)
|
|
||||||
// ==========================================
|
|
||||||
Route::middleware(['web', 'auth'])->group(function () {
|
|
||||||
Route::get('/profile', [UserController::class, 'profile'])->name('user.profile');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// ==========================================
|
/*
|
||||||
// ۴. هدف حمله CSRF (آسیبپذیر)
|
|--------------------------------------------------------------------------
|
||||||
// ==========================================
|
| 🛡️ دامنه قربانی (Victim App) : webapp.kr-rezvan.ir
|
||||||
Route::post('/update-email', [UserController::class, 'updateEmail'])
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
Route::domain('webapp.kr-rezvan.ir')->group(function () {
|
||||||
|
|
||||||
|
Route::get('/', [UserController::class, 'home'])->name('home');
|
||||||
|
Route::get('/setup-lab', [UserController::class, 'setupLab'])->name('setup.lab');
|
||||||
|
|
||||||
|
// سیستم احراز هویت
|
||||||
|
Route::get('/login', [UserController::class, 'showLogin'])->name('login');
|
||||||
|
Route::post('/login', [UserController::class, 'login'])->name('login.submit');
|
||||||
|
Route::get('/logout', [UserController::class, 'logout'])->name('logout');
|
||||||
|
|
||||||
|
// پنل کاربری (محافظت شده با نشست)
|
||||||
|
Route::middleware(['web', 'auth'])->group(function () {
|
||||||
|
Route::get('/profile', [UserController::class, 'profile'])->name('user.profile');
|
||||||
|
});
|
||||||
|
|
||||||
|
// هدف حمله CSRF
|
||||||
|
Route::post('/update-email', [UserController::class, 'updateEmail'])
|
||||||
->withoutMiddleware([VerifyCsrfToken::class])
|
->withoutMiddleware([VerifyCsrfToken::class])
|
||||||
->name('vulnerable.update.email');
|
->name('vulnerable.update.email');
|
||||||
|
|
||||||
|
// صفحه آزمایشگاه XSS
|
||||||
|
Route::get('/xss', [VulnerabilityController::class, 'xss'])->name('vulnerability.xss');
|
||||||
|
|
||||||
// ==========================================
|
});
|
||||||
// ۵. آزمایشگاه XSS و سرقت کوکی (Hacker Panel)
|
|
||||||
// ==========================================
|
|
||||||
// صفحه اصلی آزمایشگاه XSS
|
|
||||||
Route::get('/xss', [VulnerabilityController::class, 'xss'])->name('vulnerability.xss');
|
|
||||||
|
|
||||||
// روت مخفی هکر برای دریافت کوکیهای سرقت شده (Stealer)
|
|
||||||
Route::get('/stealer', [VulnerabilityController::class, 'logStolenData'])->name('vulnerability.stealer');
|
|
||||||
|
|
||||||
// داشبورد هکر برای مشاهده دیتای سرقت شده
|
|
||||||
Route::get('/hacker-panel', [VulnerabilityController::class, 'viewLogs'])->name('vulnerability.logs');
|
|
||||||
Loading…
Reference in New Issue
Block a user