[BUUCTF][WEB][ACTF2020 新生赛]Upload 1

打开靶机url,右键查看网页源代码
其中有一段代码
<div class="light"><span class="glow">
			<form enctype="multipart/form-data" method="post" onsubmit="return checkFile()">
				嘿伙计,你发现它了!
                <input class="input_file" type="file" name="upload_file"/>
                <input class="button" type="submit" name="submit" value="upload"/>
            </form>
      </span><span class="flare"></span><div>
这里看出来是考察的前端文件检查,F12,看一下js的代码,发现一个main.js
    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 = "该文件不允许上传,请上传jpg、png、gif结尾的图片噢!";
            alert(errMsg);
            return false;
        }
    }
从这段源码可知,前端在检查上传的文件必须是jpg、png、gif,这个好搞定,先将一句话木马命名为jpg,然后可以借助burpsuite,拦截请求,然后将名称改回即可
将之前(上一篇)的shell.phtml 重命名为 shell.jpg , 上传,通过burpsuite 拦截,再将名称改回 shell.phtml

上传成功,显示

Upload Success! Look here~ ./uplo4d/bd914ca4997d34857501cefab0064162.phtml
构造一下url,蚁剑链接,成功获得flag
http://86f689a5-c818-44ac-a6f9-423e84064daa.node4.buuoj.cn:81/uplo4d/bd914ca4997d34857501cefab0064162.phtml
posted @ 2022-12-11 21:19  明月照江江  阅读(187)  评论(0编辑  收藏  举报