上传漏洞.md 2.0 KB


notion-id: 18ed6c4d-1582-4522-b7fd-7ff90a62ee

进阶上传绕过方法

一,绕过文件后缀检查-黑名单

.htaccess文件

<FilesMatch"as.png">
SetHandler application/x-httpd-php
</FilesMatch>

通过一个.htaccess文件调用php的解析器去解析一个文件名中只要包含"haha"这个字符串的任意文件.所以无论文件名是什么样子·只要包含"haha"这个字符串,都可以被以php的方式来解析,一个自定义 的.htaccess文件就可以以各种各样的方式去绕过很多上传验证机制。

二,绕过文件后缀检查-白名单【安全性更高】

文件扩展名不在白名单中为不合法。 绕过方法:

服务端判断文件类型是从后往前判断·而对文件解析是从前往后解析·可以利用00截断的方式进行绕过·包括
%00截断与0x00截断

%00截断
url发送到服务器后被服务器解码·这时还没有传到验证函数,也就是说验证函数里接收到的不是%00字符,而是
%00解码后的内容,即解码成了0x00。

0x00截断
系统在对文件名进行读取时,如果遇到0x00·就会认为读取已经结束。但要注意是文件的十六进制内容里的00,
而不是文件名中的00。

burpsuite
GET:=uploadlabs/Pass-01/index.php?name=as.php%00.png
post:通过HEX 的空格 20 修改成00 变成特殊字符

三,绕过文件内容检查

一般通过检测文件内容来判断上传文件是否合法.

主要有两种检测方法
1.通过检测上传文件内容开始处的文件幻数来判断。
通常情况下·通过判断前10个字节·基本就能判断出一个文件的真实类型。

绕过工具:winhex 查看文件头的十六进制,也可以直接修改


2.文件加载检测
一般是调用AP或函数对文件进行加载测试。常见的是图像渲染测试·再严格点的甚至是进行二次渲染·

绕过方式:

![[Notion/👽渗透笔记👽/上传漏洞/attachments/Untitled 2.png]]