web渗透-------WEB漏洞(文件上传)


在这里插入图片描述

一、基础知识

1、什么是文件上传漏洞?

文件上传漏洞是指 Web 服务器允许用户将文件上传至其文件系统,但这些文件可能并没有经过充分的验证,如文件名称、类型、内容或大小等。未能正确执行这些限制就意味着即使最基本的图像上传功能也可能用于上传任意具有潜在危险的文件,里面甚至包括远程代码执行的服务器端脚本文件。

在某些情况下,上传文件的行为本身就足以造成损害,其他攻击对该文件后续 HTTP 的请求,通常是为了触发服务器执行该文件。

2、文件上传漏洞有哪些危害?

上传漏洞与 SQL 注入或 XSS 相比,其风险更大,如果 Web 应用程序存在上传漏洞,攻击者上传的文件是 Web 脚本语言,服务器的 Web 容器解释并执行了用户上传的脚本,导致代码执行。如果上传的文件是 Flash 的策略文件 crossdomain.xml,黑客用以控制 Flash 在该域下的行为。

如果上传的文件是病毒、木马文件,黑客用以诱骗用户或者管理员下载执行。如果上传的文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈。甚至攻击者可以直接上传一个 webshell 到服务器上 完全控制系统或致使系统瘫痪。

3、文件上传漏洞如何查找及判断?

黑盒查找
白盒查找
代码分析,查找文件上传功能

4、文件上传漏洞有哪些需要注意的地方?

(1)服务器配置不当会导致任意文件上传;
(2)web应用开放了文件上传功能,并且对上传的文件没有进行足够的限制;
(3)程序开发部署时候,没有考虑到系统特征、验证和过滤不严格而导致限制被绕过。

5、关于文件上传漏洞在实际应用中的说明?

通过上传漏洞获得的网站后门,就是webshell。

二、验证及绕过

1、前端

(1)JS类防护

直接抓包绕过
案例演示(upload-labs第一关):
新建webshell.jpg文件,内容如下
在这里插入图片描述
上传文件,并抓包修改文件后缀
在这里插入图片描述
访问文件地址,成功上传
在这里插入图片描述

2、后端

(1)黑名单

常见黑名单类型:后缀名、文件类型(MIME 信息)、文件头等
黑名单常见绕过方法:特殊解析后缀,.htaccess解析,大小写绕过,点绕过,空格绕过,::$$DATA绕过,配合解析漏洞,双后缀名绕过
后缀名案例演示(upload-labs第3关,特殊解析后缀)
上传文件,并抓包修改文件后缀
在这里插入图片描述
访问文件地址,成功上传
在这里插入图片描述
文件头案例演示(upload-labs第14关,配合解析漏洞)
在一张图片添加木马信息,并抓包修改文件后缀
在这里插入图片描述
上传文件,并抓包修改文件后缀为php
在这里插入图片描述
访问文件地址,成功上传
在这里插入图片描述.htaccess解析绕过案例演示(upload-labs第4关)
上传.htaccess 文件

<FilesMatch "webshell.jpg">
SetHandler application/x-httpd-php
</FilesMatch>  

上传一张webshell.jpg包含php代码的文件
在这里插入图片描述
访问文件地址,成功上传
在这里插入图片描述
大小写绕过案例演示(upload-labs第6关,仅限windows)
上传文件,并抓包修改文件后缀为Php绕过
在这里插入图片描述
访问文件地址,成功上传
在这里插入图片描述
空格绕过案例演示(upload-labs第7关,仅限windows)
上传文件,并抓包修改文件后缀为php+空格绕过
在这里插入图片描述
访问文件地址,成功上传
在这里插入图片描述
点绕过案例演示(upload-labs第8关,仅限windows)
上传文件,并抓包修改文件后缀为php+.绕过
在这里插入图片描述
访问文件地址,成功上传
在这里插入图片描述
::$$DATA绕过案例演示(upload-labs第9关,仅限windows)
上传文件,并抓包修改文件后缀为php+::$data绕过
在这里插入图片描述
访问文件地址,成功上传(访问时去掉::$data)在这里插入图片描述
双后缀名绕过案例演示(upload-labs第11关)
上传文件,并抓包修改文件后缀为pphphp绕过
在这里插入图片描述
访问文件地址,成功上传
在这里插入图片描述

(2)白名单

MIME绕过案例演示(upload-labs第2关)
上传文件,并抓包修改文件类型为Content-Type: image/jpeg
在这里插入图片描述
访问文件地址,成功上传
在这里插入图片描述
%00截断绕过案例演示(upload-labs第12关)
上传一个webshell.jpg的文件,在save_path=…/upload后加上/wenshell.php%00
在这里插入图片描述
访问文件地址,成功上传
在这里插入图片描述
0x00截断绕过案例演示(upload-labs第13关)
在upload后加上/test.php,选中.php后的空格,代码更改为hex,数字改为00
在这里插入图片描述
在这里插入图片描述
访问文件地址,成功上传
在这里插入图片描述
0x0a绕过案例演示(upload-labs第13关)
原理同上不再演示

(3)内容及其他

突破getimagesize()绕过案例演示(upload-labs第15关)
通过getimagesize()函数判断文件类型,因此同样可以使用图片马
在这里插入图片描述
利用文件解析漏洞访问图片马
在这里插入图片描述

突破exif_imagetype()绕过案例演示(upload-labs第16关)
注:因为要使用exif_imagetype()需要开启php_exif
在这里插入图片描述
通过exif_imagetype()函数判断文件类型,因此同样可以使用图片马
在这里插入图片描述
利用文件解析漏洞访问图片马
在这里插入图片描述
二次渲染绕过案例演示(upload-labs第17关)
参考链接👉(https://www.cnblogs.com/Junglezt/p/16121181.html)
条件竞争绕过案例演示(upload-labs第18关)
利用bp的intruder模块多线程重放数据包,不断刷新访问地址
在这里插入图片描述
发送到bp攻击模块
在这里插入图片描述
在这里插入图片描述
发送访问上传文件数据包到bp攻击模块
在这里插入图片描述
在这里插入图片描述
文件访问成功
在这里插入图片描述

三、漏洞及修复

1、解析漏洞

Apache HTTPD 换行解析漏洞(CVE-2017-15715)
参考链接👉https://vulhub.org/#/environments/httpd/CVE-2017-15715/
Apache HTTPD 多后缀解析漏洞
参考链接👉https://vulhub.org/#/environments/httpd/apache_parsing_vulnerability/
Nginx 解析漏洞
参考链接👉https://vulhub.org/#/environments/nginx/nginx_parsing_vulnerability/
IIS7.5解析漏洞
参考链接👉https://www.jianshu.com/p/354fcf0939cc
IIS6解析漏洞
参考链接👉http://www.taodudu.cc/news/show-1427968.html?action=onClick

2、CMS漏洞

通达 OA 系统
参考链接👉https://blog.csdn.net/weixin_48776804/article/details/118885352

3、编辑器漏洞

Fckeditor
参考链接👉https://blog.csdn.net/qq_43168364/article/details/111605583
==ueditor ===
参考链接👉https://zhuanlan.zhihu.com/p/552081091

四、WAF绕过

1、上传参数名解析:明确哪些东西能修改?

Content-Disposition:一般可更改
name:表单参数值,不能更改
filename:文件名,可以更改
Content-Type:文件 MIME,视情况更改

2、常见绕过方法:

数据溢出-防匹配(xxx…)
符号变异-防匹配(’ " ;)
数据截断-防匹配(%00 ; 换行)
重复数据-防匹配(参数多次)

3、文件上传安全修复方案

后端验证:采用服务端验证模式
后缀检测:基于黑名单,白名单过滤
MIME 检测:基于上传自带类型检测
内容检测:文件头,完整性检测
自带函数过滤:参考 uploadlabs 函数
自定义函数过滤:function check_file(){}
WAF 防护产品:宝塔,云盾,安全公司产品等

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值