Common Exploiting Problems
दूरस्थ शोध में एफडीs
जब एक दूरस्थ सर्वर को एक एक्सप्लॉइट भेजा जाता है जो उदाहरण के लिए system('/bin/sh')
को कॉल करता है, तो यह सर्वर प्रक्रिया में निष्पादित होगा, और /bin/sh
stdin से इनपुट की अपेक्षा करेगा (एफडी: 0
) और stdout और stderr में आउटपुट प्रिंट करेगा (एफडी 1
और 2
)। इसलिए हमलावर शैली से शैल से बातचीत नहीं कर सकेगा।
इसे ठीक करने का एक तरीका यह है कि समझा जाए कि जब सर्वर शुरू हुआ तो यहने एफडी नंबर 3
(सुनने के लिए) बनाया था और फिर, आपका कनेक्शन एफडी नंबर 4
में जा रहा है। इसलिए, एफडी 4 में (हमलावर का कनेक्शन वाला) stdin (एफडी 0) और stdout (एफडी 1) को डुप्लिकेट करने के लिए सिस्कॉल dup2
का उपयोग करना संभव है ताकि जब यह निष्पादित हो, तो शैल से संपर्क स्थापित करना संभव हो।
Socat & pty
सोकैट पहले से ही stdin
और stdout
को सॉकेट में ट्रांसफर करता है। हालांकि, pty
मोड DELETE characters को शामिल करता है। इसलिए, अगर आप \x7f
( DELETE
-) भेजते हैं तो यह आपके एक्सप्लॉइट के पिछले वर्णमाला को हटा देगा।
इसे इसे बाईपास करने के लिए एस्केप वर्ण \x16
को किसी भी \x7f
के साथ पहले भेजा जाना चाहिए।
यहाँ आप इस व्यवहार का एक उदाहरण पा सकते हैं।
Last updated