当前位置: 首页 > article >正文

ctf中遇到exec和shell_exec的回显问题

exec和shell_exec的区别

问题:在打ctfshow时发现,为什么使用exec()和shell_exec()的回显不同?

exec函数会返回最后一行执行结果,如果执行的命令有多行输出,只会返回最后一行,而shell_exec函数会返回执行结果的全部内容。

exec与shell_exec函数的区别

exec与shell_exec函数都是PHP中的系统函数,它们都可以用来执行系统命令,但是它们之间有一定的区别。

1.返回值不同

exec函数会返回最后一行执行结果,如果执行的命令有多行输出,只会返回最后一行,而shell_exec函数会返回执行结果的全部内容。

2.执行效率不同

exec函数会将系统命令拆分成多个参数,然后逐个执行,而shell_exec函数只需要一次性执行,所以shell_exec函数执行效率更高。

3.超时时间不同

exec函数可以设置超时时间,而shell_exec函数没有超时时间的设置,所以如果执行的系统命令比较耗时,一定要使用exec函数。

4.危险性不同

exec函数可以指定参数,这样可以防止用户输入不安全的参数,而shell_exec函数没有这样的限制,所以它更加危险。

exec():

PHP: exec - Manual

shell_exec():

PHP: shell_exec - Manual

同时,shell_exec等同于``反引号


http://www.kler.cn/a/448828.html

相关文章:

  • Android 代码模式的理解
  • lodash常用函数
  • Docker Compose 安装 Harbor
  • Jenkins持续集成部署——jenkins安装
  • Mysql复习(二)
  • Unity 3D饼状图效果
  • 基于SpringBoot的“家具销售电商平台”的设计与实现(源码+数据库+文档+PPT)
  • Stream流的使用
  • 【Python 】循环
  • matplotlib中文字体 graphviz中文字体
  • 基于WCF(C#)+SQL SERVER设计与实现的在线评测系统
  • 前端获取excel表格数据并在浏览器展示
  • Java设计模式 —— 【结构型模式】桥接模式详解
  • linux下蓝牙调试工具hcitool的使用
  • 【git】开发中分支使用原则与流程
  • 详解redis哨兵(高可用)
  • Python面试常见问题及答案12
  • basic_ios及其衍生库(附 GCC libstdc++源代码)
  • 17.springcloud_openfeign之扩展组件一
  • 生产制造管理系统:现代制造业的智能引擎
  • 什么是漏电?如何预防电气设备漏电引起的火灾?
  • Vivado 编译(单核性能对比+高性能迷你主机+Ubuntu20.04/22.04安装与区别+20.04使用远程命令)
  • 【echarts】创建带有标记线和点击事件的折线图
  • 如何使用 Python 执行 SQL 查询?
  • 基于Linux编写C语言基础命令
  • Django 应用安装脚本 – 如何将应用添加到 INSTALLED_APPS 设置中 原创