php伪协议漏洞_php伪协议利用文件包含漏洞

php支持多种封装协议,这些协议常被CTF出题中与文件包含漏洞结合,这里做个小总结。实验用的是DVWA平台,low级别,phpstudy中的设置为5.4.45版本

设置allow_url_fopen和allow_url_include都为On.

index.php

4d4465a2612fcc7e6e90051b90201aa2.png

index.php同级目录下有mytest001.txt

mytest002.txt

cdd52251fb789406c85aaab2fc1e459b.png

mytest003…txt

a1edd525000daba395bf2089a46d9b33.png

再说明一下,include()函数对文件后缀名无要求,而对其中的语法有要求,即使后缀名为txt,jpg也会被当做php文件解析,只要文件内是形式就可以执行,但是如果不是php语法的形式,即使后缀为php,也无法执行。

一,php:// 访问输入输出流,有两个常用的子协议

1,php://filter 设计用来过滤筛选文件

用法

非php语法文件include失败,直接输出源码内容。

e76d6207391f216489d68efc51351b89.png

php语法文件include成功,直接运行

24e5c6e5c1d7311cf60e909820e1cc5a.png

如果想要读取运行php文件的源码,可以先base64编码,再传入include函数,这样就不会被认为是php文件,不会执行,会输出文件的base64编码,再解码即可。

b7037079b054fdd0d508d1dc2fe6d477.png

7ae5c8a2d147b37598052943628838a0.png

若采用rot13编码,对php文件中的

4d46d2c034fc9f5e65483c70dcf3c160.png

bfcba3535a82e6cc30dc5060c24d3029.png

87723959d14c573687a1ae85e0787812.png

2,php://input

这个协议的利用方法是 将要执行的语法php代码写在post中提交,不用键与值的形式,只写代码即可。

fe1f78a69d2951d35b4a5d749579e4dd.png

如果可以自己构造代码,就可以看到更重要的信息:

1d0d3d76c5893c525d4dd7d698b39a11.png

二,file:// 与php:filter类似,访问本地文件,但是只能传入绝对路径

c1ad40895ce37ebd50b6412f9e51a9bf.png

三,phar:// 可以查找指定压缩包内的文件

1,传入绝对路径

02a4480426ab8919fe45319fb2922af4.png

2,传入相对路径,即同级目录下的文件

257b7c02f7251b48cb59b8ca90b2b3e5.png

四,zip:// 用法与phar类似,不过有两点要注意

1,只能传入绝对路径。

2,要用#分隔压缩包和压缩包里的内容,并且#要用url编码%23

10d7f53012ce425959f779fe46032967.png

五,data 与input 类似,都是用户可以控制传入的php代码

1,直接写入代码

data: text/plain,

e65f0e5e7b8b0ebf37c5749786d7e23d.png

2,使用base64编码

data:text/plain;(注意是分号不是逗号,与前面不同)base64,编码后的php代码

2fc24f585ce799eeb86cb2e2ace6808d.png

有一点要注意的问题,base64编码后的加号和等号要手动的url编码,否则无法识别。

00fa9dfdd164499115e0260c75ce54b0.png

同样的,给了自己写代码的权利,就可看到更多东西

72b5803d3635bdd10016fe67197e5e32.png

六,http协议

include中也可以传入外部链接,采用http://,具体怎么利用以后再来填坑。

5942ecf8d6a40e1a950d64746dabb1a4.png

最后来总结一下,

php://filter file:// 可以访问本地的文件

zip:// phar:// 可以访问本地压缩文件

php://input data: 可以自己写入php代码

关于allow_url_fopen和allow_url_include的设置和用法这里有个总结:

778436622b0f42e04a1c108d01886728.png

参考:http://www.freebuf.com/column/148886.html

https://www.cnblogs.com/Spec/p/11137030.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PHP文件包含漏洞是一种常见的Web安全漏洞,攻击者可以利用漏洞通过包含恶意文件来执行任意代码。其中,利用phpinfo函数可以获取服务器的详细信息,包括PHP版本、操作系统、配置文件路径等,攻击者可以利用这些信息来进一步攻击服务器。因此,对于PHP文件包含漏洞,我们需要及时修复漏洞并加强服务器的安全防护措施,以保障网站的安全性。 ### 回答2: php文件包含漏洞是一种常见的Web应用程序漏洞,它允许攻击者在没有正常访问权限的情况下获取Web应用程序的敏感数据和系统资源。利用phpinfo函数,攻击者可以获得关于Web服务器和PHP环境的详细信息,包括内存使用情况、PHP模块的版本、系统路径、配置文件名等等,这些信息可用于进一步攻击或收集有关系统的信息。 通常情况下,php文件包含漏洞产生的原因是由于Web应用程序没有正确的过滤和验证用户输入,并允许用户传递文件名或路径。如果攻击者可以在该位置输入恶意代码,他们就可以通过访问特定的URL,向web服务器请求文件或脚本来执行所需的操作。 对于php文件包含漏洞,攻击者可以利用phpinfo函数来获取大量有关Web服务器和PHP配置的信息。如果攻击者可以获取此信息,他们将更容易地了解Web服务器的配置和缺陷,从而定向和更容易地入侵目标系统。例如,攻击者可以使用所收集到的信息来寻找系统上的其他漏洞,或者在成功入侵后利用该信息来控制服务器,尝试使用系统权限执行任意代码或更改配置。 为了保护Web应用程序安全,我们可以采取以下措施来防止php文件包含漏洞的发生: 1. 使用安全的编程实践来避免不可信数据输入 2. 防止对敏感资源和服务器配置文件的读取 3. 激活PHP配置参数,如open_basedir,以限制PHP访问的目录 4. 限制Web服务器的目录访问权限 5. 定期检查服务器日志来检测异常行为和攻击行为 6. 采用安全的编程方法避免可能的错误,并保持对最新漏洞和安全威胁的关注 php文件包含漏洞可能会导致非常严重的安全问题,所以应采取有效的措施来保护Web应用程序和服务器的安全。通过实践良好的编程实践和安全性控制策略,可以帮助我们保护Web应用程序不受恶意攻击的影响,从而确保我们的数据和系统的安全性。 ### 回答3: PHP文件包含漏洞是一种常见的网络安全漏洞。它的存在导致黑客可以利用这个漏洞通过访问包含文件来执行任意代码并控制整个服务器。 PHP文件包含漏洞的根源在于PHP提供了一种方便的方式来包含另一个文件中的代码,这种方式是通过 include() 或 require() 函数实现的。这些函数接受一个文件名作为参数,然后将该文件中的代码“拷贝并粘贴”到当前的PHP文件中。这个机制的漏洞是黑客可以通过传递带有恶意代码的参数来包含任意文件,这可能是远程服务器上的PHP脚本,也可能是包含恶意代码的本地文件。 PHPInfo是一个php的系统信息函数,负责显示PHP配置和环境信息。这,黑客可以利用PHPInfo来寻找服务器的弱点,并进一步利用php文件包含漏洞。通过读入php.ini一个配置文件,该函数可以泄漏服务器的所有信息,包括文件路径、数据库密码、服务器版本、PHP版本等等。 黑客可以通过以下步骤来利用php文件包含漏洞phpinfo()函数进一步渗透服务器: 1. 使用phpinfo()函数来获取服务器的系统信息和配置信息 2. 解析得到的信息,寻找PHP文件包含漏洞的存在 3. 通过向include()或require()函数传递恶意文件来执行任意代码并控制服务器 为了避免这些漏洞PHP开发者应该始终验证来自用户的输入。对于文件包含,应该限制包含文件的范围,禁止包含远程文件,并使用白名单来确定包含文件的位置。同时,应该禁用phpinfo()函数或者确保它只在受信任的环境中使用。 维护者还可以使用一些工具例如模糊测试技术、代码审计等来发现并修复这些漏洞。实施彻底的安全措施对于预防这些漏洞的产生非常重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值