绕过服务器端对文件内容的检测,文件上传漏洞绕过手段

文件上传漏洞的成因:

1.服务器的错误配置

2.开源编码器漏洞

3.本地上传上限制不严格被绕过

4.服务器端过滤不严格被绕过

常见上传检测流程

a98328b87f4c48d3b44670f231eaa59a.png

2.文件上传漏洞的危害

(1)网站被控制

(2)服务器沦陷

(3)同服务器的其余网站沦陷

3.客户端验证检测

a98328b87f4c48d3b44670f231eaa59a.png

能够看到客户端代码中使用了javascript语言进行了简单的文件后缀名判断

这个时候咱们只须要将本机浏览器的javascript模块禁用就可使该段代码不被解析执行。

在火狐浏览器中,在

a98328b87f4c48d3b44670f231eaa59a.png

URL这里输入about:config

a98328b87f4c48d3b44670f231eaa59a.png

把JavaScript改成false

服务器端MIME绕过

MIME检测的是数据包content-type字段。常见的图片格式的MIME类型有如下 几种类型:

PNG图像:image/png

GIF图形: image/gif

JPG图形:image/jpeg

a98328b87f4c48d3b44670f231eaa59a.png

服务器段目录检测绕过

在文件上传时,有的程序容许用户将文件放到指定的目录中,若是指定目录存在就将文件写 入目录,不存在则先创建目录,而后写入。关键代码以下:

a98328b87f4c48d3b44670f231eaa59a.png

在HTML页面有一个隐藏的表单,它默认提交的文件夹名称为value的值,即”uploads”。代 码以下:

a98328b87f4c48d3b44670f231eaa59a.png

服务器端扩展名检测绕过

服务器端后缀名检测绕过脑图

a98328b87f4c48d3b44670f231eaa59a.png

黑名单绕过办法:

1.文件名大小写绕过:pHp,AsP

2.特殊文件名绕过

在Windows下有一个特性就是若是文件后缀以点‘.’或者空格‘ ’结尾的后缀 名时,系统在保存文件时会自动去除点和空格。但要注意 Unix/Linux 系统没有 这个特性。

由于有些服务器端的后缀名检测是取文件名最后一个.后面的字符串,拿这个字符串与黑名单列表对比

3. 0x00截断绕过

文件名后缀有一个%00字节,能够截断某些函数对文件名的判断。在许多语言函 数中,处理字符串的函数中0x00被认为是终止符

例如: 网站上传函数处理xxx.asp%00.jpg时,首前后缀名是合法的jpg格式,能够 上传,在保存文件时,遇到%00字符丢弃后面的 .jpg,文件后缀最终保存的后缀 名为xxx.asp

4 .htaccess文件攻击

a98328b87f4c48d3b44670f231eaa59a.png

白名单绕过办法

1.0x00 截断绕过

用像test.asp%00.jpg的方式进行截断,属于白名单文件

2.解析/包含漏洞绕过

这类漏洞直接配合上传一个代码注入过的白名单文件便可,再利用解析,包含漏洞。

文件内容检测绕过

针对文件内容检测的绕过,通常有两种方式,

1.制做图片马

2.文件幻术头绕过

图片马Windos下的制做

a98328b87f4c48d3b44670f231eaa59a.png

其中第一个/b表示指定以二进制格式进行复制(合并) 第二个/b表示以什么样的格式保存咱们刚刚合并的那个文件( 用于图像类/声音类文件)

还有一种参数/a,它表示以ASCII格式复制合并文件,用于txt等文档类文件

Linux下图片马的制做

a98328b87f4c48d3b44670f231eaa59a.png

固然 >>追加符号也是能够用的

文件幻术头绕过

图像相关的信息检测经常使用getimagesize( )函数。每种类型的图片内容最开头会有一个标志性 的头部,这个头部被称为文件幻术。经常使用图片类型有如下几类:

绕过jpg文件幻术检测要在文件开头写上下图的值

a98328b87f4c48d3b44670f231eaa59a.png

Value = FF D8 FF E0 00 10 4A 46 49 46

绕过png文件幻术检测要在文件开头写上下图的值:

a98328b87f4c48d3b44670f231eaa59a.png

Value = 89 50 4E 47

绕过gif文件幻术检测要在文件开头写上下图的值:

a98328b87f4c48d3b44670f231eaa59a.png

Value = 47 49 46 38 39 61

解析漏洞

解析漏洞这里介绍三种:

1.Apache解析漏洞

2.IIS解析漏洞

3.Ngix解析漏洞

1.Apache解析漏洞

WampServer2.0All Version (WampServer2.0i / Apache 2.2.11) [Success] l

WampServer2.1All Version (WampServer2.1e-x32 / Apache 2.2.17) [Success] l

Wamp5 All Version (Wamp5_1.7.4 /Apache 2.2.6) [Success] l

AppServ 2.4All Version (AppServ - 2.4.9 /Apache 2.0.59) [Success] l

AppServ 2.5All Version (AppServ - 2.5.10 /Apache 2.2.8) [Success] l

AppServ 2.6All Version (AppServ - 2.6.0 /Apache 2.2.8) [Success]

这几个版本的apache解析漏洞,你们能够本身百度下,按照别的大佬们说的作

2. IIS解析漏洞

IIS6.0有两个解析漏洞,一个是若是目录名包.

asp 、.asa、.cer字符串,那么这个目录下全部的文 件都会按照 asp 去解析。

例如: chaoasp/1.jpg

由于文件名中有

asp字样,因此该文件夹下的1.jpg文件打开时,会按照asp文件去解析执行

另外一个是只要文件名中含有.asp、.asa、.cer会优先按 asp 来解析

IIS7.0/7.5是对php解析时有一个相似于Nginx的解析漏洞, 对任意文件名只要在URL后面追加 上字符串“

/任意文件名.php”就会按照 php 的方式去解析 。

例子 :  ”

http://www.baidu.com/upload/chao/1.jpg/chao.php"

这种状况下访问1.jpg,该文件就会按照php格式被解析执行

3.Nginx解析漏洞

一个是对任意文件名,在后面

添加/任意文件名.php的解析漏洞,好比本来文件名是 test.jpg, 能够添加为 test.jpg/x.php 进行解析攻击。

一种是对低版本的 Nginx 能够在任意文件名后面添加

%00.php

例如:127.0.0.1/sql-loads/load/chao.jpg%00.php

那么chao.jpg也就被看成php格式文件执行

nginx 0.5.* [Success]

nginx 0.6.* [Success]

nginx 0.7 <= 0.7.65 [Success]

nginx 0.8 <= 0.8.37 [Success]

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2021 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值