发布于 1970-01-01 08:00
  • 1 个回答
    • 警告,使用eval是非常危险的行为!
      特别是你们对于这个command参数甚至没有任何加密和过滤处理,那么用户哪天传一个参数能查看,显示,编辑其内容,甚至修改,删除服务器所有文件的代码也是可以直接运行的(当你的PHP在以root运行)

      抛开这个不谈来分析这个问题
      服务器进行eval时,它实际上是等价于运行:

      base64_decode("ZWNobyAndGVzdCc7");

      这时候会得到一个字符串

      echo 'test';

      然而,因为你的eval只有一个,所以后面这个base64解码出来的文本,实际上只是一段文本,表达式到这个时候就已经结束了,不会再继续运行,所以要达成楼主的目的,应该是需要这样:
      http://test.cn/2.php?command=echo base64_decode("dGVzdAo=");
      或者这样:
      http://test.cn/2.php?command=eval(base64_decode("ZWNobyAndGVzdCc7"));

      2022-12-01 15:06 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有