广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >eval(cmd)与eval($cmd)的区别与联系
  • 311
分享到

eval(cmd)与eval($cmd)的区别与联系

2024-04-02 19:04:59 311人浏览 独家记忆
摘要

这个问题一直困扰我许久,今天终于解决清楚了 问题1:eval的执行是否需要双引号包括: 先看三个命令: A:<?PHP eval(system(dir))?

这个问题一直困扰我许久,今天终于解决清楚了

问题1:eval的执行是否需要双引号包括:

先看三个命令:


A:<?PHP eval(system(dir))?>
B:<?php
	$cmd="system(dir)"; 
	eval($cmd)?>

A结果:

在这里插入图片描述

B结果:

在这里插入图片描述

报错

思考:

同样是一个命令,为什么会出现如此区别,询问了其他师傅得知:eval执行的是变量的值的时候,该变量值需要闭合,也就是必须是一个完整的语句,需要用分号结尾。根据这个道原理我们改一下上面的命令看看:


<?php
	$cmd="system(dir);"; 
	eval($cmd)?>

结果:

在这里插入图片描述
发现是可以执行的。

后话:

关于这个点,还需要补充一个:

内置函数在eval里面直接执行时不需要加分号,看两个命令就知道了:


eval(system(dir));
eval(system(dir););

在这里插入图片描述

内置函数不需要加分号,其实我觉得加不加分号都一样,因为加了分号就要加引号,引号也带有解析的意思

理解一下命令执行中的闭合:

看代码:


eval(system(dir));
eval(system(dir););

看看结果:

在这里插入图片描述

这里可以并且后面语句是不影响解析的


<?php
	eval("system(dir);?>xyusaiqeqcyuqqwdnoqcq");
	?>

在这里插入图片描述

我们这里都是不影响的,为什么?

如果我们是简单的闭合eval这个命令

那我们的playload应该是:


<?php 
	eval("system(dir));?>xyusaiqeqcyuqqwdnoqcq");
?>
上面的代码我错误的理解成:
<?php 
	eval("system(dir)");?>
	xyusaiqeqcyuqqwdnoqcq");
?>

之前我错误的以为是这样的闭合的,但是后来发现我错了,直到在有一道题目中我发现这样闭合不了,后面询问了一下其他师傅,得到答案:

eval()这个函数可以理解成我们是将eval(字符串)这里面的字符串放到了一个新的php里面去运行,这个新的php本来就又 <?php 所以当我们传入 system(dir);?>dasdas的时候,?>就以及阶段了php代码

学习了~

--结束END--

本文标题: eval(cmd)与eval($cmd)的区别与联系

本文链接: https://www.lsjlt.com/news/129651.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • eval(cmd)与eval($cmd)的区别与联系
    这个问题一直困扰我许久,今天终于解决清楚了 问题1:eval的执行是否需要双引号包括: 先看三个命令: A:<?php eval(system(dir))?...
    99+
    2022-11-12
  • CMD与ENTRYPOINT的区别有哪些
    这篇文章将为大家详细讲解有关CMD与ENTRYPOINT的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。CMD 与ENTRYPOINT的区别 $&nb...
    99+
    2022-10-19
  • dockerfile中ENTRYPOINT与CMD的结合使用及区别
    我们在上篇小作文[docker容器dockerfile详解]对中dockerfile有了比较全面的认识,我们也提到`ENTRYPOINT`和`CMD`都可以指定容器启动命令。因为这两...
    99+
    2022-11-12
  • Cmd与传统Linux 安全控件的区别是什么
    小编给大家分享一下Cmd与传统Linux 安全控件的区别是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Cmd 可以帮助机构监控、验证和阻止那些超出系统预期使...
    99+
    2023-06-16
  • 【JAVA】JAVA与C++的区别与联系
    个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 文章目录 前言两方介绍C++JAVA 不同==|Java不支持指针、模板、指针重载、联合等|====|支持析构函数|====|条件编译和包含|...
    99+
    2023-08-16
    java c++ 开发语言
  • WebSocket与长连接的区别与联系
    随着互联网技术的不断发展,网页应用越来越多地使用实时通信来提供更好的用户体验。而在实现实时通信的过程中,经常会涉及到WebSocket和长连接的概念。WebSocket和长连接都可以用于实现实时通信,但它们有一些区别和联系。区别:技术原理:...
    99+
    2023-10-21
    WebSocket(关键词:WebSocket) 长连接(关键词:长连接) 区别与联系(关键词:区别 联系)
  • android与java的区别及联系
    从整体来讲,Java和Android的区别在于:Android程序是基于组件和配置的,而且Android开发以Java语言为开发工具,表面上看他们有点同宗不同门,但实际上区别十分大。Android是一个主流智能手机操作系统,Java是一种开...
    99+
    2016-11-14
    java入门 android java 区别 联系
  • Centos和Redhat的区别与联系
    CentOS的简介   CentOS是Community ENTerprise Operating System的简称,我们有很多人叫它社区企业操作系统,不管你怎么叫它,它都是Linux操作系统的一个发行版本。   CentO...
    99+
    2022-06-05
    Centos Redhat
  • tomcat与apache的区别与联系是什么
    Tomcat和Apache是两个不同的软件,但也可以配合使用。1. Tomcat是一个独立的Web应用服务器,它专门用于运行Java...
    99+
    2023-09-21
    Tomcat apache
  • Session与Cookie有哪些区别与联系
    这篇文章主要介绍了Session与Cookie有哪些区别与联系,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、Cookie仅由客户端生成、...
    99+
    2022-10-19
  • python3 与python2 异常处理的区别与联系
    在python2.x中 ,异常是这样的处理的,异常基类后面加一个逗号“ ,” 然后跟着异常类型 import traceback try: 1/0 except Exception , err:...
    99+
    2022-06-04
    异常 区别
  • 浅谈JSP serverlet的区别与联系
    JSP(JavaServer Pages)和Servlet都是Java Web开发中的关键技术,用于构建动态Web应用程序。它们之间...
    99+
    2023-08-15
    jsp
  • 云服务器与虚拟主机的区别和联系与区别
    云服务器与虚拟主机是两个不同的概念,它们的区别和联系如下: 存储空间: 云服务器通常提供大量的可用空间,用户不需要使用物理服务器提供的存储空间。相反,云服务器可以向用户提供高容量的存储空间,用于存储应用程序或数据。 可扩展性: 云服务器...
    99+
    2023-10-26
    区别 虚拟主机 服务器
  • 云服务器与云数据库的区别和联系与区别
    云服务器和云数据库是两个常见的云计算服务,它们之间有一些区别和联系。 云计算是一种按需使用的基础设施服务,它通常使用虚拟机、服务器和存储设备来实现。云计算服务按需提供,企业可以按照需求来选择所需的计算、存储和网络服务,而不需要自己构建基础...
    99+
    2023-10-26
    区别 服务器 数据库
  • 微软与亚马逊云服务器的区别和联系与区别
    微软的Azure是一款基于云的平台,可以让开发人员在云上运行各种应用程序和服务。Azure具有高度的灵活性和可扩展性,可以适应各种不同的业务需求,例如开发、测试、运营和数据分析等。 而亚马逊的AWS(Amazon Web Services...
    99+
    2023-10-27
    亚马逊 区别 微软
  • CSS中absolute与relative的区别和联系
    本篇内容主要讲解“CSS中absolute与relative的区别和联系”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS中absolute与relative...
    99+
    2022-10-19
  • Python中__new__和__init__的区别与联系
    __new__ 和 __init__ 的区别主要表现在: __new__ 负责对象的创建而 __init__ 负责对象的初始化。 __new__:创建对象时调用,会返回当前对象的一...
    99+
    2022-11-12
  • ​​​​​​​Rxjs map, mergeMap 和 switchMap 的区别与联系
    目录前言mapmergeMapswitchMap前言 map、mergeMap 和 switchMap 是 RxJS 中的三个主要运算符,在 SAP Spartacus 开发中有着广...
    99+
    2022-11-13
  • 详谈Array和ArrayList的区别与联系
    昨天去了一个java的实习面试,发现有好多java最基础的数据结构对于博主来说反而感到陌生,在面试官问一些常见的例如HashMap这样的数据结构,博主能回答的头头是道,但是在问到Array和ArrayList的区别和联系之后,却让博主一脸懵...
    99+
    2023-05-31
    array arraylist 区别
  • java中volatile和synchronized的区别与联系
    java中volatile和synchronized的区别与联系这个可能是最好的对比volatile和synchronized作用的文章了。volatile是一个变量修饰符,而synchronized是一个方法或块的修饰符。所以我们使用这两...
    99+
    2023-05-31
    volatile synchronized ava
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作