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

前端代码一共分为两部分,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


结果上传成功


实验结束


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值