buuctf [极客大挑战 2019]Secret File 1

本文介绍了参加极客大挑战2019时遇到的一道题目,涉及通过源码分析、HTTP抓包及PHP伪协议来解密隐藏的flag.php文件。在尝试直接访问和查看源码无效后,通过php://filter协议以base64编码方式读取本地文件,最终解码获取到flag。

[极客大挑战 2019]Secret File 1

在这里插入图片描述打开以后:
在这里插入图片描述老规矩,直接看源码:
在这里插入图片描述看到第27行 有个提示文件
直接访问:
在这里插入图片描述点一下secret
在这里插入图片描述让我回去仔细看看:
回去再看一遍源码
还是没有提示
可能是页面跳转太快
那就抓个包看看:
既然是跳转快,那就重新发送有个
然后看看它的回应包:
在这里插入图片描述这个回应包里面有一个提示文件
那就直接访问一下试试:
在这里插入图片描述有一个备注:flag放在flag.php里面
那就访问这个flag.php
在这里插入图片描述它说看不到它
那就看看源代码
在这里插入图片描述也没有
那应该是它不可以读这个文件
那这题可能是考察php伪协议读取本地文件
用php伪协议来读取flag.php
查一下伪协议的原理:
在这里插入图片描述
“php://filter 读取输出,不然会直接当做php代码执行就看不到源代码内容了。”

题目提示看不到,那就一个是这个
看着源码,试一下构造:
file关键字的get参数传递
php://是一种协议名称
php://filter/是一种访问本地文件的协议,
/read=convert.base64-encode/表示读取的方式是base64编码后,
resource=flag.php表示目标文件为flag.php
结合一下:
?file=php://filter/convert.base64-encode/resource=flag.php
在这里插入图片描述base64解码:
在这里插入图片描述到这里就可以去交flag了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值