黑名单/白名单

约 6 分钟读完

web漏洞文件上传

黑名单/白名单

后端验证

后缀名:黑名单,白名单

文件头:内容头信息

文件类型:MIME类型

黑名单

asp,php,jsp,aspx,cqi,war.....

缺陷:记录不全,比如php5,phtml等,没有加入黑名单。

白名单

jpg,png,rar,zip,gif........

文件类型

image-20241020194327859

http消息中有个Content-Type类型,可以修改此处类型来绕过

文件头

jpg,png,gif等文件都有特定的文件头格式,如果只检查文件头不检查内容的话,可以抓包然后修改文件头内容,进行绕过

PHP函数$FILES详解

在PHP中上传一个文件建一个表单要比ASP中灵活得多。具体的看代码。

<form enctype="multipart/form-data" action="upload.php" method="post"> 
    <input type="hidden" name="MAX_FILE_SIZE" value="1000"> 
    <input name="myFile" type="file"> 
    <input type="submit" value="上传文件"> 
</form> 

然后upload.php中可以直接用 $_FILES $_POST $_GET 等函数获取表单内容。 当客户端提交后,我们获得了一个$_FILES 数组

$_FILES数组内容如下:

$_FILES['myFile']['name'] 客户端文件的原名称。 $_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。 $_FILES['myFile']['size'] 已上传文件的大小,单位为字节。 $_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的。 $_FILES['myFile']['error'] 和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量)

https://blog.csdn.net/haoyunyun888/article/details/81079274

https://www.jb51.net/article/46787.htm

在学习文件上传漏洞后,我们不能之将目光局限于网站,中间件上面也可能存在文件上传漏洞

在这里插入图片描述

中间件解析漏洞

1. Apache低版本解析漏洞

比如对于1.php.xxx,在解析的时候不认识xxx后缀,继续向前解析,解析到认识的为止,在此版本的Apace中,我们可以上传一个无法识别的后缀,达到上传目的

2.Apace上传.htaccess文件

3. Apache HTTPD换行解析漏洞

Apache版本2.4.0-2.4.9

CVE-2017-15715,

image-20241030201150591

https://vulhub.org/#/environments/httpd/CVE-2017-15715/

博客园复现:https://www.cnblogs.com/0dot7/p/17209300.html

4.Nginx 文件名逻辑漏洞(CVE-2013-4547)

vulhub链接:https://vulhub.org/#/environments/nginx/CVE-2013-4547/

参考链接:https://www.cnblogs.com/Junglezt/p/18119782

WEB编辑器漏洞

https://blog.csdn.net/qq_42321190/article/details/138759016

点击跳转

编辑器漏洞整理

富文本编辑器漏洞整理

CMS文件上传

如果识别除了一个网站的CMS,可以使用网上的漏洞进行测试

如何寻找上传点

1.扫描

2.网站会员中心

web中间件常见漏洞总结 →