第一关(js前端验证)
因为本关的只对上传的文件进行js前端验证,没有经过后端验证,我们可以通过删除js前端验证或通过bp抓包修改数据包的信息的方式,即可进行上传php文件(一般情况下文件上传都不允许上传php类型的文件)
这里我们上传一个php的文件,显示上传失败,并且提示我们只有上传jpg、gif、png类型的文件
方法一:删除js验证
右键检查,找到form表,把onsubmit后面的return checkFile()删除
为什么要删除return checkFile()呢?我们通过源代码知道checkFile(),就是网页自己定义的一个检查用户所上传的文件类型,我们把return checkFile()删掉后,网页就不会执行checkFile()里面的内容,也就是不会检查文件上传的类型
找到上传地址,点击右键新建标签页打开,我们就可以发现test.php里面已经运行了(我test.php里面是phpinfo(),当然我们可以上传一句话木马或者相应的webshell文件)
出现以下画面就上传成功了
方法二:bp抓包修改数据包信息
把test.php改成test.jpg,上传文件,然后通过抓包把test.jpg改为test.php,这样我们就能成功上传test.php文件,我们可以通过查看文件保存路径,发现虽然我们发送的是test.jpg,但保存下来的却是test.php
第二关:MIME验证
我们使用bp进行抓包,然后修改MIME的值,修改成image/jpeg,或者image/gif等,这样就能上传test.php文件了