Webshell
web的含义是显然需要服务器开放web服务,shell的含义是取得对服务器某种程度上操作权限。webshell常常被称为通过网站端口对网站服务器的某种程度上操作的权限。
一方面,webshell被站长常常用于网站管理、服务器管理等等,根据FSO权限的不同,作用有在线编辑网页脚本、上传下载文件、查看数据库、执行任意程序命令等。
另一方面,被入侵者利用,从而达到控制网站服务器的目的。这些网页脚本常称为WEB脚本木马,比较流行的asp或php木马,也有基于.NET的脚本木马与JSP脚本木马。国内常用的WebShell有海阳ASP木马,Phpspy,c99shell等。
web
端使用Xterm.js
或者其他的WebShell
组件和websocket
后端只需要支持WebSocket
和SSH
协议的远程登录模块即可
web端实现
1.安装
npm install xterm@3.1.0 --save
指定版本安装,最新版的xterm文件的改动很大,使用下面的方法会报错
2.导包
import 'xterm/dist/xterm.css';
//上面这个样式一定要引入的,不然创建的terminal实例会额外产生一个textarea让你输入
import {
Terminal } from 'xterm';
import * as fit from 'xterm/lib/addons/fit/fit';
import * as attach from 'xterm/lib/addons/attach/attach'
Terminal.applyAddon(fit);
Terminal.applyAddon(attach);
3.在页面中的显示
<template>
<div>
<div id="terminal" style="width: 500px;height:300px;"></div>
</div>
</template>
4.数据操作
mounted () {
let terminalContainer = document.getElementById('terminal')
//创建xterm实例
this.term = new Terminal({
cursorBlink: true, // 显示光标
cursorStyle: "underline" // 光标样式
}) // 创建一个新的Terminal对象
this.term.open(terminalContainer) // 将term挂载到dom节点上
console.log(this.term)
//在xterm上面显示命令行命令 (预设显示)
this.term.write("$ ")
//监听xterm的键盘事件
this.term.on("key",(key,ev)=>{
//key是输入的字符,ev是键盘的按键事件
console.log('key======',ev.keyCode);
//将输入的字符打印到命令窗口中
this.term.write(key)
if (ev.keyCode ==