2022渗透测试-文件上传漏洞的详细讲解

简介: 2022渗透测试-文件上传漏洞的详细讲解

 目录

1.什么是文件上传漏洞

2.生成图片木马

3.靶场

1.第一关

2.前端检测(第二关)

3.服务器端检测--MIME类型(第二关)

4.服务器端检测--文件类型(第十四关)

5.服务器文件内容验证-文件头

6.服务器端检测后缀名(黑白名单)

7.%00截断(第11关)

8.htaccess攻击

9.web解析漏洞

10.编辑器上传漏洞

1.什么是文件上传漏洞

文件上传漏洞是指文件上传功能没有对上传的文件做合理严谨的过滤,导致用户可以利用此功能,上传能被服务端解析执行的文件,并通过此文件获得执行服务端命令的能力。

image.gif编辑

2.生成图片木马

在路径下准备好一句话木马.php和一张图片 .png (或者 .jpg )

输入系统指令: copy 一张图片.png/b+一句话木马.php/a 生成图片名称.png

这样图片木马就合成好了

image.gif编辑

image.gif编辑

3.靶场

1.第一关

删除事件,上传php文件,复制图像链接,打开

image.gif编辑

image.gif编辑

image.gif编辑

2.前端检测(第二关)

使用Burp软件进行抓包改包(属于前端检测)

1.浏览器设置代理,安装证书

image.gif编辑

image.gif编辑

2.开启拦截,上传文件

拦截成功(将localhost改为本地IP,并修改文件的后缀)

image.gif编辑

3.放包,关闭拦截

image.gif编辑

4.复制文件路径,浏览器中的打开

image.gif编辑

3.服务器端检测--MIME类型(第二关)

MIME是描述消息内容类型的因特网标准。

MIME消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。

常见的MIME类型如下:

.js      application/x-javascript

.html    text/html

.jpg     image/jpeg

.png     image/png

.pdf     application/pdf

在HTTP协议中,使用Content-Type字段表示文件的MIME类型。当我们上传文件的时候,抓到HTTP数据包。

1.首先上传一个info.php文件

image.gif编辑

2.在burp软件中查看代理,并发送给repeater,点击重发器,点击发送。我们可以看到,此时会提示文件类型不正确。

image.gif编辑

3.将content-type修改为image/png格式,然后再次发送。此时,我们就可以看到图片的路径。有时候我们服务器检测的就是content-type类型(用于定义文件类型),数据来源于客户端。

image.gif编辑

4.服务器端检测--文件类型(第十四关)

除了检测文件上传的Content-Type类型,为了保持安全性,服务器端还会检测文件内容。

php中有一个函数getmagesize(),这个函数是检查图片的大小,但是在检查之前,该函数会判断目标文件是否是一张图片,因此,可以用该函数来检测文件的内容。

1.上传文件info.php,抓包,发送给repeater。此时,文件上传失败。

image.gif编辑

2.生成图片木马

最简单的方法就是将php文件改为jpg格式,在文件开头添加GIF89a。如图,可以证实图片已存在。

image.gif编辑

image.gif编辑

image.gif编辑

5.服务器文件内容验证-文件头

常见文件幻数

JPG: FF D8 FF E0 00 10 4A 46 49 46 00 01 01 01 01 2C

GIF:47 49 46 38 39 61 F1 00 2C 01 F7 00 00 64 32 33

PNG:89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52

6.服务器端检测后缀名(黑白名单)

黑名单:代码中$deny_ext 数据就是一个黑名单,数组元素就是不允许上传的类型。

白名单:ext_arr

7.%00截断(第11关)

00就是Null字符,url中表现为%00,00截断会导致文件上传路径截断。

image.gif编辑

image.gif编辑

我们可以看到,有上传限制。我们将文件名改为gif格式,再次发送。

image.gif编辑

修改save_path路径,可以发现会影响上传路径

image.gif编辑

image.gif编辑

8.htaccess攻击

.htaccess是Apache服务器的分布式配置及文件,该文件会覆盖Apache服务器的全局配置,作用域是当前目录及其子目录。

如果一个web应用允许上传.htaccess文件,那就意味着攻击者可以更改Apache的配置,这是十分危险的。

首先看Apache的配置,允许.htaccess文件覆盖Apache的配置。

image.gif编辑

将.png文件当作PHP文件解析

将以下代码写入文件,并保存为.htaccess名字,放到测试目录下

AddType application/x-httpd-php .png

在同一目录下创建文件[info.png],文件内容如下

<?php

phpinfo();

?>

当我们访问该文件时,[info.png]内的PHP代码将被执行。

image.gif编辑

image.gif编辑

image.gif编辑

文件名中包含php关键字

当文件ming[info.php.png]中包含关键字[.php],并且.htaccess文件内容如下,info.php.png中的代码会被执行。

AddHandler php5-script php

image.gif编辑

匹配文件名

一下匹配是匹配文件名[ajest],找到该文件,并执行其中的php代码

<FileMatch "ajest">

SetHandler application/x-httpd-php

</FileMatch>

以第四关为例

先上传.htaccess文件,再上传ajest文件,复制图片链接,浏览器打开。

image.gif编辑

9.web解析漏洞

web容器解析漏洞,就是web容器在解析脚本出现的“bug”

1.Apache解析漏洞

php版本5.2.17,环境windows2008

info.xxx.xx.x

image.gif编辑

image.gif编辑

2.IIS6.0解析漏洞(windows2003)

@ asp;.jpg

 time.asp:1.jpg

@ 1.asp/time.jpg

image.gif编辑

image.gif编辑

第二种

image.gif编辑

image.gif编辑

3.php CGI解析漏洞

IIS7.5(windows 2008)

@  IIS7.0/7.5

  IIS7.0/7.5+php 环境

  让IIS7.0/7.5支持php环境

  http://localhost:8000/info.png/1.php

1.搭建IIS环境

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

2.使用phpstudy环境。

3.让IIS支持php环境

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

4.访问

image.gif编辑

image.gif编辑

5.预防措施

打开新建的处理映射程序,打开请求限制,打开映射即可。

image.gif编辑

image.gif编辑

6.漏洞原因

php配置的问题。

将cgi.fix_pathinfo的local value修改为0。

打开php.ini修改。

image.gif编辑

4.Nginx解析漏洞

windows 2008

/info.png/1.php

cgi.fix_pathinfo

image.gif编辑

5.Nginx空字节漏洞

Ngnix在遇到%00空字节时与后端FastCGI处理不一致,导致可以在图片中嵌入PHP代码然后通过访问xxx.jpg%00.php来执行其中的代码

影响版本:

nginx 0.5.*

nginx 0.6.*

nginx 0.7 <= 0.7.65

nginx 0.8 <= 0.8.37

image.gif编辑

image.gif编辑

6.Nginx文件名逻辑漏洞

影响版本:Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7

我们只需要上传一个空格结尾的文件,即可使PHP解析之。


漏洞测试:

启动漏洞环境:

环境启动后,访问http://your-ip:8080/即可看到一个上传页面。

image.gif编辑

上传文件,进行拦截。发送repeater包,点击go。我们可以看到,文件是无法上传的

image.gif编辑

将info.php修改为info.png,文件上传成功

image.gif编辑

image.gif编辑

关键步骤1:info.png后加上一个空格

image.gif编辑

访问文件,复制文件路径并打开。

image.gif编辑

点击repeater,在开启一个模块,右键打开paste URL(粘贴url作为请求)

image.gif编辑

关键步骤2:在info.png后加空格 ..php

image.gif编辑

关键步骤3:点击HEX,打开16进制模式,找到info.png ..php

image.gif编辑

将第一个点也就是图中的2e改为00

image.gif编辑

点击go发送

image.gif编辑

点击render

image.gif编辑

10.编辑器上传漏洞

1.ewebeditor编辑器上传漏洞

实验坏境:

   win2003

   IIS服务器

   ewebeditor编辑器

模拟实验:

把编辑器的目录放到网站目录下,然后在物理机上访问该网站

用户密码默认为admin,admin

由于版本问题,最好在旧版的IE浏览器中使用该编辑器

image.gif编辑

目录遍历漏洞模拟

1、点击上传文件管理,随便选择一个目录

image.gif编辑

2、点开默认网站的属性,找到主目录,点击配置

image.gif编辑

3、点击选项,勾选启用父路径

image.gif编辑

4、回到网页在网址后面加&dir=../../..就来到了C盘的根目录,并且可以随意删除

image.gif编辑

文件上传漏洞模拟

1、点击样式管理,选择设置

image.gif编辑

2、在两个选框中加入|asp后面的限制也可以改大点,方便上传大马,点击提交

image.gif编辑

3、点击预览,然后点击图片上传asp大马

image.gif编辑

4、上传大马后点击代码

image.gif编辑

5、將显示的路径复制下来

image.gif编辑

6、将路径粘贴到网址上,可以登录大马了

image.gif编辑

2.fck编辑器上传漏洞

操作环境:

windows 2003

image.gif编辑

点击browser,上传一个asp大马文件

image.gif编辑

使用brup进行拦截

image.gif编辑

将文件后缀改为jpg格式,复制图片路径

image.gif编辑

image.gif编辑

首先点击Create Folder(创建文件夹)新建一个文件夹名为1.asp点击确定

image.gif编辑

Current Folder(当前文件夹)把创建好的1.asp文件夹目录中,再创建一个2.asp的文件夹(因为不创建2.asp的文件夹1.asp的文件夹是不能使用的,所以要创建2.asp文件夹才可以使用,此版本漏洞的特性就是这样)。


创建好后2.asp系统把1.asp文件夹自动生成出来然后1.asp的文件夹才可以使用,在上传(yijuhua.jpg)木马。

image.gif编辑

image.gif编辑

打开菜刀,创建链接

image.gif编辑

image.gif编辑

然后上传一个大马文件到inmage文件下

image.gif编辑

打开black.asp

image.gif编辑

image.gif编辑

此时whomi无效

image.gif编辑

上传以一句话aspx

image.gif编辑

重新添加数据

image.gif编辑

image.gif编辑

打开此虚拟终端

image.gif编辑

可以看出我们权限不够,需要我们去提高权限

image.gif编辑

将pre.exe软件复制过来,同时将路径复制

相关文章
|
2月前
|
SQL 安全 关系型数据库
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞,品相还不错,可执行任意 SQL 语句。 总之,吃了一惊,一个防 SQL 注入的工具居然也有 SQL 注入漏洞。 请看这段代码
416 1
|
7月前
|
安全 Java 程序员
Web安全性测试系列(三)文件上传漏洞核心原理详解
Web安全性测试系列(三)文件上传漏洞核心原理详解
|
4月前
|
SQL 安全 网络安全
【Web渗透测试】—Web漏洞
【Web渗透测试】—Web漏洞
|
4月前
|
监控 安全 算法
漏洞测试与防护:监控局域网络的软件实用指南(Swift)
在当今数字时代,使用监控局域网络的软件维护网络安全至关重要。为了保护局域网络免受潜在威胁,漏洞测试和防护措施是必不可少的。本文将介绍一种基于Swift编程语言的软件实用指南,帮助您监控局域网络并加强安全性。
209 0
|
5月前
|
安全 Shell Windows
#windowsxpsp3系统MS08-067漏洞测试
#windowsxpsp3系统MS08-067漏洞测试
28 0
|
5月前
|
安全 网络协议 Shell
#windowsxpsp3系统MS10-046漏洞测试
#windowsxpsp3系统MS10-046漏洞测试
38 0
|
5月前
|
安全 Windows
#windowsxpsp3系统MS12-020漏洞测试
#windowsxpsp3系统MS12-020漏洞测试
44 0
|
7月前
|
安全 小程序 测试技术
关于近期小程序测试的常见漏洞演示
本章节将为大家介绍一下小程序常见的漏洞的展示案例,包括支付业务逻辑漏洞、任意用户登录漏洞、水平越权漏洞等高危漏洞
|
8月前
|
SQL 安全 测试技术
常见的Web安全漏洞有哪些,Web安全漏洞常用测试方法介绍
常见的Web安全漏洞有哪些,Web安全漏洞常用测试方法介绍
249 0
|
11月前
|
SQL 安全 前端开发

热门文章

最新文章