• Web页面执行shell命令


    本文以apache为web服务器为例

    1. 安装apache服务
      yum -y install httpd
    2. 启动apache
      systemctl restart httpd
    3. 创建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
      "  
      decoded_str=`echo $QUERY_STRING | urldecode`  
      echo -e "`$decoded_str` 
      "
      shell
      测试:在浏览器中输入http://127.0.0.1/cgi-bin/shell?pwd,即可列出目录
    4. 提供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>
      index.html

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

    5. 效果图如图所示
    6. cgi-bin目录执行shell脚本格式
      #!/bin/sh
      printf "Content-Type: text/plain "
      your_commands_here
    7. 安全性优化
      限制用户访问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
      </Directory>
      配置http页面账号密码访问,也可实现安全性
    8. 弊端
      无法执行复杂的脚本命令,如带有" |等特殊符号的命令无法执行,如yum、top命令执行结果不完整、仅适用于简单带输出脚本命令,脚本运行账号为apache
  • 相关阅读:
    js学习(三)对象与事件
    js学习(二)
    js学习(一)
    SSM+Redis结构框架及概述
    javaBean、EJB、POJO
    flex布局时的居中问题
    layui后台管理系统的坑
    基于element的模糊查询
    vue数组的运用
    uni-app 图片上传(uploadFile)
  • 原文地址:https://www.cnblogs.com/Mrhuangrui/p/7798028.html
Copyright © 2020-2023  润新知