一行代码创建一个可执行命令的 Web 服务器

Crq
Crq
管理员
1900
文章
0
粉丝
Linux教程评论28字数 364阅读1分12秒阅读模式
摘要因为有一个始终执行的循环使用 while true,让 nc 命令持续在端口 8080 监听浏览器请求,每次刷新时,都会执行作为参数传递给 web.sh 的脚本,其结果连同一些 H...

如果你想让系统更加安全,那可能要花费很多时间,相反,如果你想让系统不安全,那就是分分钟的事情,本文分享一个不安全的方式在 Linux 上快速建立一个 Web 服务,它可以将 bash 指令的执行结果返回给前端,提醒一下,千万别在生产环境使用。

首先编写这样一行代码,保存为 web.sh

#!/bin/bash
while true; do 
    echo -e "HTTP/1.1 200 OK\n\n$($1)" | nc -l -k -p 8080 -q 1; 
done

然后添加可执行权限:

chmod u+x web.sh

执行这个脚本,给他一个命令参数,比如 ps aux:

./web.sh "ps aux"

打开浏览器,输入网址 http://127.0.0.1:8080,就会看到下图所示的结果:

一行代码创建一个可执行命令的 Web 服务器

每次刷新浏览器都会打印 ps aux 命令的最新结果!

为什么可以这样?

#!/bin/bash
while true; do 
    echo -e "HTTP/1.1 200 OK\n\n$($1)" | nc -l -k -p 8080 -q 1; 
done

因为有一个始终执行的循环使用 while true,让 nc 命令持续在端口 8080 监听浏览器请求,每次刷新时,都会执行作为参数传递给 web.sh 的脚本,其结果连同一些 HTTP 标头会传递给 nc,后者又会发送给我们的浏览器。

一条简单的命令就可以起到远程监控服务器进程的效果,是不是很方便?不过这样并不安全,自己玩玩可以,不推荐生产环境使用。

weinxin
我的微信
微信号已复制
我的微信
这是我的微信扫一扫
 
Crq
  • 本文由 Crq 发表于2025年3月2日 12:31:28
  • 转载请注明:https://www.cncrq.com/13271.html
五款最佳Linux下载管理器推荐 Linux教程

五款最佳Linux下载管理器推荐

新的Linux用户从Windows转换过来时面临的困难之一就是,找到一款优秀的下载管理器。如果你是或曾经是Windows用户,可能熟悉互联网下载管理器(IDM)、下载加速器Plus...
Linux系统安全日志详解 Linux教程

Linux系统安全日志详解

只要将我们的服务器在公网环境公开,提供服务。就避免不了来自全球互联网上的各种攻击。大部分的攻击都是一些泛攻击,利用程序自动扫描并发起攻击而已。
vi/vim 编码设置 Linux教程

vi/vim 编码设置

vim编码涉及四个概念,分别是enc,fenc,fencs,tenc,一般乱码多是因这些参数设置不正确引起的,要想彻底摆脱vim的乱码问题,还是把这四个概念理清楚了,下面详细介绍之...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证