打开题目就是Upload Labs
详解可见之前的专辑
https://blog.csdn.net/weixin_43965597/category_10231409.html?spm=1001.2014.3001.5482

界面如图
可上传正常的图片文件
上传其他类型的文件时报错
网站对上传文件的后缀加上了限制
于是构造webshell,并修改后缀为.jpg
php文件内容为一句话木马,且连接密码为123
@eval($_POST[123])?>
将文件名修改为1.php.jpg

该文件上传成功,显示的是一张破损的图片,毕竟这根本不是一个jpg文件
右键获取图片地址

并复制在蚁剑中
在蚁剑空白处右键 选择添加数据
勾选如图
点击添加后即可发现界面中出现连接成功

双击添加的数据即可访问网站的目录
找到了flag文件


查看网站源码看看过滤逻辑
function checkFile() {
var file = document.getElementsByName('upload_file')[0].value;
if (file == null || file == "") {
alert("请选择要上传的文件!");
return false;
}
//定义允许上传的文件类型
var allow_ext = ".jpg|.png|.gif";
//提取上传文件的类型
var ext_name = file.substring(file.lastIndexOf("."));
//判断上传文件类型是否允许上传
if (allow_ext.indexOf(ext_name + "|") == -1) {
var errMsg = "该文件不允许上传,请上传" + allow_ext + "类型的文件,当前文件类型为:" + ext_name;
alert(errMsg);
return false;
}
}
只是对后缀进行了判定,故修改后缀即可绕过