文件上传之后端黑白名单绕过

文件上传常见验证:

后缀名:类型,文件头等

后缀名:黑名单,白名单

#黑名单:明确不让上传的格式后缀(asp,php,jsp,aspx,cgi,war)

黑名单验证利用代码编写漏洞尝试绕过,比如后缀名加.jpg.php,抓包加空格,大小写后缀名,循环验证与一次验证单次验证只去除一个字符,可以通过添加多个干扰字符实现绕过等。

#白名单:明确可以上传的格式后缀(jpg,png,zip,rar,gif)

白名单上传可以使用干扰字符绕过,具体看搭建环境版本以及类型

主流都是使用白名单验证

文件类型:MIME信息

#上传抓包可以通过Content-Type:这个类型判断上传文件类型,修改值的内容绕过

例:Content-Type:application/octet-stream修改为Content-Type:image/jpeg

文件头:内容头信息

#每一个图片文件都有一个特定的开头内容,验证方式是通过文件头判定是否为图片文件,可以通过修改文件头绕过

例:.png格式的为“塒NG”,.gif的为GIF89a

注:PHP代码查找需要知道相应的意思,使用$_FILES[][]验证一般是获取文件的信息然后判断

$_FILES ['upload-file']['name']表示获取上传文件的文件名;

$_FILES ['upload-file']['type']表示获取上传文件的文件类型(image/jpeg)

$_FILES ['upload-file']['size']表示获取上传文件的文件大小

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文件上传中的名单过滤是一种常见的安全措施,用于防止恶意文件的上传。然而,名单过滤并不是绝对可靠的,存在一些绕过方式。以下是一些可能的绕过方式: 1. 修改文件扩展名:名单过滤通常是通过检查文件的扩展名来判断文件类型的。攻击者可以尝试修改文件的扩展名,使其绕过名单过滤。例如,将恶意的可执行文件的扩展名修改为图片文件的扩展名。 2. 使用特殊字符:攻击者可以使用特殊字符或编码来混淆文件内容,使其看起来不符合名单规则。例如,使用URL编码或Unicode编码来绕过名单过滤。 3. 压缩文件:攻击者可以将恶意文件压缩成压缩包,然后上传。由于名单过滤通常只检查文件的扩展名,而不会解压缩文件进行检查,因此可以绕过名单过滤。 4. 使用其他协议:如果名单过滤只针对特定协议(如HTTP)进行检查,攻击者可以尝试使用其他协议来上传文件,如FTP或SFTP。 5. 绕过客户端验证:名单过滤通常是在服务器端进行的,但客户端也可能进行一些验证。攻击者可以通过修改客户端代码或使用自定义的上传工具来绕过客户端验证,直接上传恶意文件。 需要注意的是,以上方法仅供了解和学习,不鼓励或支持任何非法活动。为了确保文件上传安全性,建议采取以下措施: - 使用白名单过滤:与名单过滤相反,白名单过滤只允许特定的文件类型上传,其他类型的文件将被拒绝。 - 检查文件内容:除了检查文件扩展名外,还可以对文件内容进行检查,例如通过文件头部信息判断文件类型。 - 设置合适的文件权限:限制上传文件的访问权限,确保只有授权用户可以访问上传的文件。 - 定期更新安全规则:及时更新名单或白名单规则,以应对新的安全威胁。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值