
مجمع Blind XSS (Cross-Site Scripting) خفيف الوزن وخادم payload مبني باستخدام Flask
أداة خفيفة لجمع Blind XSS (Cross-Site Scripting) وخادم حمولات مبني باستخدام Flask. يقدّم حمولة JavaScript تلتقط بيانات متصفح الضحية (ملفات تعريف الارتباط، localStorage، مقتطفات DOM، إلخ) وتمرّرها إلى لوحة تحكم مدعومة بـ SQLite ومحمية بـ HTTP Basic Auth.
/p.js حمولة JS مكتفية ذاتيًا باستخدام sendBeacon أو fetch/c (JSON/FormData) و GET /c.gif (منارة بكسل متوافقة مع CSP)/events الأحداث الملتقطة، ويعرض /events/<id>/view التفاصيل الكاملة/payloads 14 نسخة من حمولات XSS بالإضافة إلى محرر JS مخصصADMIN_USER / ADMIN_PASSWORDbxss.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 (بعد المصادقة) لنسخ حمولة XSS./events.| Method | Path | Description |
|---|---|---|
| GET | /p.js | XSS payload JavaScript |
| POST | /c | Receives JSON/FormData from payload |
| GET | /c.gif | Pixel beacon (CSP-friendly) |
| Method | Path | Description |
|---|---|---|
| GET | /events | Last 500 events |
| GET | /events/<id> | Event detail as JSON |
| GET | /events/<id>/view | Event detail as HTML |
| GET/POST | /payloads | Payload generator + custom JS editor |
| Method | Path | Description |
|---|---|---|
| GET | /_healthz | Health check |
| Variable | Default | Description |
|---|---|---|
ADMIN_USER | admin | Dashboard username |
ADMIN_PASSWORD | changeme | Dashboard password |
DB_PATH | ./bxss.db | SQLite database path |
MAX_BODY | 524288 | Max collector body size (bytes) |
RATE_LIMIT_COUNT | 60 | Max collector requests per window (per IP) |
RATE_LIMIT_WINDOW | 60 | Rate limit window in seconds |
LOG_LEVEL | INFO | Python logging level |
يتم تحرير JS المخصص وتخزينه عبر صفحة المسؤول
/payloads(يُحفظ في جدولsettingsفي SQLite) ويُضاف إلى/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 في نظام التحكم بالإصدارات أبدًا.