2021-11-25 文件上传之后端黑白名单绕过

小迪

https://www.bilibili.com/video/BV1JZ4y1c7ro?p=20

在这里插入图片描述

1.文件上传常见验证:

后缀名:
在这里插入图片描述
大部分网站都是白名单验证
黑名单不完整的情况,后缀php还可以写成php5,phtml,这要看搭建平台的支持情况

文件类型:
MIME信息

MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型
一个采用了 MIME协议的电子邮件就叫做MIME邮件,MIME邮件在RFC822文档中定义的邮件头字段的基础上,扩充了一些自己专用的邮件头字段,例如,使用 MIME-Version头字段指定MIME协议的版本,使用Content-Type头字段指定邮件体的MIME类型
上传jsp文件,修改content-type 为image.jpeg达到绕过验证

在这里插入图片描述
文件头:
修改内容头信息绕过验证
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

https://blog.csdn.net/qq_42777804/article/details/98876646

上传代码部分

php部分
在这里插入图片描述
在这里插入图片描述

UPLOAD_PATH:上传路径
.加号的意思

html表单
在这里插入图片描述
$_FILES数组内容
在这里插入图片描述
在这里插入图片描述
action 属性规定当提交表单时,向何处发送表单数据。

upload-labs less-2
抓包修改 concent-type 为 image/jpeg
在这里插入图片描述在这里插入图片描述

黑名单
upload-labs less3
在这里插入图片描述
php 写成php5,php3,pthml
在这里插入图片描述
less4的黑名单就多了
在这里插入图片描述
.htaccess是Apache服务器中的

htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
如何在windows创建.htaccess
https://blog.csdn.net/kakuma_chen/article/details/71465251

<FilesMatch "fufu">
Sethandler application/x-httpd-php
</FilesMatch >

在这里插入图片描述

先上传.htaccess,上传fufu.jpg .htaccess把fufu当成php文件执行。

less6
在这里插入图片描述

没有大小写转换

less7
在这里插入图片描述
少了首尾去空,后缀加空格
less8
在这里插入图片描述
没有删除文件末尾的.
在这里插入图片描述
less9
在这里插入图片描述

在window的时候如果文件名+":: D A T A " 会 把 : : DATA"会把:: DATA"::DATA之后的数据当成文件流处理,不会检测后缀名,且保持:: D A T A 之 前 的 文 件 名 , 他 的 目 的 就 是 不 检 查 后 缀 名 例 如 : " p h p i n f o . p h p : : DATA之前的文件名,他的目 的 就是不检查后缀名例如:"phpinfo.php:: DATA:"phpinfo.php::DATA"Windows会自动去掉末尾的::$DATA变成"phpinfo.php"

less10 /less5
在这里插入图片描述
利用删除末尾的点和首位去空只执行了一次
less11
在这里插入图片描述
less12白名单
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
%00截断,系统在对文件名的读取时,如果遇到0x00,就会认为读取已结束,%00是被服务器解码为0x00发挥了截断作用
0x00是十六进制表示方法,%00和0x00是有区别的:%00是URL中的,0x00是文件命名
注意:
php版本在5.3.4以下
修改php.ini 魔术引号 magic_quotes_gpc = Off

在这里插入图片描述
在这里插入图片描述
用户上传的文件会被随机数加后缀重新命名
加%00绕过这一功能

在这里插入图片描述
在这里插入图片描述
( ̄y▽ ̄)╭ Ohohoho…这里我一直显示上传出错,但是我的php版本和魔术引号都改了
火狐插件一看,php版本7.3 泥码
在这里插入图片描述
打开phpstudy一看,本地127.0.0.1端口80php版本7.3,所以我以下网站不管设置什么版本,只要端口80那php版本还是7.3
在这里插入图片描述

之前的方法上传打开试一下,话说之前只是上传图片就以为成功了,一直没看phpinfo🤣,果然偷懒不行
在这里插入图片描述
在这里插入图片描述
重新设置端口版本改回来了
在这里插入图片描述
上传成功啦
在这里插入图片描述

less13
这里提交方式改为post
get会自动解码 %00
post不会解码 %00 -> url编码
在这里插入图片描述
在这里插入图片描述

上传成功
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值