PHP伪协议精讲(文件包含漏洞)

1、什么是PHP伪协议PHP伪协议PHP伪协议

      PHP伪协议事实上就是支持的协议与封装协议,简单来说就是php定义的一种特殊访问资源的方法,在web渗透漏洞利用中常用于配合文件配合进行web攻击,查询到网站中隐藏的机密文件,造成敏感信息泄露等影响。

2、什么时候用PHP伪协议 

      文件包含漏洞, 对了,这次改个思路,不用漏洞作为本文章的切入点,而是用开发角度作为切入点,呵呵。

      我们在PHP开发中可能遇到的文件包含函数:
1、include 2、require 3、include_once 4、require_once 5、highlight_file 6、show_source 7、flie 8、readfile 9、file_get_contents 10、file_put_contents 11、fopen (比较常见)

      这些函数有潜在的风险,若前后端未对用户输入做安全校验,且用户输入恶意入参,可能导致以上函数与PHP伪协议结合,造成安全风险, 具体PHP开发涉及文件包含函数的用法就不一一列举了,可参考如下文章(大神写的很好,本哥就不自己解释了):

http://t.csdn.cn/7kbXG

3.常见伪协议即其用法

6988fb520be94d409acac00c97f4ee92.png

 

1)php://input 

php://input 是个可以访问请求的原始数据的只读流,获取POST请求数据的协议
当enctype=”multipart/form-data” 的时候 php://input 是无效的。

要使php://input 成功使用还需要配置php.ini 中的 allow_url_include设置为On

11d6071f772341249854bcf4993b1c26.png

案例代码

php
<?php
@include($_GET["file"]);
?>

构造执行的代码,输出结果 

d0ffebc2e35241c891f5e114f31e191d.png 

2)php://filter

      php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和 file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。
      在利用上很多都是与包含函数结合使用,读入或者输出获取文件源码然后编码让其不执行从而输出。

php://filter 的使用:如
php://filter/read=convert.base64-encode/resource=index.php
php://filter/resource=index.phpphp://filter 伪协议组成:
read=<读链的筛选列表>
resource=<要过滤的数据流>
write=<写链的筛选列表>php://filter/read=处理方式(base64编码,rot13等等)/resource=要读取的文件read 对应要设置的过滤器:
常见的过滤器分字符串过滤器、转换过滤器、压缩过滤器、加密过滤器
其中convert.base64-encode ,convert.base64-decode都属于 转换过滤器

例子

<?php
$a=($_GET["file"]);
echo(file_get_contents($a));//获取文件内容
?>

访问输出base64编码后的内容 

a74bb7e1863a4b328822f86e97f74cb0.png

!!!非常重要!!!

转换过滤器,伪协议中的字符被过滤时,convert.*过滤器支持convert.iconv.* 格式,

使用方法:

convert.iconv.<input-encoding>.<output-encoding>或convert.iconv.<input-encoding>/<output-encoding>

例如:

convert.iconv.UCS-4*.UCS-4BE   --->  将指定的文件从UCS-4*转换为UCS-4BE 输出

构造url,然后使用bp进行爆破:?filename=php://filter/convert.iconv.a.b/resource=check.php

PHP支持的编码格式如下:

https://blog.csdn.net/m0_56107268/article/details/127846196?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168907808016800182181381%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168907808016800182181381&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-5-127846196-null-null.142^v88^control_2,239^v2^insert_chatgpt&utm_term=%E6%94%BB%E9%98%B2%E4%B8%96%E7%95%8C%20file_include&spm=1018.2226.3001.4187https://blog.csdn.net/m0_56107268/article/details/127846196?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168907808016800182181381%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168907808016800182181381&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-5-127846196-null-null.142%5Ev88%5Econtrol_2,239%5Ev2%5Einsert_chatgpt&utm_term=%E6%94%BB%E9%98%B2%E4%B8%96%E7%95%8C%20file_include&spm=1018.2226.3001.4187

3)zip:// , bzip2://, zlib:// 协议 

      zip:// 等属于压缩流的协议,通过直接压缩普通文件为zip文件(绕过文件上传检查用),再通过zip:// 协议读取,可以直接执行php代码。压缩后的zip文件可以随意修改后缀也不影响zip://协议读取。(注意是如phpinfo.txt直接压缩为zip,而不是文件夹压缩zip)
例: 

<?php
$a=($_GET["file"]);
include($a);
?>

压缩及协议访问格式: 

压缩文件为.zip后缀
zip://绝对路径/phpinfo.zip%23phpinfo.php
压缩文件为.bz2后缀
compress.bzip2://绝对路径/phpinfo.zip/phpinfo.php
压缩文件为.gz后缀
compress.zlib://绝对路径/phpinfo.zip/phpinfo.php

zip://访问 

66d78b7d6c3b4ffaab08c9150da7a778.png

4)data:// 

      data://协议与php://input 有很点相似的地方。他们都可以通过请求提交的php代码数据配合文件包含函数可以达到代码执行效果,data:// 的成功执行需要php.ini设置allow_url_include 与allow_url_open都为On。
      data://协议的格式是: data://数据流封装器,相应格式数据。

常见的用法为
data://,<?php%20phpinfo();?>   
data://text/plain,<?php%20phpinfo();?>
data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b

例子:

<?php
$a=($_GET["file"]);
include($a);
?>

构造data:// 访问 

735d0c914a6b4781ac269c4eecc6e7f8.png 

5)phar:// 

phar://伪协议可以对zip格式压缩包进行访问解析。
格式为:phar://绝对路径\phpinfo.zip\phpinfo.php 

1a2aca0a256148f19cd3adf915f8cbe0.png

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

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

相关文章

聊天挂机脚本

一款多达几十个聊天挂机脚本&#xff0c;喜欢的可以加Q裙交流 379---354---178 aput-object v6, v4, v5const/4 v5, 0x2const/4 v6, 0x5new-array v6, v6, [Ljava/lang/Object;const/4 v7, 0x0const-string v8, "回复"aput-object v8, v6, v7const/4 v7, 0x1const-st…

融云 CTO 岑裕受邀出席亚马逊云科技「出海日」论坛

&#xff08;点击购买《社交泛娱乐出海作战地图》&#xff09; 6 月 9 日&#xff0c;亚马逊云科技主办的“潮向新世界”出海日活动在深圳举行&#xff0c;融云作为领军出海服务企业受邀出席。关注【融云全球互联网通信云】了解更多 在现场展位&#xff0c;融云的一站式全生态…

赫拉利x本吉奥最新对谈:AI革命会和工业革命一样,带来新的帝国和数字殖民...

来源&#xff1a;Web3天空之城 作者&#xff1a;城主 编辑&#xff1a;腾讯新闻 郝博阳 编者导语 在过去一段时间内&#xff0c;我们听到了辛顿对AI发展的忧虑和杨立昆对AI影响一贯的乐观主义发言。但同为AI三巨头之一的约书亚本吉奥虽然一早就通过签署暂停AI宣言表达了他对AI…

BFT最前线丨百度地图加入文心交通大模型和生成式 AI ;深圳第一家AI独角兽云天励飞,市值近400亿;斯坦福大学发布开源机械臂

BFT机器人 01 百度地图加入文心交通大模型和生成式 AI 日前&#xff0c;百度地图V18版本正式官宣发布文心交通大模型和生成式AI作为底层支撑&#xff0c;成为“人工智能新地图”&#xff0c;全新升级的车道导航&#xff0c;全城市范围、全驾车过程提供三维动态高精指引复杂路口…

聚观早报 | OpenAI 没有上市计划;马斯克称未来房价下跌将加速

今日要闻&#xff1a;OpenAI 没有上市计划&#xff1b;马斯克称未来房价下跌将加速&#xff1b;Coinbase被SEC起诉&#xff0c;股价闪崩&#xff1b;库克&#xff1a;苹果正密切关注ChatGPT等&#xff1b;推特正致力于开发视频直播产品 OpenAI没有上市计划 当地时间周二&…

替代 MySQL 半同步复制,Meta技术团队推出 MySQL Raft 共识引擎

MySQL Raft是MySQL数据库中一种基于Raft协议的分布式一致性复制机制。近日&#xff0c;Meta技术团队分享了他们基于Raft协议在数据库基础设施方面的实践与创新&#xff0c;并打算取代当下使用的MySQL半同步数据库&#xff08;原文是用semisynchronous databases&#xff0c;责编…

【全栈第三课】通过ChatGPT快速入门NodeJS

前言 往期全栈课程&#xff1a; Vue从入门到精通 微信小程序从入门到精通 Node.js基础 简介 Node.js是什么&#xff1f; Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O的模型&#xff0c;使其轻量又高效。Node.js …

听歌识曲--用python实现一个音乐检索器的功能

作者&#xff1a;唯心不易 字体&#xff1a;[增加 减小] 类型&#xff1a;转载 时间&#xff1a;2016-11-15 我要评论 本篇文章中主要介绍了用python实现一个音乐检索器&#xff0c;类似于QQ音乐的摇一摇识曲&#xff0c;有兴趣的同学可以了解一下。 听歌识曲&#xff0c;顾名思…

教你如何用Python抓取QQ音乐歌单及分析

学了python也有一段时间了&#xff0c;对于爬虫&#xff0c;后端的框架也有一些了解&#xff0c;但是都是在学习的时候跟着别人写的&#xff0c;感觉都不是自己的知识一样。我去年就给网易云音乐提了一个建议&#xff0c;就是通过播放量或者一个受欢迎程度来排序&#xff0c;然…

用python爬取音乐APP歌单

这篇文章&#xff0c;我们就来讲讲怎样爬取歌单&#xff0c;并且播放量从高到低排列&#xff0c;下面是爬取结果 一 核心代码如下 1.需要导入的包有 from urllib import parse from lxml import etree from urllib3 import disable_warnings import requests2.设置请求头部信息…

这几款音乐人必备的软件,你了解吗?

近几年随着各种关于音乐的综艺节目和自媒体盛行&#xff0c;音乐变得更加贴近民众。除了歌手以外的&#xff0c;音乐生产工作中的其他角色&#xff0c;例如编曲师、混音师、母带师等也渐渐走进大众的视野。 EarMaster&#xff1a;souurl.cn/b6rSSt Guitar Pro&#xff1a;sou…

某某星图sign参数解密分析

​ 大家好&#xff0c;我是TheWeiJun&#xff0c;欢迎来到我的公众号。今天给大家带来星图sign参数的解密分析&#xff0c;希望大家能够喜欢。如果你觉得我的文章内容有用&#xff0c;记得点赞&#x1f44d;&#x1f3fb;关注&#xff01; 特别声明&#xff1a;本公众号文章…

苹果发布黄色版 iPhone 14,定价 5999 元起;大神李沐被曝离职投身大模型创业;Atlassian 裁员 |极客头条

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&…

神经网络中的损失函数

在《神经网络中常见的激活函数》一文中对激活函数进行了回顾&#xff0c;下图是激活函数的一个子集—— 而在神经网络领域中的另一类重要的函数就是损失函数&#xff0c;那么&#xff0c;什么是损失函数呢&#xff1f; 损失函数是将随机事件或其有关随机变量的取值映射为非负实…

Sam Altman 最新访谈:谈谈 AI 的未来,还有中国 AI 发展现状

Sam Altman最新访谈:这次他更结构化地谈了AI的未来,还有中国AI现状 目录 Sam Altman最新访谈:这次他更结构化地谈了AI的未来,还有中国AI现状 划重点:

苹果发布黄色版 iPhone 14,定价 5999 元起;大神李沐被曝离职投身大模型创业;Atlassian 裁员 |极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

正在改变一切的Ai聊天机器人

ChatGPT通过Al生成的内容让我们眼花缭乱&#xff0c;从一个聊天机器人转化成推动一个创新时代的技术&#xff0c;但&#xff0c;也并非人人都知道&#xff0c;那么&#xff0c;你知道Chatgpt到底是什么吗&#xff1f; 文章目录 前言一、什么是Chatgpt&#xff1f;二、如何使用C…

人工智能、机器学习、深度学习、神经网络概念说明

目录 1.机器学习的范围2.机器学习的方法2.1回归算法2.2神经网络2.3 SVM&#xff08;支持向量机&#xff09;2.4聚类算法2.5降维算法2.6推荐算法2.7总结 3 机器学习的分类3.1 监督学习3.2 无监督学习3.3 强化学习 4 机器学习模型的评估5 机器学习的应用 6 机器学习的子类--深度学…

chatgpt赋能python:处理超大文本文件的Python技巧

处理超大文本文件的Python技巧 在今天互联网时代&#xff0c;我们每天都会处理大量的数据。有些数据集非常庞大&#xff0c;可能包含数百万行甚至数十亿行。其中最常见的就是文本文件。如何在Python中高效地处理超大文本文件呢&#xff1f;在本文中&#xff0c;我们将提供一些…

chatgpt赋能python:Python文本段落提取:优化文章阅读体验

Python文本段落提取&#xff1a;优化文章阅读体验 在阅读长篇文章时&#xff0c;我们往往需要快速地找到自己感兴趣的内容&#xff0c;这就需要滚动查找。但是如果一篇文章没有明确的章节分析和标记&#xff0c;那么这个查找过程就会变得非常麻烦。因此&#xff0c;一些文本段…