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