如果给你一个 shell,你可以干什么?

2017-08-08 16:36:08 +08:00
 rockuw

使用函数计算API 网关做了一个web shell: 随时随地打开一个 shell,用完即走。

欢迎大家来玩,项目地址:

这个项目中我们用到了以下组件:

  1. 使用 nodejs 开发,通过 reactify 生成浏览器代码
  2. 根据用户输入的命令,把请求发送到 API 网关
  3. API 网关把请求发送到后端的函数计算,在函数中执行 shell 命令

函数的代码也非常简单:

'use strict';

var exec = require('child_process');

exports.handler = function(event, context, callback) {
  console.log('event: %s', event.toString());

  var evt = JSON.parse(event.toString());
  var cmd = evt['queryParameters']['cmd'];
  exec.exec(cmd, {}, function(err, stdout, stderr) {
    console.log(stdout, stderr);

    var body = '';
    if (err) {
      body = new Buffer(stderr).toString('base64');
    } else {
      body = new Buffer(stdout).toString('base64');
    }

    var resp = {
      statusCode: 200,
      isBase64Encoded: true,
      body: body,
    };
    callback(null, resp);
  });
};

欢迎大家来体验 serverless 构架的函数计算服务;
也欢迎有兴趣的同学加入一起开发函数计算:

5666 次点击
所在节点    推广
33 条回复
lslqtz
2017-08-08 22:12:38 +08:00
非常有趣,收藏了。
nutting
2017-08-08 22:31:33 +08:00
我上次在这里分享了一个匿名聊天,一群尝试发送 js 代码的,各种破解的,看看楼主这个能撑多久?搞挂了免责不?
araraloren
2017-08-09 08:41:48 +08:00
我应该怎么回答?
删库跑路。。还是撬动整个地球。。。
mosliu
2017-08-09 08:44:25 +08:00
rm -rf /
qiuyk
2017-08-09 09:12:15 +08:00
第一个反应肯定是 rm -rf /的吧哈哈哈哈
bintianbaihua
2017-08-09 09:42:56 +08:00
rm -rf
NoAnyLove
2017-08-09 10:23:33 +08:00
喜欢 Fantasque Sans Mono 字体的用户路过
rockuw
2017-08-09 10:35:07 +08:00
@nutting 搞挂了给我发邮件,有阿里云代金券相送 :)
rockuw
2017-08-09 10:35:58 +08:00
@araraloren 参考答案是:撬动整个地球
xqin
2017-08-09 14:56:44 +08:00
rockuw
2017-08-09 15:31:06 +08:00
@xqin 我早上回复了一些 comments 啊
xqin
2017-08-09 16:17:53 +08:00
@rockuw 刚看到了, 之前没收到 github 的提醒, 我又改了一些内容, 一并看看.
你提的那些疑问, 我也已经回复了.
rockuw
2017-08-09 16:57:48 +08:00
@xqin updated. Thanks.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/381412

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX