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}}
 |