[极客大挑战 2019]Secret File
打开之后查看源码
发现一些地址
点击跳转
再点击
说查阅结束,中间肯定跳转了某个地址,抓包看看
找到这个地址,打开
查看一下flag.php,什么都没有,猜测是文件包含读取,源码中也给了提示
这里涉及到文件包含漏洞知识-PHP伪协议,后续总结一下吧,还在学习当中。传入的file被过滤,但没有过滤filter。
使用 “php://filter"伪协议” 来进行包含。当它与包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,阻止其不执行。从而导致任意文件读取。
这里需要注意的是使用php://filter伪协议进行文件包含时,需要加上read=convert.base64-encode来对文件内容进行编码
发送请求得到base64编码后的flag.php文件源码:
此处参考:https://www.cnblogs.com/yesec/p/12379909.html
那么这里就可以构造payload:?file=php://filter/read=convert.base64-encode/resource=flag.php
成功读取到其base64的编码
取之,解码,得到flag
思路与[ACTF2020 新生赛]Include 一样,可以尝试一下
[ACTF2020 新生赛]Include:
打开后点击tips就得到这里,直接可以构造了
|