目录

1.什么是文件上传漏洞

2.生成图片木马

3.靶场

1.第一关

2.前端检测(第二关)

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

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

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

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

7.%00截断(第11关)

8.htaccess攻击

9.web解析漏洞

10.编辑器上传漏洞

1.什么是文件上传漏洞

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

2.生成图片木马

在路径下准备好一句话木马.php和一张图片 .png (或者 .jpg )
输入系统指令: copy 一张图片.png/b+一句话木马.php/a 生成图片名称.png
这样图片木马就合成好了

3.靶场

1.第一关

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

2.前端检测(第二关)

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

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

2.开启拦截,上传文件

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

3.放包,关闭拦截

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

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文件

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

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

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

除了检测文件上传的Content-Type类型,为了保持安全性,服务器端还会检测文件内容。
php中有一个函数getmagesize(),这个函数是检查图片的大小,但是在检查之前,该函数会判断目标文件是否是一张图片,因此,可以用该函数来检测文件的内容。

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

2.生成图片木马

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

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截断会导致文件上传路径截断。

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

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

8.htaccess攻击

.htaccess是Apache服务器的分布式配置及文件,该文件会覆盖Apache服务器的全局配置,作用域是当前目录及其子目录。
如果一个web应用允许上传.htaccess文件,那就意味着攻击者可以更改Apache的配置,这是十分危险的。
首先看Apache的配置,允许.htaccess文件覆盖Apache的配置。

将.png文件当作PHP文件解析
将以下代码写入文件,并保存为.htaccess名字,放到测试目录下
AddType application/x-httpd-php .png
在同一目录下创建文件[info.png],文件内容如下
<?php
phpinfo();
?>
当我们访问该文件时,[info.png]内的PHP代码将被执行。

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

匹配文件名
一下匹配是匹配文件名[ajest],找到该文件,并执行其中的php代码
<FileMatch "ajest">
SetHandler application/x-httpd-php
</FileMatch>
以第四关为例
先上传.htaccess文件,再上传ajest文件,复制图片链接,浏览器打开。

9.web解析漏洞

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

1.Apache解析漏洞

php版本5.2.17,环境windows2008
info.xxx.xx.x

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

@ asp;.jpgtime.asp:1.jpg
@ 1.asp/time.jpg

第二种

3.php CGI解析漏洞

IIS7.5(windows 2008)
@  IIS7.0/7.5IIS7.0/7.5+php 环境让IIS7.0/7.5支持php环境http://localhost:8000/info.png/1.php

1.搭建IIS环境

2.使用phpstudy环境。

3.让IIS支持php环境

4.访问

5.预防措施

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

6.漏洞原因

php配置的问题。
将cgi.fix_pathinfo的local value修改为0。
打开php.ini修改。

4.Nginx解析漏洞

windows 2008
/info.png/1.php
cgi.fix_pathinfo

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

6.Nginx文件名逻辑漏洞

影响版本:Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7
我们只需要上传一个空格结尾的文件,即可使PHP解析之。
​
漏洞测试:
启动漏洞环境:
环境启动后,访问http://your-ip:8080/即可看到一个上传页面。

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

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

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

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

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

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

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

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

点击go发送

点击render

10.编辑器上传漏洞

1.ewebeditor编辑器上传漏洞

实验坏境:win2003IIS服务器ewebeditor编辑器
模拟实验:
把编辑器的目录放到网站目录下,然后在物理机上访问该网站
用户密码默认为admin,admin
由于版本问题,最好在旧版的IE浏览器中使用该编辑器

目录遍历漏洞模拟

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

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

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

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

文件上传漏洞模拟

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

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

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

4、上传大马后点击代码

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

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

2.fck编辑器上传漏洞

操作环境:
windows 2003

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

使用brup进行拦截

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

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

Current Folder(当前文件夹)把创建好的1.asp文件夹目录中,再创建一个2.asp的文件夹(因为不创建2.asp的文件夹1.asp的文件夹是不能使用的,所以要创建2.asp文件夹才可以使用,此版本漏洞的特性就是这样)。
​
创建好后2.asp系统把1.asp文件夹自动生成出来然后1.asp的文件夹才可以使用,在上传(yijuhua.jpg)木马。

打开菜刀,创建链接

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

打开black.asp

此时whomi无效

上传以一句话aspx

重新添加数据

打开此虚拟终端

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

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

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

  1. 渗透测试-文件上传漏洞之MIME type验证原理和绕过

    文件上传漏洞之MIME type验证原理和绕过 文章目录 文件上传漏洞之MIME type验证原理和绕过 前言 一.什么是MIME type 二.MIME type验证原理和绕过 1. MIME ty ...

  2. 渗透测试-文件上传/下载/包含

    渗透测试-文件上传/下载/包含 概述 一.常见校验上传文件的方法 客户端校验 服务器端校验 1.校验请求头 content-type字段 2. 正则匹配来判断文件幻数(文件头)内容是否符合要求 3. ...

  3. tomcat temp 大量 upload 文件_渗透测试之文件上传漏洞总结

    文末下载上传环境源码 客户端 js检查 一般都是在网页上写一段javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式. 查看源代码可以看到有如下代码对上传文件类型进行了限制: 我们 ...

  4. 网络安全与渗透:文件上传漏洞,一文详解(十)此生无悔入华夏,男儿何不带吴钩

    中华人民共和国网络安全法 阅读本文前,请熟读并遵守中华人民共和国网络安全法: http://gkhy.jiujiang.gov.cn/zwgk_228/jc/zcwj/202006/P02020061 ...

  5. web渗透之文件上传漏洞

    目录 一.原理 二.利用方式 三.文件上传的风险处 四.文件上传漏洞的危害 五.文件上传漏洞常见的绕过方式 1.前端绕过检测 2.mime类型检测绕过 3.黑名单绕过 (1).相似扩展名 (2).ap ...

  6. web渗透之文件上传漏洞知识总结

    一.文件上传漏洞思路: 第一步: 首先看中间件:因为第一步看中间件就是确定是否存在解析漏洞(学习整理几种解析漏洞的对应版本,有些低版本有解析漏洞,有些高版本就没有.)中间件版本确定了,解析漏洞就确定了 ...

  7. 渗透测试之文件上传漏洞

    文件上传漏洞 理论: 文件上传: 用户提交文件到web服务器. 文件上传本身没有问题,问题是文件被上传到哪里,上传之后,服务器如何处理.解释文件. 文件上传漏洞产生的原因; web服务器的文件上传功能 ...

  8. 渗透测试-文件上传之getimagesize函数绕过

    文件上传之getimagesize函数绕过 文章目录 文件上传之getimagesize函数绕过 前言 一.什么是getimagesize函数 二.文件上传之getimagesize函数绕过 1. g ...

  9. 渗透测试-文件上传之大小写和window特性绕过(三)

    文件上传之大小写和window特性绕过 文件上传upload-labs实验室第6,7,8关 文章目录 文件上传之大小写和window特性绕过 前言 一.什么是window特性 二.大小写和window ...

最新文章

  1. 后盾网lavarel视频项目---页面post方式提交之后动态弹出错误信息
  2. MHA管理所有数据库服务器
  3. centos7 glpi 安装 Fusioninventory-agent 自测部署安装
  4. Unix Regex
  5. Sereja and Brackets CodeForces - 380C (线段树+分治思路)
  6. java 去掉 t_java中的“\t”
  7. 再好的代码没有电也跑不了
  8. JavaSE03、数组,引用,数组拷贝,二维数组
  9. [20170515]数据库启动的一个疑问.txt
  10. Java对象转Map的解决办法_java对象转map怎么操作?map如何转化成Java对象?
  11. 网狐cocos2d-lua棋牌二次开发搭建教程
  12. Element-Ui组件 单选框(Radio) 修改点击激活时的文本颜色,填充色和边框色
  13. 拉链表断链、交叉链判断及处理方式
  14. python定义接口的关键字_使用*args和**kws指定关键字参数
  15. python 高精度时间_如何基于Python代码实现高精度免费OCR工具
  16. android2012系统,压倒性份额四核技术 Android系统2012前瞻
  17. PHP处理base64编码字符串
  18. python并发编程书籍推荐_《吐血整理》-顶级程序员书单集
  19. 10-124 A3-4查询产品表中最大库存量
  20. uni-app里的拓展组件uni ui与UI框架uView UI的Popup 弹出层的区别!

热门文章

  1. LeetCode报错:Line 1034:Char9
  2. uniapp生态UI框架选择之uView(@莫成尘)
  3. 计算机 英文缩写含义,常见计算机英文缩写含义
  4. 基于FPGA的简易DDS信号发生器的设计(一)
  5. new Date() 获取本月天数、获取本月的最后一天日期
  6. python(第九天)
  7. 最新Mybatis插入数据返回自增主键详细配置
  8. 【Spring】IDEA中创建Spring项目
  9. 展示一下基于flask框架的网页播放器的代码
  10. matlab神经网络43个案例PDF,matlab神经网络预测模型