Web页面执行shell命令
本文以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命令相关推荐
- apache服务web页面执行shell脚本
首先安装apache服务 yum -y install httpd 如下介绍两种执行的方式 方式一.url直接传参的方式 #cat /var/www/cgi-bin/shell #!/bin/sh p ...
- python中command是什么意思_python中command执行shell命令脚本方法
在Python中有一个模块commands也很容易做到以上的效果. 看一下三个函数: 1). commands.getstatusoutput(cmd) 用os.popen()执行命令cmd, 然后返 ...
- python调用shell命令-python中执行shell命令的几个方法小结
最近有个需求就是页面上执行shell命令,第一想到的就是os.system, 复制代码 代码如下: os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令执行结果 0或 ...
- Python 执行 shell命令 的几个方法小结
参考:https://blog.csdn.net/ronnyjiang/article/details/53333538 Python 执行 shell 命令 Python 可以执行 shell 命令 ...
- python中执行shell命令_python中执行shell命令的几个方法小结-阿里云开发者社区
Python 执行 shell 命令 最近有个需求就是页面上执行shell命令,第一想到的就是os.system os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令 ...
- Centos执行shell命令返回127错误
Centos执行shell命令返回127错误 在终端可以正常运行 web执行shell 返回127错误 解决方法 应该是运行环境和登录用户的运行环境存在差异造成的 在脚本执行之前,添加. /etc/p ...
- Ganymed-ssh2实现scp上传和下载文件,以及执行shell命令
使用Ganymed-ssh2执行远程机器上的Shell脚本,还可以使用SCP来上传和下载文件 严禁转载!!! pom依赖 <dependency><groupId>com.ai ...
- jenkins 插件执行shell命令时,提示“Command not found”处理方法
首先提示找不到"Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具 ...
- linux c 执行shell命令并获取返回结果
最近在项目中用到了C语言执行shell命令的问题,调查了一下,一般有system函数.exec族函数,但是还不太清楚怎么获取shell命令执行的返回信息. 例如执行一个ifconfig命令,肯定需要获 ...
- vim中执行shell命令小结
vim中执行shell命令,有以下几种形式 1):!command 不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容 例如 :!ls - ...
最新文章
- traceroute/tracert--获取网络路由路径
- 老大让我优化数据库,我上来就分库分表,他过来就是一jio。。。
- win10 ndk hello_world
- 小组项目第一次讨论总结
- 虚拟服务器关机返回用户信息,在Linux服务器关机前向用户显示一条自定义消息...
- Redis(3-3):列表类型
- html换行添加前缀,为什么使用css3要加前缀?
- Response.End()在Webform和ASP.NET MVC下的表现差异
- Java问题解决:错误: 找不到或无法加载主类
- 精装友好联络算法实现借壳和RI
- 萤火虫算法 java_AGSO 萤火虫算法
- ReportMachine 3.0技巧
- 1096 大美数 分数 15
- Mac Pro 触摸板按压失效(没有按压回弹效果)
- WPS简单五步操作修改图形并调整图形位置大小和旋转角度
- [阮一峰]腾讯的历史.转帖
- 我的自白 —— 未来的期待
- 2021上海大学计算机考研大纲,2021上海大学历年运筹学考研真题及答案、考研大纲汇总.docx...
- C4D模型工具—创建点/添加点
- 关于局域网ARP攻击,MAC地址欺骗的解决方法