jjnoob

hackinglab-文件上传

2019-05-28
jjnoob

因为这里的题目简单, 我又来了. 对, 我就是那个只会做简单题目的菜鸟.

一. 请上传一张jpg格式的图片

前端验证. 查看源码, 在html里看到:

<script>
	function check(){
		var filename=document.getElementById("file");
		var str=filename.value.split(".");
		var ext=str[str.length-1];
		if(ext=='jpg'){
			return true;
		}else{
			alert("请上传一张JPG格式的图片!")
			return false;
		}
		return false;
	}
</script>

选择本地一个t.php文件改后缀为t.jpg. 上传. 刷新页面, burp抓包, 修改request里面的t.jpgt.php, forward即可.


二. 请上传一张jpg格式的图片

做法和第一题一样.


三. 请上传一张jpg格式的图片

html源码中的js:

<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>

三道题的js源码的作用都是用.分割文件名, 并验证其中的一部分. 看Js源码不难发现, 第一题是验证最后一个小数点的后面部分, 第三道题是验证第一个小数点的后面部分.

做法大体同上, 只是构造:xxx.jpg.cpp


上一篇 xss挑战之旅

下一篇 尝试hexo

Content