电商商城定制开发【网络安全篇】php伪协议-漏洞及其原理

🏆电商商城定制开发今日学习目标:
🍀学习php伪协议
✅创作者:贤鱼
⏰预计时间:35分钟
🎉个人主页:
🔥专栏系列:
🍁电商商城定制开发贤鱼的个人社区,电商商城定制开发欢迎你的加入
🍁电商商城定制开发如果有需要可以查看下面文章


php伪协议

🍀电商商城定制开发支持为协议的函数

🍁电商商城定制开发文件包含函数

include();include_once();require();require_once();
  • 1
  • 2
  • 3
  • 4

举个例子

include(文件名) ;
作用是如果文件名下的文件中有php代码,就会执行php代码,其他的部分直接输出

🍁 文件操作类函数

fopen();file();readfile();file_get_contents();......
  • 1
  • 2
  • 3
  • 4
  • 5

举个例子

file_get_contents(文件名);
作用是直接读出文件名下文件的内容

🍀伪协议

🍁 file://

作用是访问本地文件系统

不受allow_url_fopen和allow_url_include影响
用法:

/path/to/file.extrelative/path/to/file.extfileInCwd.extC:/path/to/winfile.extC:\path\to\winfile.ext\\smbserver\share\path\to\winfile.extfile:///path/to/file.ext
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

🍁 http://https://

作用是访问http(s)网址

文件操作函数需开启allow_url_fopen,文件包含需同时开启allow_url_include和allow_url_fopen。
用法:

http://example.com/file.php?var1=val1&var2=val2http://user:password@example.com
  • 1
  • 2
  • 3

可以自己搭建一个网站然后利用漏洞

🍁ftp://

作用:访问ftp(s)URLs

文件操作函数需开启allow_url_fopen,文件包含需同时开启allow_url_include和
allow_url_fopen。

用法:

ftp://user:password@example.com/pub/file.txtftps://example.com/pub/file.txt
  • 1
  • 2

🍁 php://

作用是访问各个输出输出流

🍁php://input

可以访问亲求的原始数据只读流
可以理解为这一串话整个是一个特殊的文件名,和include搭配的话,因为include可以读取文件名下的内容并且有php代码就执行,可是这个特殊的文件名是找不到的,所以我们就可以自己写文件内容

文件操作函数需开启allow_url_fopen,文件包含需同时开启allow_url_include和
allow_url_fopen。

🔥例题讲解:


做题首先要读懂代码

很明显,这个代码的意思就是说过滤flag,如果没有flag就可以包含文件

具体怎么做呢?

上文所说,我们利用php://input可以自己写文件并且执行,那么我们可以传参php://input然后在下面写php代码

🍁php://filter

php://filter 是一种元封装器,设计用于数据流打开时的筛选过滤应用

本地文件无论allow_url_fopen,allow_url_include是否开启都可以使用,allow_url_fopen开启时文件操作函数里resource可以是远程的,allow_url_include也开启包含resource才可以是远程的。

用法:

php://filter/read=convert.base64-encode/resource=c:/windows/win.ini
  • 1

讲解一下每个部分的作用

read是要执行的操作
convert.base64-encode的意思是读出的内容经过一次base64编码
resource后面跟的是读取内容的路径

参数(作为路径的一部分)

名称描述
resource=<要过滤的数据流>这个参数是必须的。它指定了你要筛选过滤的数据流。
read=<读链的筛选列表>该参数可选。可以设定一个或多个过滤器名称,以管道符(
write=<写链的筛选列表>该参数可选。可以设定一个或多个过滤器名称,以管道符(
<;两个链的筛选列表>任何没有以 read= 或 write= 作前缀的筛选器列表会视情况应用于读或写链。

字符串过滤器

名称描述
string.rot13进行rot13转换
string.toupper将字符全部大写
string.tolower将字符全部小写
string.strip_tags去除空字符、HTML 和 PHP 标记后的结果

编码过滤器

onvert.iconv.utf-8.utf-7将utf-8编码转换为utf-7编码,这样再继续使用base64编码写文件时候,不会因为特殊符号无法新建文件(windows)
convert.base64-encode/convert.base64-decodebase64编码解码
onvert.quoted-printable-encode/convert.quoted-printable-decodequoted-printable 编码解码

🍁 data://

数据流封装器,直接就是数据。

文件操作函数需开启allow_url_fopen,文件包含需同时开启allow_url_include和
allow_url_fopen。

用法

data://text/plain,<?php phpinfo()?>data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=
  • 1
  • 2

第一个就直接执行后面的php代码,第二个的意思是将后面的一串经过base64解码后执行(用来绕过过滤)

🔥例题讲解



这里编码完最后其实有一个+,但是如果+不处理就无法执行,所以我们提前url编码一次,+的url编码是%2b

🍁 compress.zlib:// compress.bzip2:// zip://

用法:

compress.zlib://file.gzcompress.bzip2://file.bz2zip://archive.zip#dir/file.txt
  • 1
  • 2
  • 3

🏆结束语

如果感兴趣,可以订阅一下专栏!!持续更新网络安全方面的内容!!

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发