2.0 KiB

One Gadget

{{#include ../../banners/hacktricks-training.md}}

Basic Information

One Gadget आपको system और "/bin/sh" का उपयोग करने के बजाय एक शेल प्राप्त करने की अनुमति देता है। One Gadget libc लाइब्रेरी के अंदर एक ऐसा तरीका खोजेगा जिससे आप केवल एक address का उपयोग करके शेल प्राप्त कर सकें (execve("/bin/sh"))।
हालांकि, सामान्यतः कुछ सीमाएँ होती हैं, सबसे सामान्य और आसानी से टालने योग्य सीमाएँ हैं जैसे कि [rsp+0x30] == NULL। चूंकि आप RSP के अंदर के मानों को नियंत्रित करते हैं, इसलिए आपको कुछ और NULL मान भेजने की आवश्यकता है ताकि सीमा टल सके।

ONE_GADGET = libc.address + 0x4526a
rop2 = base + p64(ONE_GADGET) + "\x00"*100

One Gadget द्वारा निर्दिष्ट पते पर आपको libc लोड होने का आधार पता जोड़ना होगा।

Tip

One Gadget मनमाने लेखन 2 कार्यान्वयन तकनीकों के लिए महान सहायता है और यह ROP श्रृंखलाओं को सरल बना सकता है क्योंकि आपको केवल एक पते को कॉल करने की आवश्यकता होती है (और आवश्यकताओं को पूरा करना होता है)।

{{#include ../../banners/hacktricks-training.md}}