OWASP Top 10之文件上传漏洞简析(二)

本文深入探讨了Web应用中的关键安全漏洞,包括文件类型解析错误、GIF文件头绕过、黑名单绕过、后缀名解析漏洞、0x00截断攻击以及Apache重写文件问题,并提供了相应的防范策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0x01.

在问题一(详见上文)中,获取文件后缀名$file_type = $_FIELS['file']['type'],通过和白名单比较,假如相同,则取上传文件的后缀名。上文说过,MIME头欺骗问题(这里不考虑重命名文件名问题),如果上传数据包修改Content-type的类型,$file_type就获取修改后文件类型。

如:上传1.php=>burpsuite拦截修改数据包中的Content-Type为:image/jpg=>$file_type="image/jpg",$file_name="1.php"。

1.GIF89a文件头绕过,程序规定只能上传gif文件,由于获取文件类型也是通过$file_type获取,程序判断上传文件头部信息是否符合白名单类型。

伪代码:$filetype = fileHeaderRead($uploadFile);if $fileType =='GIF89a' echo 'upload success';

修改上传webshell里的头部信息,由于GIF代码头部信息是GIF89a,所以webshell里代码:GIF89a<?php code?>

2.黑名单绕过

事先规定不允许上传的类型列表,asp|aspx|jsp|php|asa|....

加入上传shell.cer,或者大小写绕过,shell.Asp/shell.pHp....

3.后缀名解析漏洞

IIS6.0/Apache/Nginx(php-fpm)

常见shell.asp;.jpg,/shell.asp/shell.jpg,shell.php.xxx(apache从右往左解析,不识别,跳到下一个解析)

4.0x00截断

上传shell.php.jpg=>burpsuite拦截,在.php后加空格,在十六进制,对应的0x20修改为0x00(空),程序在处理这个文件名时,直接丢弃后面的.jpg,保存的文件名为shell.php

5.apache重写文件.htaccess。move_uploaded_file()函数,在移动文件时,如果文件存在,新文件直接覆盖旧文件。

转载于:https://www.cnblogs.com/developd/p/4666030.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值