mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
21 lines
2.0 KiB
Markdown
21 lines
2.0 KiB
Markdown
# One Gadget
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
## Basic Information
|
|
|
|
[**One Gadget**](https://github.com/david942j/one_gadget) आपको **system** और **"/bin/sh"** का उपयोग करने के बजाय एक शेल प्राप्त करने की अनुमति देता है। **One Gadget** libc लाइब्रेरी के अंदर एक ऐसा तरीका खोजेगा जिससे आप केवल एक **address** का उपयोग करके शेल प्राप्त कर सकें (`execve("/bin/sh")`)।\
|
|
हालांकि, सामान्यतः कुछ सीमाएँ होती हैं, सबसे सामान्य और आसानी से टालने योग्य सीमाएँ हैं जैसे कि `[rsp+0x30] == NULL`। चूंकि आप **RSP** के अंदर के मानों को नियंत्रित करते हैं, इसलिए आपको कुछ और NULL मान भेजने की आवश्यकता है ताकि सीमा टल सके।
|
|
|
|
.png>)
|
|
```python
|
|
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}}
|