
CVE-2018-15133 Laravel APP_KEY unserialization भेद्यता के लिए Docker-आधारित PoC वातावरण। Laravel <= 5.7.27 पर दुर्भावनापूर्ण पेलोड के माध्यम से रिमोट कोड निष्पादन को सत्यापित करने के लिए एक्सप्लॉइट स्क्रिप्ट शामिल है।
व्हाइटहैट स्कूल तीसरे बैच, कक्षा 28, ली येबिन वर्चुअलाइज़ेशन - कमजोर डॉकर कॉन्फ़िगरेशन https://github.com/yeahhbean/Laravel-CVE-2018-15133
यह प्रोजेक्ट CVE-2018-15133 भेद्यता (Laravel APP_KEY डिसीरियलाइज़ेशन भेद्यता) को सत्यापित करने (PoC) के लिए कॉन्फ़िगर किया गया Docker-आधारित वातावरण है.
केवल Dockerfile और docker-compose.yaml से कमजोर वातावरण तैयार किया गया और exploit के माध्यम से PoC सही ढंग से होने की पुष्टि की गई.
Dockerfile और docker-compose.yaml के माध्यम से कमजोर वातावरण स्वचालित रूप से इंस्टॉल और चालू हो जाता है.
| फ़ाइल नाम | विवरण |
|---|
| Dockerfile | PHP + Composer + Laravel 5.7 इंस्टॉल करने के लिए |
| docker-compose.yaml | सभी सेवाओं (Nginx, PHP, MySQL) का कॉन्फ़िगरेशन |
| nginx/default.conf | Nginx रिवर्स प्रॉक्सी कॉन्फ़िगरेशन फ़ाइल |
| exploit.py | APP_KEY-आधारित PoC कोड |
डायरेक्टरी संरचना

डायरेक्टरी में जाएँ cd C:\Users\Admin\Desktop\WHS\CVE

डॉकर इमेज बिल्ड docker-compose build

डॉकर कंटेनर चलाएँ docker-compose up -d

कंटेनर से कनेक्ट करें docker exec -it laravel_app bash

कंटेनर से बाहर निकलें और PoC चलाएँ exit python exploit.py

ब्राउज़र एक्सेस के लिए वेब ब्राउज़र खोलें और http://localhost:8080 पर जाएँ

# 1. सोर्स डाउनलोड करें और डायरेक्टरी में जाएँ
cd [प्रोजेक्ट डायरेक्टरी]
# 2. Docker इमेज बिल्ड करें
docker-compose build
# 3. Docker कंटेनर चलाएँ
docker-compose up -d
---
सफलतापूर्वक चलने पर, आप http://localhost:8080 पर Laravel का डिफ़ॉल्ट पेज देख सकते हैं.
---
## PoC (भेद्यता सत्यापन)
# 1. कंटेनर के अंदर Laravel APP_KEY निकालें
docker exec -it laravel_app bash
cat /var/www/html/laravel/.env | grep APP_KEY
# 2. निकाले गए APP_KEY का उपयोग करके exploit.py में इनपुट दें और चलाएँ
python exploit.py
# 3. यदि Laravel पेज का HTML सामान्य रूप से लौटता है, तो इसका अर्थ है कि पेलोड APP_KEY के माध्यम से सफलतापूर्वक भेजा गया है.
---
## सावधानियाँ
- Laravel 5.7.28 के बाद के संस्करणों में यह भेद्यता पैच हो चुकी है, इसलिए यह अब काम नहीं करता.
- PoC कोड(exploit.py) सार्वजनिक रूप से प्रकाशित हमले के तरीकों के संदर्भ में लिखा गया है.
---
## संदर्भ
- https://nvd.nist.gov/vuln/detail/cve-2018-15133
- https://laravel.com/docs/5.7/releases#laravel-5.7.27