web:[GXYCTF2019]BabyUpload(文件上传、一句话木马、文件过滤)

题目

web:[GXYCTF2019]BabyUpload(文件上传、一句话木马、文件过滤)_第1张图片

页面显示为文件上传

web:[GXYCTF2019]BabyUpload(文件上传、一句话木马、文件过滤)_第2张图片

随便上传一个文件看看

上传一个文本文件显示

上传了一个图片显示

上传包含一句话木马的图片

web:[GXYCTF2019]BabyUpload(文件上传、一句话木马、文件过滤)_第3张图片

上传了一个包含php一句话木马的文件,显示如上

换一个写法

web:[GXYCTF2019]BabyUpload(文件上传、一句话木马、文件过滤)_第4张图片

web:[GXYCTF2019]BabyUpload(文件上传、一句话木马、文件过滤)_第5张图片

上传成功

尝试上传.htaccess,上传失败,用抓包修改文件后缀

返回题目首页,找到了题目源码

web:[GXYCTF2019]BabyUpload(文件上传、一句话木马、文件过滤)_第6张图片

 
Upload
上传文件
"; error_reporting(0); if(!isset($_SESSION['user'])){ $_SESSION['user'] = md5((string)time() . (string)rand(100, 1000)); } if(isset($_FILES['uploaded'])) { $target_path = getcwd() . "/upload/" . md5($_SESSION['user']); $t_path = $target_path . "/" . basename($_FILES['uploaded']['name']); $uploaded_name = $_FILES['uploaded']['name']; $uploaded_ext = substr($uploaded_name, strrpos($uploaded_name,'.') + 1); $uploaded_size = $_FILES['uploaded']['size']; $uploaded_tmp = $_FILES['uploaded']['tmp_name']; if(preg_match("/ph/i", strtolower($uploaded_ext))){ die("后缀名不能有ph!"); } else{ if ((($_FILES["uploaded"]["type"] == " ") || ($_FILES["uploaded"]["type"] == "image/jpeg") || ($_FILES["uploaded"]["type"] == "image/pjpeg")) && ($_FILES["uploaded"]["size"] < 2048)){ $content = file_get_contents($uploaded_tmp); if(preg_match("/\<\?/i", $content)){ die("诶,别蒙我啊,这标志明显还是php啊"); } else{ mkdir(iconv("UTF-8", "GBK", $target_path), 0777, true); move_uploaded_file($uploaded_tmp, $t_path); echo "{$t_path} succesfully uploaded!"; } } else{ die("上传类型也太露骨了吧!"); } } } ?>

文件后缀名为image/jpeg,抓包修改文件后缀名

web:[GXYCTF2019]BabyUpload(文件上传、一句话木马、文件过滤)_第7张图片

web:[GXYCTF2019]BabyUpload(文件上传、一句话木马、文件过滤)_第8张图片

然后使用蚁剑连接

web:[GXYCTF2019]BabyUpload(文件上传、一句话木马、文件过滤)_第9张图片

web:[GXYCTF2019]BabyUpload(文件上传、一句话木马、文件过滤)_第10张图片

web:[GXYCTF2019]BabyUpload(文件上传、一句话木马、文件过滤)_第11张图片

或者使用show_source() 函数,进行post传参

web:[GXYCTF2019]BabyUpload(文件上传、一句话木马、文件过滤)_第12张图片

别的解法:

[GXYCTF2019]BabyUpload wp_文件上传ph被过滤了ctf-CSDN博客

你可能感兴趣的:(BUUCTF-WEB,网络安全,web安全)