博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web页面执行shell命令
阅读量:3949 次
发布时间:2019-05-24

本文共 834 字,大约阅读时间需要 2 分钟。

本文以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

``

command: 

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

效果图如图所示

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

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

安全性优化

限制用户访问cgi-bin目录,修改/etc/httpd/conf/httpd.conf

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

转载博客园:

你可能感兴趣的文章
Android:绘制自定义视图
查看>>
Android开发:一些有用的库(第一部分)
查看>>
Android 默认暗码
查看>>
Android 系列 1.3了解Android版本
查看>>
Android 系列 6.28使用正确的复数格式化
查看>>
Android 系列 6.29创建在两个活动之间显示的加载屏幕
查看>>
Android的Gradle技巧 1.2配置SDK版本和其他默认值
查看>>
Android的Gradle技巧 1.3从命令行执行Gradle构建
查看>>
Android的Gradle技巧 1.4从Android Studio执行Gradle构建
查看>>
Android的Gradle技巧 1.5添加Java库依赖关系
查看>>
Android的Gradle技巧 1.6使用Android Studio添加库依赖关系
查看>>
Android的Gradle技巧 1.7配置存储库
查看>>
android Collections 排序,
查看>>
Android的Gradle技巧 2.1设置项目属性
查看>>
Android的Gradle技巧 2.2将应用程序从Eclipse ADT移植到Android Studio
查看>>
Android的Gradle技巧 2.3从Eclipse移植应用程序ADT使用Eclipse
查看>>
昂山素季 Aung San Suu Kyi
查看>>
AI 人工智能第一课 从贝叶斯定理开始
查看>>
朴素贝叶斯python实现
查看>>
Logistic回归原理及公式推导
查看>>