
एक हल्का Blind XSS (Cross-Site Scripting) कलेक्टर और पेलोड सर्वर जो Flask से बनाया गया है
Flask के साथ बनाया गया एक हल्का Blind XSS (Cross-Site Scripting) कलेक्टर और पेलोड सर्वर। यह एक JavaScript पेलोड सर्व करता है जो शिकार के ब्राउज़र डेटा (cookies, localStorage, DOM snippets, आदि) को कैप्चर करता है और इसे HTTP Basic Auth द्वारा सुरक्षित SQLite-आधारित डैशबोर्ड पर भेजता है।
/p.js sendBeacon या fetch का उपयोग करके एक स्व-निहित JS पेलोड सर्व करता है/c (JSON/FormData) और GET /c.gif (CSP-अनुकूल पिक्सेल बीकन)/events कैप्चर किए गए इवेंट की सूची दिखाता है, /events/<id>/view पूर्ण विवरण दिखाता है/payloads 14 XSS पेलोड वेरिएंट और एक कस्टम JS एडिटर प्रदान करता हैADMIN_USER / ADMIN_PASSWORD द्वारा सुरक्षितbxss.db हटाने पर यह नए सिरे से बन जाता हैDockerfile और docker-compose.yml शामिल हैं# Set credentials
echo "ADMIN_USER=admin" > .env
echo "ADMIN_PASSWORD=your-admin-password" >> .env
# Build and run
docker compose up -d --build
डैशबोर्ड: http://127.0.0.1:8089/events (ब्राउज़र Basic Auth के लिए प्रॉम्प्ट करेगा)
pip install -r requirements.txt
export ADMIN_USER="admin"
export ADMIN_PASSWORD="your-admin-password"
gunicorn -b 127.0.0.1:8080 --workers 2 --threads 4 wsgi:app
/payloads पर जाएँ (प्रमाणित होने के बाद)।/events पर देखें।| Method | Path | Description |
|---|---|---|
| GET | /p.js | XSS पेलोड JavaScript |
| POST | /c | पेलोड से JSON/FormData प्राप्त करता है |
| GET | /c.gif | पिक्सेल बीकन (CSP-अनुकूल) |
| Method | Path | Description |
|---|---|---|
| GET | /events | अंतिम 500 इवेंट |
| GET | /events/<id> | इवेंट विवरण JSON के रूप में |
| GET | /events/<id>/view | इवेंट विवरण HTML के रूप में |
| GET/POST | /payloads | पेलोड जनरेटर + कस्टम JS एडिटर |
| Method | Path | Description |
|---|---|---|
| GET | /_healthz | हेल्थ चेक |
| Variable | Default | Description |
|---|---|---|
ADMIN_USER | admin | डैशबोर्ड उपयोगकर्ता नाम |
ADMIN_PASSWORD | changeme | डैशबोर्ड पासवर्ड |
DB_PATH | ./bxss.db | SQLite डेटाबेस पथ |
MAX_BODY | 524288 | अधिकतम कलेक्टर बॉडी आकार (बाइट्स) |
RATE_LIMIT_COUNT | 60 | प्रति विंडो अधिकतम कलेक्टर अनुरोध (प्रति IP) |
RATE_LIMIT_WINDOW | 60 | सेकंड में रेट लिमिट विंडो |
LOG_LEVEL | INFO | Python लॉगिंग स्तर |
कस्टम JS को
/payloadsएडमिन पेज के माध्यम से संपादित और संग्रहीत किया जाता है (SQLitesettingsतालिका में संग्रहीत) और/p.jsमें जोड़ा जाता है। इसे अब किसी फ़ाइल से नहीं पढ़ा जाता।
blindxss-lite/
├── wsgi.py # WSGI entry point
├── requirements.txt # Python dependencies
├── Dockerfile # Container image
├── docker-compose.yml # Compose config
├── .env # Credentials (don't commit)
└── app/
├── __init__.py # App factory, CORS, health check
├── config.py # Config + .env loader
├── db.py # SQLite layer
├── collectors.py # /p.js, /c, /c.gif
├── events.py # /events admin
├── payloads.py # /payloads admin
├── utils.py # Helpers + Basic Auth decorator
├── static/
│ └── style.css
└── templates/
├── events.html
├── event.html
└── payloads.html
document.cookieपेलोड:

परिणाम:

परिणाम विवरण:

.env को कभी भी संस्करण नियंत्रण में कमिट नहीं करना चाहिए।