欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2017-赛客夏令营-Web-Uploadddd

程序员文章站 2022-03-09 22:37:21
...

ctfhub-2017-赛客夏令营-Web-Uploadddd

木马文件是可以上传,但是路径不知道
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 ,但是文件名更改为时间,还加了随机数,我本地搭建了一个,先尝试去掉随机的,可以发现是以时间命名,与提交的时间一样
2017-赛客夏令营-Web-Uploadddd再加上随机的,这次随机的数是900
2017-赛客夏令营-Web-Uploadddd这就一目了然了,随机数只能**了,直接就去实战可以了

2017-赛客夏令营-Web-Uploadddd时间 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跑
2017-赛客夏令营-Web-Uploadddd然后再复制字典粘贴上去,启动
2017-赛客夏令营-Web-Uploadddd最后跑完,排一下(It is ok!是我在一句话中自己添加的,为了方便确认上传是否成功)
2017-赛客夏令营-Web-Uploadddd蚁剑连接,html目录下拿到flag
2017-赛客夏令营-Web-Uploadddd

.

相关标签: CTF php