网站首页 > 技术文章 正文
JSShell
本文将给大家介绍一款基于Web的多用户交互式Shell,该工具采用Python语言编写,服务器端使用的是Flask框架,而客户端当然就是JavaScript和HTML组成的了。我当初在开发JSShell的时候只是想在测试和研究的过程中用它来远程调试浏览器的网络通信和信息处理等活动,但是我现在意识到了这款工具的作用远远不止于此,所以请各位不要将其用于恶意目的,作者Daniel Abeles及本平台入驻作者对此一概不负责。
工具安装
我们建议使用虚拟环境来安装JSShell,作者使用的是Python3.6,但JSShell也支持3.6之前的Python版本。
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
JSShell的特点
-支持多客户端;
-支持循环DOM对象;
-预生成脚本;
-命令队列;
工具运行
创建数据库:
python db_handler.py create
开启服务器(后台):
python run.py
通过浏览器访问服务器地址:
如果你的服务器在本地,那么你可以直接用浏览器访问http://localhost:5000(端口可能会不同)
打开交互式Shell:
python shell.py
可选项:预生成脚本
每当新的客户端进行注册时,这些脚本都将会运行,不过你也可以根据你的需要来进行修改,一切都取决于你自己:)
工具使用
这个Shell接口给我们提供了多种可用的操作指令,你可以使用‘help’命令来查看所有命令,终端界面如下所示:

你可以使用命令队列来申请执行多个命令,客户端将会一个一个执行这些命令。所有的命令都会在相同的环境(context)中执行,所以你可以一次性执行多个相关命令。
如果你想查看发送给客户端的命令,首先你需要选择一个客户端:
>> select 1
然后使用‘coms’命令来查看所有发送给该客户端的命令:
(Client 1) >> coms
查看所有的命令以及相应的输出结果:
(Client 1) >> com 1
工作流程
当所有的安装和配置都已完成之后,JSShell的工作流程如下:
1. 客户端访问主页http://localhost:5000/;
2. 然后向服务器端发送一个‘register’请求;
3. 等待用户输入命令;
4. 与此同时,你可以使用shell.py脚本并在服务器端执行命令;
5. 客户端从服务器端获取命令,当其得到了新的命令之后,会立刻将其加入队列并依次执行;
6. 命令执行完成之后,会将执行结果返回给服务器端;
7. 现在,我们可以使用‘coms’命令来查看输出结果了;
数据库管理
我们在这里给大家提供了一个名为db.handler.py的脚本,这个脚本包含多种数据库管理功能,你可以用它来管理和测试你的数据库。
转自FreeBuf.COM
猜你喜欢
- 2024-12-23 如何在你的项目中混合 Rust 和 Python
- 2024-12-23 一秒开挂!纯 Python 开发 Web 应用
- 2024-12-23 用 Python 与 Windows 交互 - Pywin32库
- 2024-12-23 交互式环境(Python Shell)编写Python代码
- 2024-12-23 这个用Python编写的大数据测试工具,我给100分
- 2024-12-23 Python与Mysql交互库(持续更新)
- 2024-12-23 Python解释器和交互模式
- 2024-12-23 有用的 Python 提示和技巧 — #5
- 2024-12-23 Python 语言如何和 C/C++ 语言交互使用
- 2024-12-23 简单学Python——做一个可交互的图(结合ipywidgets库)
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 90℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)