本文以apache为web服务器为例
  • 安装apache服务
yum -y install httpd
  • 启动apache
$ sudo systemctl restart httpd
  • 创建shell脚本

``
$ cd /var/www/cgi-bin/

$ vim shell
``

#!/bin/sh
alias urldecode='sed "s@+@ @g;s@%@\\\\x@g" | xargs -0 printf "%b"'
echo -e "Content-type: text/plain\n"
decoded_str=`echo $QUERY_STRING | urldecode`
echo -e "`$decoded_str` \n"

测试:在浏览器中输入http://127.0.0.1/cgi-bin/shell?pwd,即可列出目录

  • 提供web接口

``
$ cd /var/www/html

$ vim index.html
``

<html>
<head>
<script>
function httpGet(url)
{  var xmlHttp = new XMLHttpRequest();  xmlHttp.open("GET", url, false); // false: wait respond  xmlHttp.send(null);  return xmlHttp.responseText;
}
function f()
{  var url = "http://127.0.0.1/cgi-bin/shell?"+ document.getElementById('in').value;  document.getElementById('out').innerHTML = httpGet(url);
}
</script>
</head>
<body>
<span>command: </span>
<input id='in'></input>
<button onclick='f()'>send</button>
<br/>
<pre id='out'></pre>
</body>
</html>

注意修改代码中ip,更改为服务器ip或域名

效果图如图所示

cgi-bin目录执行shell脚本格式

#!/bin/sh
printf "Content-Type: text/plain\n\n"
your_commands_here

安全性优化
限制用户访问cgi-bin目录,修改/etc/httpd/conf/httpd.conf

<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
Deny From all
Allow From 127.0.0.1 your-ip-address

配置http页面账号密码访问,也可实现安全性 弊端 无法执行复杂的脚本命令,如带有" |等特殊符号的命令无法执行,如yum、top命令执行结果不完整、仅适用于简单带输出脚本命令,脚本运行账号为apache

转载博客园:Mr黄瑞

Web页面执行shell命令相关推荐

  1. apache服务web页面执行shell脚本

    首先安装apache服务 yum -y install httpd 如下介绍两种执行的方式 方式一.url直接传参的方式 #cat /var/www/cgi-bin/shell #!/bin/sh p ...

  2. python中command是什么意思_python中command执行shell命令脚本方法

    在Python中有一个模块commands也很容易做到以上的效果. 看一下三个函数: 1). commands.getstatusoutput(cmd) 用os.popen()执行命令cmd, 然后返 ...

  3. python调用shell命令-python中执行shell命令的几个方法小结

    最近有个需求就是页面上执行shell命令,第一想到的就是os.system, 复制代码 代码如下: os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令执行结果 0或 ...

  4. Python 执行 shell命令 的几个方法小结

    参考:https://blog.csdn.net/ronnyjiang/article/details/53333538 Python 执行 shell 命令 Python 可以执行 shell 命令 ...

  5. python中执行shell命令_python中执行shell命令的几个方法小结-阿里云开发者社区

    Python 执行 shell 命令 最近有个需求就是页面上执行shell命令,第一想到的就是os.system os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令 ...

  6. Centos执行shell命令返回127错误

    Centos执行shell命令返回127错误 在终端可以正常运行 web执行shell 返回127错误 解决方法 应该是运行环境和登录用户的运行环境存在差异造成的 在脚本执行之前,添加. /etc/p ...

  7. Ganymed-ssh2实现scp上传和下载文件,以及执行shell命令

    使用Ganymed-ssh2执行远程机器上的Shell脚本,还可以使用SCP来上传和下载文件 严禁转载!!! pom依赖 <dependency><groupId>com.ai ...

  8. jenkins 插件执行shell命令时,提示“Command not found”处理方法

    首先提示找不到"Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具 ...

  9. linux c 执行shell命令并获取返回结果

    最近在项目中用到了C语言执行shell命令的问题,调查了一下,一般有system函数.exec族函数,但是还不太清楚怎么获取shell命令执行的返回信息. 例如执行一个ifconfig命令,肯定需要获 ...

  10. vim中执行shell命令小结

    vim中执行shell命令,有以下几种形式 1):!command 不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容 例如 :!ls - ...

最新文章

  1. traceroute/tracert--获取网络路由路径
  2. 老大让我优化数据库,我上来就分库分表,他过来就是一jio。。。
  3. win10 ndk hello_world
  4. 小组项目第一次讨论总结
  5. 虚拟服务器关机返回用户信息,在Linux服务器关机前向用户显示一条自定义消息...
  6. Redis(3-3):列表类型
  7. html换行添加前缀,为什么使用css3要加前缀?
  8. Response.End()在Webform和ASP.NET MVC下的表现差异
  9. Java问题解决:错误: 找不到或无法加载主类
  10. 精装友好联络算法实现借壳和RI
  11. 萤火虫算法 java_AGSO 萤火虫算法
  12. ReportMachine 3.0技巧
  13. 1096 大美数 分数 15
  14. Mac Pro 触摸板按压失效(没有按压回弹效果)
  15. WPS简单五步操作修改图形并调整图形位置大小和旋转角度
  16. [阮一峰]腾讯的历史.转帖
  17. 我的自白 —— 未来的期待
  18. 2021上海大学计算机考研大纲,2021上海大学历年运筹学考研真题及答案、考研大纲汇总.docx...
  19. C4D模型工具—创建点/添加点
  20. 关于局域网ARP攻击,MAC地址欺骗的解决方法

热门文章

  1. c语言使用gotoxy函数清屏,写了个小程序,一直会闪屏,用的gotoxy函数,求大神教...
  2. java异常处理拦截器
  3. GsonFormat的使用 (转)
  4. DEV、SIT、UAT都是啥意思?
  5. windows7专业版64位 vmware虚拟机镜像,vmware打开直接能用
  6. VS Code 取色器 插件 颜色选取
  7. tableau学生版注册流程
  8. SQL如何删除重复数据
  9. 软件安装过程中,系统提示需要安装.Net Framework 3.5解决
  10. UE4 WebUI 4.26下载