
PHP getimagesize() CVE-2025-14177 - हीप मेमोरी लीक एक्सप्लॉइट जनरेटर पायथन में पूरी तरह से कार्यात्मक एक्सप्लॉइट श्रृंखला
getimagesize() हीप मेमोरी लीककेवल अधिकृत पेनिट्रेशन टेस्टिंग और सुरक्षा अनुसंधान के लिए।
| फ़ील्ड | मान |
|---|---|
| CVE | CVE-2025-14177 |
| CWE | CWE-524 (अप्रारंभित संसाधन का उपयोग) |
| गंभीरता | मध्यम — CVSS 6.3 |
| मूल कारण | php_read_stream_all_chunks() लगातार चंक्स को buffer[0] पर लिखता है, पिछले डेटा को अप्रारंभित हीप मेमोरी से अधिलेखित करता है |
getimagesize("php://filter/.../resource=malicious.jpg", $info)
└─ php_read_stream_all_chunks()
├─ Chunk 1 (8KB) → memcpy(buffer+0, chunk1, 8192)
├─ Chunk 2 (8KB) → memcpy(buffer+0, chunk2, 8192) ← अधिलेखित!
└─ $info['APP1'] = chunk2 + अप्रारंभित हीप गार्बेज
दुर्भावनापूर्ण JPEG एक बड़ा APP1 मार्कर (16KB) ले जाता है ताकि मल्टी-चंक रीड पथ को मजबूर किया जा सके। वापस किया गया APP1 फ़ील्ड हीप मेमोरी को लीक करता है जिसमें क्रेडेंशियल्स, टोकन, सत्र डेटा, या ASLR पॉइंटर्स हो सकते हैं।
[1] RECON getimagesize() आउटपुट (APP1 फ़ील्ड) उजागर करने वाला PHP ऐप खोजें
[2] PREP दुर्भावनापूर्ण malicious.jpg (APP1 = 16KB) बनाएं
[3] EXPLOIT अपलोड करें → getimagesize($file, $info) ट्रिगर करें
[4] EXTRACT लीक हुए हीप डेटा के लिए $info['APP1'] पार्स करें
[5] IMPACT क्रेडेंशियल चोरी / टोकन निष्कर्षण / ASLR बाईपास
python3 CVE-2025-14177.py [मोड]
| मोड | क्रिया |
|---|---|
demo | पूर्ण शोषण प्रदर्शन (डिफ़ॉल्ट) |
gen | दुर्भावनापूर्ण JPEG + PHP शोषण कोड बनाएं |
test | परीक्षण मामला JSON बनाएं |
analyze | JPEG बनाएं + सिम्युलेट करें + लीक का विश्लेषण करें |
flow | हमला प्रवाह आरेख प्रिंट करें |
./exploit_output/)exploit_output/
├── malicious.jpg # निर्मित JPEG पेलोड (APP1 = 16KB)
├── exploit_standalone.php # तैनाती योग्य PHP शोषण
├── exploit_report.json # पूर्ण विश्लेषण रिपोर्ट
└── test_cases.json # 3 परीक्षण परिदृश्य
| मामला | वेक्टर |
|---|---|
| 1 | प्रत्यक्ष अपलोड → getimagesize($_FILES[...], $info) |
| 2 | स्ट्रीम फ़िल्टर + LFI (php://filter/read=.../resource=...) |
| 3 | रिमोट इमेज URL (/preview.php?url=attacker.com/malicious.jpg) |
$info ऐरे में असामान्य मेमोरी पैटर्नphp://filter रैपर के साथ बार-बार getimagesize() कॉलPHP को पैच किए गए संस्करण में अपग्रेड करें। कोई कामचलाऊ समाधान नहीं — पैच आवश्यक है।
php -v # संस्करण सत्यापित करें
यदि अपग्रेड अवरुद्ध है: क्लाइंट को वापस लौटाने से पहले $info से APP1 हटाएँ, या allow_url_fopen में php://filter अक्षम करें।
यह उपकरण केवल अधिकृत सुरक्षा परीक्षण के लिए है। उन सिस्टमों के विरुद्ध अनधिकृत उपयोग जिनके आप स्वामी नहीं हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति नहीं है, अवैध है।