文件上传漏洞学习

 学习环境 upload-lobs

1.

pass-01:  

关键词:前端上传绕过;客户端js检查

浏览器禁用网页的javascript即可 上传phpinfo.php文件

 代码只是在客户端使用js对不合法图片进行检查

pass-02:服务端对数据包的MIME检查

 白名单

代码

$is_upload = false;
$msg = null; if (isset($_POST['submit'])) { if (file_exists(UPLOAD_PATH)) { if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) { $temp_file = $_FILES['upload_file']['tmp_name']; $img_path = UPLOAD_PATH . '/' . $_FILES['upload_file']['name'] if (move_uploaded_file($temp_file, $img_path)) { $is_upload = true; } else { $msg = '上传出错!'; } } else { $msg = '文件类型不正确,请重新上传!'; } } else { $msg = UPLOAD_PATH.'文件夹不存在,请手工创建!'; } }

只允许jpeg,png,gif的格式上传,否则不执行上传
用burpsuite 抓包修改MIME头,改为image/jpeg或image/png或image/gif

MIME:多用途互联网邮件扩展,它是一个互联网标准,在1992年最早应用于电子邮件系统,但后来也应用到浏览器服务器会将它们发送的多媒体数据的类型告诉浏览器,而通知手段就是说明该多媒体数据的MIME类型,从而让浏览器知道接收到的信息哪些是MP3文件,哪些是Shockwave文件等等。服务器将MIME标志符放入传送的数据中来告诉浏览器使用哪种插件读取相关文件

pass-03:

.htaccess绕过原理

还没写完

 

猜你喜欢

转载自www.cnblogs.com/liqik/p/10708001.html
今日推荐