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

【绕过disable_function】

一、disable_function 是什么

php 的 disable_function 是用来禁止一些危险函数的使用,该配置位于 php.ini 中
在这里插入图片描述
比如phpinfo会暴露很多信息比较危险,就可以写入disable_function里面
在这里插入图片描述
再次访问就会提示出于安全原因被禁用了
在这里插入图片描述
比如再禁用 file_get_contents
在这里插入图片描述
代码读取当前文件的flag2.txt
在这里插入图片描述
访问时同样被禁止了,所以在disable_function里添加指定函数,该函数就会被禁用
在这里插入图片描述

二、disable_function 绕过

1、换成功能上可以近似替代的函数

在这里插入图片描述
在这里插入图片描述
system函数被禁用了,但是echo assert依旧执行了
在这里插入图片描述

2、windows com组件

​COM(Component Object Model)​​ 是 Windows 操作系统的一项技术,它允许程序(或脚本)创建和调用其他程序或系统组件提供的功能对象。可以把它想象成 Windows 系统内部的一套“标准接口”或“工具箱”。

WScript.Shell和 Shell.Application就是 Windows 系统自带的、非常强大的 COM 对象,它们的功能之一就是运行程序和执行命令。

PHP 提供了一个名为 php_com_dotnet.dll的扩展模块。一旦在 php.ini 中启用这个扩展(extension=php_com_dotnet.dll),PHP 脚本就获得了创建和操作 COM 对象的能力。

当 PHP 调用 new COM(‘WScript.shell’)时,它并不是在直接执行一个被禁用的函数(如 exec)。它是在请求 Windows 系统:“请给我一个 WScript.Shell对象”。​实际执行命令的是 Windows 系统本身的这个 COM 组件,而不是 PHP。PHP 只是在“借用”Windows 的功能。

php.ini 需要有这样的内容
在这里插入图片描述

<?php
$command = $_GET['a']; // 1. 从用户GET请求参数‘a’中获取要执行的命令
$wsh = new COM('WScript.shell'); // 2. 创建一个COM对象,类型是WScript.shell
$exec = $wsh->exec("cmd /c".$command); // 3. 调用该对象的exec方法,来执行系统命令(cmd /c)
$stdout = $exec->StdOut()
http://www.dtcms.com/a/392370.html

相关文章:

  • 使用云手机运行手游的注意事项有哪些?
  • 【数据结构】利用堆解决 TopK 问题
  • 2025陇剑杯现场检测
  • openharmony之充电空闲状态定制开发
  • 【开题答辩全过程】以 python的线上订餐系统为例,包含答辩的问题和答案
  • (附源码)基于Spring Boot的校园心理健康服务平台的设计与实现
  • 微信小程序开发教程(十八)
  • 寰宇光锥舟架构图
  • Spring Bean生命周期全面解析
  • [vibe code追踪] 侧边栏UI管理器 | showSidebarContent
  • 嵌入式ARM架构学习9——IIC
  • 多线程——线程安全的练习加感悟
  • 使用 TwelveLabs 的 Marengo 视频嵌入模型与 Amazon Bedrock 和 Elasticsearch
  • Windows 11 下 Notepad++ 等应用无法启动问题排查修复
  • 面向口齿不清者的语音识别新突破:用大模型拯救“听不懂”的声音
  • 服装企业优化信息化管理系统的最佳软件选择
  • 多阶段构建镜像
  • 推荐一个开源服务器一键自动重装系统脚本:reinstall
  • 【C++进阶】C++11 的新特性 | lambda | 包装器
  • 2.【QT 5.12.12 安装 Windows 版本】
  • Rust_2025:阶段1:day6.3 macro
  • 【Qt开发】输入类控件(一)-> QLineEdit
  • python10——组合数据类型(集合)
  • 分布式专题——14 RabbitMQ之集群实战
  • WEEX唯客的多维度安全守护
  • 深度学习环境配置
  • 生鲜速递:HTTP 的缓存控制
  • ​​Snipaste 2.10.1.dmg截图安装教程|Mac电脑拖拽安装详细步骤​
  • 10.1.1 使用python完成第一个遗传算法
  • C语言内存精讲系列(二十九):C 语言堆区内存进阶与动态内存实战