
Aiohttp =< 3.9.1 में LFI/Path Traversal भेद्यता के लिए प्रूफ-ऑफ-कॉन्सेप्ट
Aiohttp =< 3.9.1 में LFI/Path Traversal कमजोरी के लिए प्रूफ-ऑफ-कॉन्सेप्ट
[!IMPORTANT] यह स्क्रिप्ट केवल शैक्षिक उद्देश्यों के लिए है।
किसी भी अवैध उपयोग की सख्त मनाही है।
$ git clone https://github.com/wizarddos/CVE-2024-23334
$ cd CVE-2024-23334
$ python3 exploit.py -u [url] -f [file] -d [static directory]
[!Note] URL और स्टैटिक डायरेक्टरी में स्लैश का मिलान करना याद रखें - यदि आप
http://127.0.0.1/टाइप करते हैं तो बिना स्लैश के डायरेक्टरी पास करें (जैसेstatic) और विपरीत (बिना स्लैश के URL और उसके साथ डायरेक्टरी)
कमजोरी स्वयं इस बात में निहित है कि aiohttp स्टैटिक संसाधनों के लिए अनुरोधों को कैसे संभालता है
यदि हम इस प्रकार कोड लिखते हैं
app.router.add_routes([
web.static("/static", "static/", follow_symlinks=True)
])
follow_symlinks=True इसे LFI के प्रति संवेदनशील बनाता है।
स्टैटिक संसाधनों का उपयोग करने के लिए, आपको इसकी रूट डायरेक्टरी निर्दिष्ट करनी होगी
follow_symlinks विकल्प aiohttp को रूट डायरेक्टरी के बाहर सांकेतिक लिंक का अनुसरण करने के लिए कहता है, फिर भी यह जांच नहीं करता कि लिंक स्वयं रूट डायरेक्टरी में है या नहीं।
इसलिए भले ही कहा गया "सिम्लिंक" एक लिंक भी न हो, aiohttp उस फ़ाइल को पढ़ता है और उसका मान लौटाता है
स्रोत https://github.com/aio-libs/aiohttp/security/advisories/GHSA-5h86-8mv2-jq9f