文件上传漏洞绕过

文件上传漏洞

文件上传黑名单绕过

1.大小写绕过
2.其他后缀

常用后缀
asp/aspx:asp,aspx,asa,asax,ascx,ashx,asmx,cer,aSp,aSpx,aSa,aSax,aScx,aShx,aSmx,cEr
php:php,php5,php4,php3,php2,pHp,pHp5,pHp4,pHp3,pHp2,html,htm,phtml,pht,Html,Htm,pHtml
js:jsp,jspa,jspx,jsw,jsv,jspf,jtml,jSp,jSpx,jSpa,jSw,jSv,jSpf,jHtml

在这里插入图片描述

3.%00截断(%00标志文件名结束)

url编码%00代表为空,即二进制数据全为0
	文件识别过程:文件名.文件类型
	(1)当文件名在url时,即以get方式上传时,%00可被默认url解码,直接加入在文件后缀后加%00
		扩展:路径+文件名===>路径a.php%00+文件名,%00截断,识别为路径a.php%00
	(2)post时,可以先将文件后缀加入 空格+.jpg,利用burp hex功能将空格的编码20改为00即可。
4.利用解析漏洞(中间件漏洞)
		

```bash
iis:
	a.php;.jpg。iis从前向后解析读,识别为php,但是上传文件名就是a.php;.jpg(;用于隔开文件,有;表示两个文件)。
apache:
	a.php.aaa。从后往前读文件名,上传文件名a.php.aaa(不在黑名单的类型aaa),apache无法解析aaa,会解析php。
Nginx:
	a.php/.jpg。nginx从前往后解析解析为php

5.单个目录配置文件,

.htaccess:
	AddType application/x-httpd-php .jpg
	(将本目录下的所用jpg文件识别为php)
.user.ini
应用条件:
	PHPstudy
	php5.6以下不带nts的版本
		.user.ini

6.’.’

'a.php.'
	识别时会识别为'.空',即空格式,黑名单通过创建文件时,不会加入'.',访问的时候会被删掉,可绕过黑名单过滤。

7.::$DATA

'a.php::$DATA'
	引入文件内容,Windows文件系统,不适用于linux,读取时也会忽略,可绕过黑名单过滤。

8.双写

猜你喜欢

转载自blog.csdn.net/weixin_44411509/article/details/118930318