题目概述

脚本接受一个名为file的GET参数,并根据该参数的值来决定是否包含(执行)对应的文件。目标是找到一种方法包含并执行一个恶意文件,以获取flag。

解题步骤

  1. 分析脚本

首先,我们来看看这个PHP脚本的关键部分:

从脚本中可以看出,要执行我们指定的文件,需要满足以下条件:

  1. file参数必须被设置。
  2. file参数的值中不能包含字符串”flag”,否则会被认为是黑客行为,并输出”Hacker!!!”。
  3. 寻找可利用的文件

题目中提到了一个shell.txt文件,并且网页上也提供了一个链接。我们可以猜测这个文件可能是一个一句话木马,即一个简单的PHP脚本,用于接受外部命令并执行。

  1. 构造输入

由于file参数的值不能包含”flag”字符串,我们需要找到一个方法来绕过这个限制,同时又能包含shell.txt文件。这里我们可以使用URL编码或者路径遍历等技巧,但由于题目没有给出具体的文件路径和服务器配置,我们假设shell.txt文件在当前目录下,并且可以直接通过文件名访问。

因此,我们构造了以下输入:

file=shell.txt

将这个输入编码到URL中,并访问该URL。如果shell.txt文件确实存在,并且是一个一句话木马,那么它应该会被包含并执行。

  1. 利用一句话木马

一旦我们成功包含了shell.txt文件,我们就可以利用它来执行任意命令。这里我们可以使用中国菜刀(蚁剑)等工具来连接这个一句话木马,并尝试获取flag。

连接成功后,我们可以查看服务器的文件目录,找到包含flag的文件,并将其内容读取出来。

  1. 验证结果

通过蚁剑等工具,我们成功地读取到了包含flag的文件内容,得到了flag的值:

admin

By admin

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注