LFI2RCE Via compress.zlib + PHP_STREAM_PREFER_STUDIO + Path Disclosure
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
compress.zlib://
और PHP_STREAM_PREFER_STDIO
compress.zlib://
प्रोटोकॉल का उपयोग करके खोला गया एक फ़ाइल, PHP_STREAM_PREFER_STDIO
ध्वज के साथ, बाद में कनेक्शन पर आने वाले डेटा को उसी फ़ाइल में लिखना जारी रख सकता है।
इसका मतलब है कि एक कॉल जैसे:
एक अनुरोध भेजा जाएगा जो http://attacker.com/file के लिए होगा, फिर सर्वर इस अनुरोध का उत्तर एक मान्य HTTP प्रतिक्रिया के साथ दे सकता है, कनेक्शन को खुला रख सकता है, और कुछ समय बाद अतिरिक्त डेटा भेज सकता है जो फ़ाइल में भी लिखा जाएगा।
आप इस जानकारी को php-src कोड के इस भाग में main/streams/cast.c में देख सकते हैं:
यह CTF पिछले ट्रिक का उपयोग करके हल किया गया था।
हमलावर शिकार सर्वर को हमलावर के सर्वर से एक फ़ाइल पढ़ने के लिए एक कनेक्शन खोलने के लिए मजबूर करेगा compress.zlib
प्रोटोकॉल का उपयोग करके।
जब यह कनेक्शन मौजूद है, हमलावर अस्थायी फ़ाइल के पथ को बाहर निकाल देगा (यह सर्वर द्वारा लीक किया गया है)।
जब कनेक्शन अभी भी खुला है, हमलावर उस अस्थायी फ़ाइल को लोड करने के लिए LFI का लाभ उठाएगा जिसे वह नियंत्रित करता है।
हालांकि, वेब सर्वर में एक जांच है जो <?
वाले फ़ाइलों को लोड करने से रोकती है। इसलिए, हमलावर रेस कंडीशन का दुरुपयोग करेगा। उस कनेक्शन में जो अभी भी खुला है, हमलावर PHP पेलोड भेजेगा AFTER वेब सर्वर ने जांच की कि फ़ाइल में निषिद्ध वर्ण हैं लेकिन इससे पहले कि यह इसकी सामग्री लोड करे।
अधिक जानकारी के लिए रेस कंडीशन और CTF का विवरण देखें https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)