
Panoptic هي أداة مفتوحة المصدر لاختبار الاختراق تعمل على أتمتة عملية البحث واسترجاع المحتوى لملفات السجلات والإعدادات الشائعة عبر ثغرات اجتياز المسار (Path Traversal).

Panoptic هي أداة اختبار اختراق مفتوحة المصدر تعمل على أتمتة البحث عن ملفات السجلات والإعداد الشائعة واسترجاعها عبر ثغرات اجتياز المسار.

--concurrency)FUZZ
في أي قيمة --header أو --data--base64)/etc/passwd لملفات الدليل الرئيسي،
وmysql-bin.index لملفات binlog--output-format)--resume-file)--config)0600 للمالك فقط على POSIX
وحماية الروابط الرمزية للمكوّن النهائي حيث يدعم نظام التشغيل ذلك--update)httpx[socks]، وrich، وrich-argparse، وtomli على Python 3.10git clone https://github.com/lightos/Panoptic.git
cd Panoptic
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
panoptic --version
في موجه أوامر Windows، قم بالتفعيل عبر .venv\Scripts\activate.bat؛ وفي PowerShell استخدم .venv\Scripts\Activate.ps1. التثبيت القابل للتحرير يُبقي Panoptic مرتبطًا بهذا الاستنساخ من أجل --update، لذا أبقِ المجلد في مكانه. لا تشغّل pip install panoptic: هذا الاسم على PyPI يعود لمشروع غير ذي صلة.
للتطوير:
python -m pip install -e ".[dev]"
panoptic --url "http://target/include.php?file=test.txt"
panoptic --url "http://target/include.php?file=test.txt"
panoptic --url "http://target/include.php?file=test.txt&id=1" \
--param file
panoptic --url "http://target/include.php" \
--data "file=test.txt&id=1" --param file
panoptic --url "http://target/view.php/test.txt" --path-based
panoptic --url "http://target/load.php?file=dGVzdC50eHQ=" \
--base64 --auto
panoptic --url "http://target/page.php" \
--header "Cookie: lang=FUZZ" --auto
panoptic --url "http://target/api/load" \
--data '{"file":"FUZZ"}' --auto
panoptic --url "http://target/page.php" \
--header "X-Template: FUZZ" --auto
panoptic --url "http://target/view.php?file=test&type=txt" \
--param file --ext-param type
panoptic --url "http://target/filtered.php?file=test.txt" \
--prefix "....//....//....//....//"
panoptic --url "http://target/include.php?file=test.txt" \
--os "*NIX" --type conf
panoptic --url "http://target/include.php?file=test.txt" \
--software PostgreSQL
panoptic --url "http://target/include.php?file=test.txt" \
--output-format json --output-file results.json \
--resume-file scan.checkpoint
panoptic --url "https://target/include.php?file=test.txt" \
--proxy "socks5://127.0.0.1:9050" --invalid-ssl
panoptic --list software
panoptic --list category
panoptic --list os
panoptic --url "http://target/include.php?file=test.txt" \
--auto --all-versions --concurrency 8
ضع FUZZ في أي مكان داخل قيم --header أو --data لتحديد نقطة الحقن. يستبدل Panoptic FUZZ بكل مسار ملف أثناء الفحص. يتيح هذا اختبار نقاط الحقن التي لا يستطيع --param الوصول إليها:
| نوع الحقن | مثال |
|---|---|
| قيمة ملف تعريف ارتباط | --header "Cookie: theme=FUZZ" |
| ترويسة مخصصة | --header "X-Include: FUZZ" |
| نص JSON | --data '{"template":"FUZZ"}' |
| قيمة متداخلة | --header "Cookie: sid=abc; lang=FUZZ" |
عند وجود FUZZ، لا يكون --param مطلوبًا.
يدعم Panoptic ملفات إعداد TOML للإعدادات الدائمة:
panoptic --url "http://target/include.php?file=test.txt" \
--config ~/.config/panoptic/config.toml
موقع الإعداد الافتراضي: ~/.config/panoptic/config.toml (يُحمَّل تلقائيًا عند وجوده، حتى بدون --config).
[defaults]
# Any long option name (with dashes as underscores) is accepted here,
# including the target and output destinations.
url = "http://target/include.php?file=test.txt"
concurrency = 8
verbose = true
automatic = true
all_versions = true
output_format = "json"
output_file = "results.json"
log_file = "scan.log"
resume_file = "scan.checkpoint"
[proxy]
url = "socks5://127.0.0.1:9050"
[headers]
user_agent = "Mozilla/5.0"
cookie = "sid=foobar; auth=1"
values = ["X-Forwarded-For: 127.0.0.1"]
الأولوية: وسائط سطر الأوامر > ملف الإعداد > الإعدادات الافتراضية المدمجة.
يقبل جدول [defaults] أي خيار فحص، وليس فقط ضبط الأداء. ويمكنك على وجه الخصوص حفظ:
url — الهدف الافتراضي (يمكن تجاوزه لكل تشغيل عبر --url)output_format، output_file — أين تُحفظ النتائج القابلة للقراءة آليًاlog_file — مرآة لمخرجات وحدة التحكم في ملفresume_file — موقع نقطة التفتيش للفحوصات القابلة للاستئنافالملفات الحساسة التي يكتبها Panoptic — ملف السجل، وملف مخرجات النتائج/القائمة، وأي ملفات تُحفظ عبر --write-files — تُفرَض لها أذونات 0600 للمالك فقط على POSIX. المنصات التي تعرض O_NOFOLLOW ترفض أيضًا ذريًا أي رابط رمزي موجود مسبقًا في مكوّن المسار النهائي. على المنصات التي لا تحتوي O_NOFOLLOW، يقوم Panoptic بفحص أفضل جهد قبل الفتح للروابط الرمزية/الوصلات، لكن الفحص لا يمكنه إزالة سباق (race). بتات الوضع في Windows لا تهيئ قوائم NTFS ACL، لذا استخدم مجلدًا مقيدًا بشكل مناسب عندما قد تحتوي الملفات على بيانات حساسة.
لكل علامة (flag) منطقية نظير --no-، لذا يمكن إيقاف قيمة مضبوطة على true في ملف الإعداد لتشغيل واحد دون تعديل الملف:
# config.toml sets verbose = true and automatic = true
panoptic --url "http://target/x.php?file=test.txt" --no-verbose --no-auto