
CVE-2018-11686 - FlexPaper PHP प्रकाशन सेवा RCE <= 2.3.6
CVE-2018-11686 - FlexPaper PHP Publish Service RCE <= 2.3.6

Red Timmy Security द्वारा खोजा गया
तकनीकी विश्लेषण:
सुरक्षा सलाह:
FlexPaper (PHP) की फ़ाइल change_config.php यह जाँच नहीं करती कि प्रशासक उचित रूप से प्रमाणित है या नहीं, जिससे हमलावर सर्वर पर मनमानी फ़ाइलें हटा सकता है:

unlink फ़ंक्शन का उपयोग करके सर्वर पर फ़ाइलें हटाने के लिए कौन सा रास्ता अपनाता हैहमलावर इस तरह का अनुरोध बना सकता है और अपनी पसंद के फ़ोल्डर से फ़ाइलें हटा सकता है:
POST /flexpaper/php/change_config.php HTTP/1.1
Host: 127.0.0.1:8888
[...]
SAVE_CONFIG=1&SWF_Directory=config/
इस अनुरोध से, हमलावर config निर्देशिका की सभी फ़ाइलें हटा देता है।
चूँकि config/ फ़ोल्डर की सभी फ़ाइलें हटा दी गई हैं, FlexPaper सोचेगा कि एप्लिकेशन कभी प्रारंभ नहीं हुआ:

इसलिए हमलावर FlexPaper को फिर से सेटअप करने में सक्षम है। लेकिन क्यों?
setup.php के अंदर एक फंक्शन है जिसे pdf2swfEnabled कहा जाता है जो PHP में exec कमांड का उपयोग करता है, जिसमें उपयोगकर्ता द्वारा POST में पास किया गया पैरामीटर होता है। चूँकि यह FlexPaper का आरंभीकरण है (बिंदु 2 देखें), कोई प्रमाणीकरण नहीं है।

हमलावर इस तरह का पेलोड बना सकता है: ?step=4&PDF2SWF_PATH=id; जिसके परिणामस्वरूप exec(id; --version 2>&1) होता है।
हमलावर कमांड के आउटपुट को config फ़ोल्डर के अंदर एक फ़ाइल में रीडायरेक्ट कर सकता है और आउटपुट पढ़ने के लिए GET अनुरोध कर सकता है:

change_config.php की शुरुआत में प्रमाणीकरण की जाँच जोड़ दी गई है
