PHP文件包含fillter,2. 文件包含(150)

文件包含 (150)

-------南京邮电大学ctf : http://4.chinalover.sinaapp.com/web7/index.php

z8wHrrJOXgboAAAAABJRU5ErkJggg==

eee15a7f72b65ea74a2c1c39b30d8f72.png

从这道ctf的网址 :http://4.chinalover.sinaapp.com/web7/index.php?file=show.php

我们明显感受到了文件包含的信息

文件包含漏洞,先了解一下php://filter

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

php://filter

php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和

file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。

php://filter 目标使用以下的参数作为它路径的一部分。 复合过滤链能够在一个路径上指定。详细使用这些参数可以参考具体范例。

php://filter 参数

名称 描述

resource=这个参数是必须的。它指定了你要筛选过滤的数据流。

read= 该参数可选。可以设定一个或多个过滤器名称,以管道符(|)分隔。

write= 该参数可选。可以设定一个或多个过滤器名称,以管道符(|)分隔。 任何没有以 read= 或 write= 作前缀 的筛选器列表会视情况应用于读或写链。

同时我也借此机会学到了文件读取的相关知识。

include “test.php”php文件包含,在执行流中插入写在其他文件中的有用的代码。读取的时候也是数据流形式,因此可以使用php://filter进行过滤,返回值为0,1。

readfile(“test.php”)是将文件以数据流的形式读取过来,并不会执行,但会在前台浏览器上进行解析。返回值是字节数多少。

file_get_contents(“test.php”)返回值为文本内容

此题运用的就是关于数据流过滤的文件包含,我们一般在进行文件包含的时候都这么写include “test.php”获得的就是test.php直接解析出来。但如果运用readfile(“test.php”) 就不进行解析,导致无法在浏览器前台进行显示。那么问题来了看题

它让我点击它 我一下子就点了他!!!

出来了个这个URL

http://4.chinalover.sinaapp.com/web7/index.php?file=show.php

1

一看呵呵哒,典型的文件包含漏洞我们可以通过构造含有漏洞的语句,查看想要看的代码

file=php://filter/read=convert.base64-encode/resource=index.php

注解:

1.php://filter/可用于处理打开的数据流,起到过滤作用。如果源文件为.php则很有可能在前台显示不出来。

2.此时我们采用的方法是,先让文件转化为base64格式(convert.base64-encode)然后再输出,这样不论是什么格式的文件都可以在前台输出。

convert.base64-encode和 convert.base64-decode使用这两个过滤器等同于分别

用base64_encode()和 base64_decode()函数处理所有的流数据。

convert.base64-encode支持以一个关联数组给出的参数。如果给出了 line-length,base64 输出将被用 line-length个字符为 长度而截成块。

如果给出了 line-break-chars,每块将被用给出的字符隔开。这些参数的效果和用 base64_encode()再加上 chunk_split()相同。

3.再次解码就可得到源代码,怎么样是不是很神奇啊!

看图片:

a93f11631da45da0cb6d3207ab048ef7.png

看见了base64编码!!

python解码就行啦,看图

683ed391bea559ba7dcea77a20951ffd.png

就可以得到flag

原文:https://www.cnblogs.com/bmjoker/p/8877336.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值