From 6712012a664929e736e598e8056f560a06e622a1 Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 19 Aug 2025 21:11:56 +0000 Subject: [PATCH] Translated ['src/binary-exploitation/rop-return-oriented-programing/srop --- .../srop-arm64.md | 6 ++-- .../iframes-in-xss-and-csp.md | 30 +++++++++---------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/srop-arm64.md b/src/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/srop-arm64.md index d38c18a7b..0cfa56374 100644 --- a/src/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/srop-arm64.md +++ b/src/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/srop-arm64.md @@ -74,7 +74,7 @@ echo 0 | sudo tee /proc/sys/kernel/randomize_va_space # Disable ASLR ``` ## Exploit -यह एक्सप्लॉइट bof का उपयोग **`sigreturn`** को कॉल करने के लिए करता है और स्टैक को **`execve`** को `/bin/sh` के पॉइंटर के साथ कॉल करने के लिए तैयार करता है। +यह एक्सप्लॉइट bof का दुरुपयोग करता है ताकि **`sigreturn`** को कॉल पर वापस लौट सके और स्टैक को **`execve`** को `/bin/sh` के पॉइंटर के साथ कॉल करने के लिए तैयार कर सके। ```python from pwn import * @@ -191,7 +191,7 @@ rp++ -f ./binary --unique -r | grep "mov\s\+x8, #0x8b" # 0x8b = __NR_rt_sigret ``` दोनों उपकरण **AArch64** एन्कोडिंग को समझते हैं और संभावित `mov x8, 0x8b ; svc #0` अनुक्रमों को सूचीबद्ध करेंगे जिन्हें *SROP गेजेट* के रूप में उपयोग किया जा सकता है। -> नोट: जब बाइनरी को **BTI** के साथ संकलित किया जाता है, तो हर मान्य अप्रत्यक्ष शाखा लक्ष्य का पहला निर्देश `bti c` होता है। लिंक द्वारा रखे गए `sigreturn` ट्रैम्पोलिन पहले से ही सही BTI लैंडिंग पैड शामिल करते हैं, इसलिए गेजेट अप्रिविलेज्ड कोड से उपयोगी रहता है। +> नोट: जब बाइनरी को **BTI** के साथ संकलित किया जाता है, तो हर मान्य अप्रत्यक्ष शाखा लक्ष्य का पहला निर्देश `bti c` होता है। लिंक द्वारा रखे गए `sigreturn` ट्रैम्पोलिन पहले से ही सही BTI लैंडिंग पैड शामिल करते हैं, इसलिए गेजेट अप्रिविलेज्ड कोड से उपयोग करने योग्य रहता है। ## SROP को ROP के साथ जोड़ना (pivot `mprotect` के माध्यम से) @@ -215,7 +215,7 @@ Linux 5.16 ने उपयोगकर्ता स्पेस सिग्न * `struct rt_sigframe` में आरक्षित शब्द शून्य होना चाहिए। * *extra_context* रिकॉर्ड में हर पॉइंटर संरेखित है और उपयोगकर्ता एड्रेस स्पेस के अंदर इंगित करता है। -`pwntools>=4.10` स्वचालित रूप से अनुपालन फ्रेम बनाता है, लेकिन यदि आप उन्हें मैन्युअल रूप से बनाते हैं तो सुनिश्चित करें कि *reserved* को शून्य-प्रारंभ करें और SVE रिकॉर्ड को छोड़ दें जब तक कि आपको वास्तव में इसकी आवश्यकता न हो—अन्यथा `rt_sigreturn` `SIGSEGV` देगा बजाय इसके कि लौटे। +`pwntools>=4.10` स्वचालित रूप से अनुपालन फ्रेम बनाता है, लेकिन यदि आप उन्हें मैन्युअल रूप से बनाते हैं तो सुनिश्चित करें कि *reserved* को शून्य-प्रारंभ करें और SVE रिकॉर्ड को छोड़ दें जब तक कि आपको वास्तव में इसकी आवश्यकता न हो—अन्यथा `rt_sigreturn` `SIGSEGV` भेजेगा बजाय इसके कि लौटे। मुख्यधारा Android 14 और Fedora 38 से शुरू होकर, उपयोगकर्ता भूमि को **PAC** (*Pointer Authentication*) और **BTI** डिफ़ॉल्ट रूप से सक्षम किया गया है (`-mbranch-protection=standard`)। *SROP* स्वयं अप्रभावित है क्योंकि कर्नेल सीधे निर्मित फ्रेम से `PC` को ओवरराइट करता है, स्टैक पर सहेजे गए प्रमाणित LR को बायपास करता है; हालाँकि, कोई भी **पश्चात ROP चेन** जो अप्रत्यक्ष शाखाएँ करती है, उसे BTI- सक्षम निर्देशों या PACed पतों पर कूदना चाहिए। जब गैजेट्स का चयन करते समय इसे ध्यान में रखें। diff --git a/src/pentesting-web/xss-cross-site-scripting/iframes-in-xss-and-csp.md b/src/pentesting-web/xss-cross-site-scripting/iframes-in-xss-and-csp.md index 3d99903c6..e0e753fc3 100644 --- a/src/pentesting-web/xss-cross-site-scripting/iframes-in-xss-and-csp.md +++ b/src/pentesting-web/xss-cross-site-scripting/iframes-in-xss-and-csp.md @@ -7,8 +7,8 @@ एक iframed पृष्ठ की सामग्री को इंगित करने के 3 तरीके हैं: - `src` के माध्यम से एक URL को इंगित करना (URL क्रॉस ओरिजिन या समान ओरिजिन हो सकता है) -- `src` के माध्यम से `data:` प्रोटोकॉल का उपयोग करके सामग्री को इंगित करना -- `srcdoc` के माध्यम से सामग्री को इंगित करना +- `data:` प्रोटोकॉल का उपयोग करके सामग्री को इंगित करने के लिए `src` के माध्यम से +- सामग्री को इंगित करने के लिए `srcdoc` के माध्यम से **Parent & Child vars तक पहुँच** ```html @@ -45,7 +45,7 @@ var secret = "child secret" alert(parent.secret) ``` -यदि आप पिछले html को http सर्वर (जैसे `python3 -m http.server`) के माध्यम से एक्सेस करते हैं, तो आप देखेंगे कि सभी स्क्रिप्ट्स निष्पादित होंगी (क्योंकि इसे रोकने के लिए कोई CSP नहीं है)।, **माता-पिता किसी भी iframe के अंदर `secret` var तक पहुँच नहीं पाएंगे** और **केवल if2 और if3 (जिन्हें समान-साइट माना जाता है) ही मूल विंडो में secret तक पहुँच सकते हैं।**\ +यदि आप पिछले HTML को HTTP सर्वर (जैसे `python3 -m http.server`) के माध्यम से एक्सेस करते हैं, तो आप देखेंगे कि सभी स्क्रिप्ट्स निष्पादित होंगी (क्योंकि इसे रोकने के लिए कोई CSP नहीं है)।, **माता-पिता किसी भी iframe के अंदर `secret` var तक पहुँच नहीं पाएंगे** और **केवल iframes if2 और if3 (जिन्हें समान-साइट माना जाता है) ही मूल विंडो में secret तक पहुँच सकते हैं।**\ ध्यान दें कि if4 को `null` उत्पत्ति माना जाता है। ### CSP के साथ Iframes @@ -77,13 +77,13 @@ src="data:text/html;charset=utf-8,%3Cscript%3Evar%20secret='if4%20secret!';alert ``` ध्यान दें कि **पिछला CSP केवल इनलाइन स्क्रिप्ट के निष्पादन की अनुमति देता है**।\ -हालांकि, **केवल `if1` और `if2` स्क्रिप्ट्स निष्पादित होने जा रही हैं लेकिन केवल `if1` ही पैरेंट सीक्रेट तक पहुंच सकेगा**। +हालांकि, **केवल `if1` और `if2` स्क्रिप्ट्स निष्पादित होने जा रही हैं लेकिन केवल `if1` ही पैरेंट सीक्रेट तक पहुँच सकेगा**। ![](<../../images/image (372).png>) इसलिए, यह संभव है कि **यदि आप सर्वर पर एक JS फ़ाइल अपलोड कर सकते हैं और इसे iframe के माध्यम से लोड कर सकते हैं, तो CSP को बायपास किया जा सकता है, भले ही `script-src 'none'` हो**। यह **संभावित रूप से एक ही साइट JSONP एंडपॉइंट का दुरुपयोग करके भी किया जा सकता है**। -आप इस परिदृश्य के साथ इसका परीक्षण कर सकते हैं जहां एक कुकी चुराई जाती है, भले ही `script-src 'none'` हो। बस एप्लिकेशन चलाएं और इसे अपने ब्राउज़र के साथ एक्सेस करें: +आप इस परिदृश्य के साथ इसका परीक्षण कर सकते हैं जहाँ एक कुकी चुराई जाती है, भले ही `script-src 'none'` हो। बस एप्लिकेशन चलाएँ और इसे अपने ब्राउज़र के साथ एक्सेस करें: ```python import flask from flask import Flask @@ -120,7 +120,7 @@ victim.location = 'about:blank'; console.log(victim.name); // → leaked value ``` -* **Nonce theft via same-origin iframe (2024)** – CSP nonces DOM से हटा नहीं जाते; वे केवल DevTools में छिपे होते हैं। यदि एक हमलावर *same-origin* iframe इंजेक्ट कर सकता है (उदाहरण के लिए साइट पर HTML अपलोड करके) तो चाइल्ड फ्रेम सरलता से `document.querySelector('[nonce]').nonce` को क्वेरी कर सकता है और नई `