Root Me Challenges_web-serveur_ 1_FileManager v 0.01(php://filter的运用)

Root Me Challenges___FileManager v 0.01

题目:

题目为FileManager v 0.01,提示信息:Retrieve the administrator password of this application.,就是要我们得到管理员密码
进入题目,有两个连接:home和login
Root Me Challenges_web-serveur_ 1_FileManager v 0.01(php://filter的运用)_第1张图片
点击进入,可以看到其实只是传了参数进去,分别为

?inc=login.php 和 ?inc=accueil.php

尝试sql注入,无果,尝试暴力破解,无果。。。。。。。

卡了很久,想到题目与文件管理有关,而且页面也是根据传入的php参数得到,试试用php://filter得到他们的源码。

传入:

?inc=php://filter/read=convert.base64-encode/resource=accueil.php

返回一串base64加密后的密文,解密后没啥有用信息,但证明的我们的思路是正确的
再传:?inc=php://filter/read=convert.base64-encode/resource=login.php
将返回的base64密文解密后得到login.php源码
Root Me Challenges_web-serveur_ 1_FileManager v 0.01(php://filter的运用)_第2张图片
注意到其中包含了一个config.php,一样的方法,传入

?inc=php://filter/read=convert.base64-encode/resource=config.php

将得到的base64解码,得到密码
在这里插入图片描述
到login页面,用用户名密码登录,完成!
Root Me Challenges_web-serveur_ 1_FileManager v 0.01(php://filter的运用)_第3张图片

关于php://filter

php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和 file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。

php://filter 的参数

参数 描述
resource=<要过滤的数据流> 这个参数是必须的。它指定了你要筛选过滤的数据流。
read=<读链的筛选列表> 该参数可选。可以设定一个或多个过滤器名称,以管道符(|)分隔。
write=<写链的筛选列表> 该参数可选。可以设定一个或多个过滤器名称,以管道符(|)分隔。

read参数值可为

string.strip_tags: 将数据流中的所有html标签清除
string.toupper: 将数据流中的内容转换为大写
string.tolower: 将数据流中的内容转换为小写
convert.base64-encode: 将数据流中的内容转换为base64编码
convert.base64-decode: 将数据流中的内容转换为base64解码

格式:

php://filter/[read=参数/]sourse=文件
php://filter/[write=参数/]sourse=文件

常用的:

php://filter/read=convert.base64-encode/resourse=index.php       //用于读取index.php的源代码
php://filter/write=convert.base64-decode/resourse=index.php         //用于向index.php中写入代码

这里有一道类似的题:
http://4.chinalover.sinaapp.com/web7/index.php

资料参考:
https://blog.51cto.com/wt7315/1863177
https://www.leavesongs.com/PENETRATION/php-filter-magic.html
https://www.jianshu.com/p/0a59c40183e5
https://lorexxar.cn/2016/09/14/php-wei/

你可能感兴趣的:(ctf_web)