[基本实验] 利用Burp和FireBug绕过上传漏洞的前端防护

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hitwangpeng/article/details/47028161

前端代码一共分为两部分,upload.html负责表单,upload.php负责上传处理

upload.html

<html>
<head>
<title>图片上传</title>
<script type="text/javascript">
function checkFile(){
	var flag = false;//是否可以上传的标志位
	var str = document.getElementById("file").value;//获取文件名
	str = str.substring(str.lastIndexOf('.')+1);//得到扩展名
	var arr = new Array('png','bmp','gif','jpg');//允许上传的扩展名
	for (var i=0;i<arr.length;i++){
		if(str==arr[i]){
			flag = true;
		}
	}
	if(!flag){
		alert('文件不合法!');
	}
	return flag;
}
</script>
</head>
<body>
	<form action="upload.php" method="post" οnsubmit="checkFile()" enctype="multipart/form-data">
		<input type="file" name="file" id="file"/><br/>
		<input type="submit" value="提交" name="submit" />
	</form>
</body>
</html>


upload.php

<?php
	if(isset($_POST["submit"])){
		$name = $_FILE['file']['name']; //接收文件名
		$name = md5(date('Y-m-d h:m:s')).strrchr($name,".");//文件重命名操作,保留原有扩展名
		$size = $_FILES['file']['size'];//接收文件大小
		$tmp = $_FILES['file']['tmp_name'];//临时路径
		move_uploaded_file($tmp,$name);//移动临时文件到当前文件目录
		echo "文件上传成功!path:".$name;
	}
?>
首先先上传一个图片文件,检测程序的功能

图片上传成功

接下来直接上传php文件,检验前端程序对文件的检查


程序检测出上传文件不是图片文件,显示文件非法


直接查看网页源代码,可以看见前端检查非法文件的javascript代码


接下来使用FireBug工具,删除οnsubmit="checkFile()",使得检验函数失效


上传php文件,结果成功


接下来利用Burp来绕过检查,先将php文件的后缀改为jpg


通过检查后,把后缀名改回来,改成php


结果上传成功


实验结束


展开阅读全文
博主设置当前文章不允许评论。

没有更多推荐了,返回首页