专栏首页FreeBufJSShell:一个基于python的交互式Shell

JSShell:一个基于python的交互式Shell

JSShell

本文将给大家介绍一款基于Web的多用户交互式Shell,该工具采用Python语言编写,服务器端使用的是Flask框架,而客户端当然就是JavaScript和HTML组成的了。我当初在开发JSShell的时候只是想在测试和研究的过程中用它来远程调试浏览器的网络通信和信息处理等活动,但是我现在意识到了这款工具的作用远远不止于此,所以请各位不要将其用于恶意目的,作者Daniel Abeles对此一概不负责。

工具安装

话不多说,先上GitHub传送门【点击文末阅读原文】。

我们建议使用虚拟环境来安装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(freebuf),作者:Alpha_h4ck

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-03-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 通过伪造Tor隐藏服务实现网络钓鱼的技术分析

    ? 写在前面的话 SMS Privacy(一个使用比特币购买匿名手机号的服务)现在已经成为了一种Tor隐藏服务,但现在大约只有不到10%的用户会以这种隐藏服务...

    FB客服
  • APP安全检测手册

    随着运营商新技术新业务的发展,运营商层面对安全的要求有所变化,渗透测试工作将会面临内容安全、计费安全、业务逻辑及APP等方面的挑战。随着运营商自主开发的移动AP...

    FB客服
  • TLS 1.3如何用性能为HTTPS正名

    序•魔戒再现 几天前,OpenSSL官方宣布即将发布的新版本 (OpenSSL 1.1.1) 将会提供 TLS 1.3 的支持,而且还会和之前的 1.1.0 版...

    FB客服
  • Tensorflow Eager Execution入门指南

    本文介绍了最新版的Tensorflow 1.7的功能及其使用方法,重点介绍其中最有趣的功能之一eager_execution,它许用户在不创建静态图的情况下运行...

    WZEARW
  • linux 学习笔记七

    来自实验楼的学习笔记,文字基本复制,粘贴。 ? 下载了一个录制gif图的软件,还不错 参考与:在Linux(Ubuntu)下超好用的录屏gif软件!!...

    东风冷雪
  • Xcode真机调试包的路径

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

    用户1451823
  • kubernetes三种打开方式

    kubernetes是容器管理编排引擎,是继openstack之后又一个优秀的云计算系统。kubernetes有着灵活,快速,健壮等特点,同时全面拥抱微服务架构...

    SDNLAB
  • 详解分布式系统本质:“分治”和“冗余”

    站在全局角度看,分布式系统的本质是什么?其实说白了,就是两点:“分治”和“冗余”。

    架构师修行之路
  • eclipse maven 项目 maven build 无反应

    eclipse maven 项目 使用maven build ,clean 等命令均无反应,控制台无任何输出

    IT小马哥
  • Maven实战之旅第三篇——eclipse安装maven插件

    Maven安装方式有三种,第一种是离线安装,用 link 的方式来安装,这种方式可拔性更好,可以随时将插件插上和拔下,非常方便。这里推荐一片写离线安装的博客 ...

    我是李超人

扫码关注云+社区

领取腾讯云代金券