打开网页,可以看到题目给出的后端源代码:
点击 shell 那个超链接,会跳转到服务器的另一个文件:
阅读代码可知,我们需要用 GET 请求发送一个参数file
,并且它的值不能包含flag
字符串。这样就会触发include $_GET["file"];
这段代码的执行,进而产生文件包含漏洞。包含了shell.txt
后,可以用 POST 请求发送ctfhub
参数,进而达到任意代码执行。
我们用命令find / -iname flag
找 Flag 文件的位置:
然后用cat
命令打印出来: