题库地址:http://hackinglab.cn
第一关
题目:
请上传一张jpg格式的图片
分值: 100
只能上传jpg格式的图片哦~!
解题方法:
进入题目,查看页面源代码。
上传的时候调用了check()函数,我们直接从浏览器删除掉onsubmit的值。
删除后任意上传一个php
第二关
题目:
请上传一张jpg格式的图片
分值: 150
只能是jpg哦!
解题方法:
第二关还是前端校验,利用burp suite进行拦截,修改文件名后缀即可。
第三关
题目:
请上传一张jpg格式的图片
分值: 150
只能是jpg哦!
解题方法:
查看页面源代码,注意那段JavaScript代码。
<script>
function check(){
var filename=document.getElementById("file");
var str=filename.value.split(".");
var ext=str[1];
if(ext==='jpg'){
return true;
}else{
alert("请上传一张JPG格式的图片!");
return false;
}
return false;
}
</script>
- split() 方法用于把一个字符串分割成字符串数组。
- str[1] : [0]是数组中的第一个元素。[1] 是第二个。数组索引从 0 开始。
分析:
程序利用 split(".") 函数进行分割后,将第二个元素进行比较,如果元素值为jpg,即可上传成功。
那么可以构造文件名为:xxx.jpg.php