客户端检测机制绕过
【实训目的】
1.认识客户端检测文件上传机制的风险;
2.能够熟练掌握客户端限制的常见方法。
【实训原理】
实训通过两种方法绕过客户端检测机制:
1.FireBug绕过是删除客户端的JavaScript验证。
2.BurpSuite绕过是利用中间人攻击技术,是按照正常的流程通过JavaScript
验证,然后在传输中修改内容,绕过验证。
【实训步骤】
步骤1、编写文件上传的WEB前端代码
在XAMPP的htdocs目录下建立upload.html文件,然后用记事本等工具进
行编辑,编写以下代码:
html
head
title图片上传/title
scripttype=text/javascript
functionFileCheck(){
varflag=false;
//定义允许上传的文件扩展名
vararr=newArray(png,bmp,gif,jpg,jpeg,svg);
//获取文件扩展名
varfilename=document.getElementById(file).value;
filename=filename.substring(filename.lastIndexOf(.)+1);
for(vari=0;iarr.length;i++){
if(filenamearr[i]){
flag=true;
}
}
if(!flag){
alert(不是图片文件!!);
returnfalse;
}
returnflag;
}
/script
/head
body
divstyle=margin:0auto;width:320px;height:100px;
formaction=upload.phpmethod=POSTonsubmit=returnFileCheck()
enctype=multipart/form-data
inputtype=filename=fileid=file/br
inputtype=submitvalue=提交name=submit/
/form
/div
/body
/html
在前端页面表单中使用onsubmit=FileCheck()调用FileCheck()函数来检查
上传文件的扩展名。如果不是规定的扩展名,将出现警示提示框:不是图片文件,
并停止上传(注意:在onsubmit=returnFileCheck()处,要加return,否则只弹
出提示框,还会继续上传)。
步骤2、编写后端接收文件代码
在XAMPP的htdocs目录下建立upload.php文件,然后用记事本等工具进
行编辑,编写以下代码:
?php
if(isset($_POST[submit])){
//将字符串编码由utf-8转到gb2312,解决中文文件不能上传问题
$name=iconv(utf-8,gb2312,$_FILES[file][name]);
$size=$_FILES[file][size];
$tmp=$_FILES[file][tmp_name];//临时文件名(包含路径)
if(!is_d