ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

文件上传漏洞解析与upload题库讲解

2021-04-13 14:31:49  阅读:213  来源: 互联网

标签:文件 00 asp upload jpg 题库 php 上传


一:前端检测

  1.在前端文件上传时直接进行检测
  例如直接检测后缀名 
                       解决方法:
                       可以直接在页面中删除上传时所触发的事件
                       可以使用but进行抓包处理 修改文件后缀名

2.服务器端防御 (content-type类型)(例如14题)
MIME类型(描述消息类型的因特网标准)
常见的MIME举例
当需要读取图片大小时 (这时后缀名和类型都没用)
可以使用图片方法
(1).这时可以写一个简单的图片木马:(主要利用GIF89a)

GIF89a
<?php
phpinfo();
?>
          (  有时会发现可以上传但是服务器端无法读取里面的木马代码)

(2).可以将图片和木马的文件合并起来(这种情况有时候显示不出来 受到图片源码的影响)
例如: copy smile.jpg/b+infor.php/a smileinfor.jpg

(3).利用十六进制编辑器 (文件幻术 利用十六进制和ascii转换)
我们知道所有的jpg 图片的文件头部都是相同的,png和gif图片也一样
https://blog.csdn.net/tan6600/article/details/43672879—(常用的十六进制文件头部)

方法:可以将图片或文件的十六进制开头转换成ASCII 再接着在后边加上php木马病毒
服务器端在进行检测文件名的时候,依然会采用黑白名单策略。

(4) . 对于黑名单我们可以寻找其他可允许上传的类型来绕过限制
例如:

  • 禁止使用.php后缀时 我们可以使用 .php2 .php3 .phtml
    禁止.asp时 可以使用 .aspx .ascx .ashx .asa .cer
    禁止.jsp时 可以使用.jspx

    都可以进行尝试一下 是否可以执行

3.00截断 (%00 null空字符)(11题)

原理:0x00是十六进制表示方法,是ascii码为0的字符,在有些函数处理时,会把这个字符当做结束符。这个可以用在对文件类型名的绕过上。
----https://www.fujieace.com/penetration-test/file-upload-00.html—(00截断原理)

4. .htaccess攻击 (web页面 可以搞破坏 在网站后台可以编辑这个文件)(第4题)
.htaccess是Apache 服务器的配置文件 能够覆盖掉Apache的全局配置 是非常危险的一种web服务器端漏洞
例子:创建一个.htaccess文件放在upload_www目录下
(1).然后写入一句话AddType application/x-httpd-php .png (意思是可以将此www目录下的png文件以php的形式来执行)
(2).匹配文件名 举例文件名为【ajest】 (意思是将此文件以php的格式输出)

<FilesMatch  "ajest">
SetHandler  application/x-httpd-php
</FilesMatch>

5.web容器解析漏洞
例子:
(1). Apache解析漏洞 在文件名后面加上php.xxx.xx.x

(2). IIS6.0解析漏洞 (IIS是网页服务组件,用来搭载网站运行程序的平台即可,比如IIS结合php+ASP环境,即可放置目前流行的ASP/PHPx程序的网站程序)
@ asp;.jpg
time.asp;1.jpg(虽然是jpg后缀名 jph文件 但是还是会执行成功)
@ 1.asp/time.jpg (虽然是jpg文件但还是会执行asp代码)
----https://www.w3school.com.cn/asp/asp_syntax.asp–(asp语法)

(3).php CGI解析漏洞 (这个和php中的一个数据有关 cgi.fix_pathinfo 将此参数改为0后就可以防御)
@ IIS7.5/7.0 +php 环境
infor.png/.php (意思是.png文件以php的形式打开)
解决方法:找到处理映射程序 然后找到搭建的名称 打开请求限制 勾选对钩
在这里插入图片描述

@ Nginx 解析漏洞
例子:/info.png/1.php
@ Nginx 空字节漏洞(会将.html文件当作.php来运行)
例子:info.html%00.php
@ Nginx 文件名逻辑漏洞(以php文件输出)
例子: info.png(空格)…php 然后在but中将传送的第一个点的十六进制 数字改为00(也就是利用了00截断)

     Nginx拓展:Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

-----https://blog.csdn.net/qq_15037231/article/details/80406679----(为什么要使用Nginx)

6.常见的编辑器上传漏洞
介绍:编辑器就是网站后台编辑网页的在线编辑器,会自动集成文件上的功能,这些编辑器的某些版本也存在文件上传漏洞。
首先进入后台之后可以修改网站的配置 修改白名单黑明单等 修改网站配置时 类似于输入框的地方输入一句话木马
例如:
ewebeditor
fckeditor

7.常见CMS漏洞

介绍:cms是内容管理系统(网站的模板,快速建站,二次开发),市面上很多开源的历史版本中都存在文件上传漏洞,但是产生文件上传漏洞的原因不尽相同,类似的CMS有很多,比如dedecms phpcms,海洋cms

例如:—南方数据管理系统(asp网站 利用数据库备份getshell )
asp|access|.mdb|下载
方法:另存 |自定义文件的名字 我们就可以上传一个图片木马 利用数据库备份的另存功能将我们的图片木马重新命名 更改文件后缀名
得到用户名和密码后台管理员
注入方法:
1.
在这里插入图片描述

   2.   

在这里插入图片描述

扫后台 :御剑

8.$ DATA
NTFS文件系统包括对备用数据流的支持。这不是众所周知的功能,主要包括提供与Macintosh文件系统中的文件的兼容性。备用数据流允许文件包含多个数据流。每个文件至少有一个数据流。在Windows中,此默认数据流称为:$ DATA。
因此可以在文件后缀加上::$DATA绕过

9.可以用but跑一下 字典 跑一下哪种后缀可以执行

做题:(phpinfor7 可以直接上传)
1.直接在页面上改或者利用抓包修改文件后缀
在这里插入图片描述

2.更改mime 改为image/jpeg

3.可以更改文件后缀 例如.php5

4.利用上传.htaccess结尾的文件 在里面写上读取所有文件以php的格式 然后上传一个.jpg文件

5 .user.ini() 写入 auto_prepend_file=pass5.png(指定一个文件pass5.png) 执行文件以php的格式 .ini会将写入的文件放在当下的php文件下面执行

6.利用大小写绕过

7.空格绕过在文件php后边加上一个空格

8.由于禁止上传一切文件后缀所以 可以在最后加上点 .

9.利用windows特性对::$DATA

  1. . 空格 . 绕过在文件的后缀加上 . 空格 .

11.可以进行字节绕过 在文件后缀设置双文件名pphphp过滤即可

12.00截断 get 因为是由$img_path拼接而成所以可以直接使用00截断
在这里插入图片描述

13.00截断post 原因是 %00 截断在 GET 中被 url 解码之后是空字符。但是在 POST 中 %00 不会被 url 解码,所以只能通过 burpsuite 修改 hex 值为 00 进行截断,也就是在post情况下,需要先对%00进行一个url编码。

14.15. 16图片头检查 可以利用结合的图片木马病毒 上边的是linux命令 windown 为copy 1.jpg+1.php 2.jpg 如果想要进一
步攻击 ----https://www.fujieace.com/penetration-test/file-contains-vuln.html----(可以登录查看)

15.16. 只是文件开头标识 的函数不一样

17.对图片木马进行二次渲染
------https://www.fujieace.com/penetration-test/upload-labs-pass-16.html—(详情解析)
-------https://www.bilibili.com/video/BV1dE411n7tE-----(视频讲解 包括最后几道题的解析)

标签:文件,00,asp,upload,jpg,题库,php,上传
来源: https://blog.csdn.net/zl52111/article/details/115662270

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有