目录:
一、自己做:
源码:里面有我调式时的代码,,大佬们可用题目给的源码,
<?php
error_reporting(0);
session_save_path("/var/babyctf/");
session_start();
$flag="flag{you_get_it_haha}";
#require_once "/flag";
#highlight_file(__FILE__);
if($_SESSION['username'] ==='admin')
{
$filename='/var/babyctf/success.txt';
if(file_exists($filename)){
safe_delete($filename);
die($flag);
}
}
else{
$_SESSION['username'] ='guest';
echo "guest!"."\n"."<br>";
}
$direction = filter_input(INPUT_POST, 'direction');
$attr = filter_input(INPUT_POST, 'attr');
$dir_path = "/var/babyctf/".$attr;
if($attr==="private"){
# attr 是 private的话,就将文件上传到 session[username] 目录下。 否则 就是 attr的名字的文件中,
$dir_path .= "/".$_SESSION['username'];
echo "now dir_path is ".$dir_path."11111111111\n"."<br>";
}
if($direction === "upload"){
try{
if(!is_uploaded_file($_FILES['up_file']['tmp_name']

本文介绍了HFCTF2020的BabyUpload挑战,涉及PHP上传、下载逻辑,重点在于session文件的利用。作者通过分析源码和尝试,发现可以通过特定的文件名和目录操作,结合PHP的file_exists()函数,实现对目录和文件的控制。在理解了PHP的几种解析引擎后,作者成功绕过限制,实现权限提升,获取flag。
最低0.47元/天 解锁文章
7311

被折叠的 条评论
为什么被折叠?



