解题步骤一
初始页面进入看到初始页面,且源代码无具体内容提示,因此先通过传入参数file尝试一下。

源代码:

解题步骤二
F12打开Chrome的控制台,用HackBar插件给file参数传入数据

查看到以下对应的返回内容:
-
ini_set("allow_url_include","on");,允许远程文件包含(RFI)攻击; -
error_reporting(0);关闭所有错误报告; -
$file=$_GET['file'];从GET请求中获取名为file的参数值,并将其赋值给变量$file; -
if(isset($file)): 用于检查变量$file是否已设置。 -
show_source(__FILE__);显示当前脚本的源代码。这是一个潜在的信息泄露风险,因为攻击者可以看到服务器上的源代码;综上所述需要通过file变量请求参数,因为存在include_once函数,可以使用php伪协议获取flag.php源码,

解题步骤三
可通过php:// 访问各个输入/输出流,常用php://filter和php://input,php://filter用于读取源码,php://input用于执行php代码,输入请求以下代码得到flag的base64编码结果。
?file=php://filter/read=convert.base64-encode/resource=flag.php
解题步骤四
通过在线base64解码工具,得到对应flag,注意flag提交格式。

173

被折叠的 条评论
为什么被折叠?



