【web安全】文件上传 复习

目录

一、基本概念

        1、webshell

        2、木马:大马、小马、一句话木马、脱库马等等

                1)一句话木马 :短小而精悍

        2)一句话木马管理软件:功能强大

        3)小马

        4)大马

        5)图片马

二、漏洞概述

1、漏洞原理

2、攻击成功的条件:

3、文件上传思路(如何找到上传点)

三、文件上传绕过分类

1、前端绕过:所有的前端检测都是不安全的

        1)js检测文件后缀绕过

        2)文件类型绕过-->MIME检测:会根据上传的文件检测到content-type值

2、后端绕过(针对黑名单过滤)

        1)文件后缀绕过

                a)文件后缀绕过

                b)上传配置文件

                c)web容器解析漏洞

        2)文件内容检测绕过

                a)文件头检测绕过

                b)文件内容绕过:一些后端检测禁止等字样

四、dvwa靶场

1、security=low

2、security=medium

3、security=high


一、基本概念

        1、webshell

                1) webshell就是一种以asp、jsp、php或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称之为一种网页后门;

                2)web:就是服务器开放的web服务,shell指对服务器某种程度上的操作权限;

webshell就是通过网站端口对网站服务器的某种程度上操作的权限;

                3)由于webshell大多数是以动态脚本的形式出现,也有人称之为网站后门

        2、木马:大马、小马、一句话木马、脱库马等等

                1)一句话木马 :短小而精悍

                php一句话木马:<?php @eval($_POST[‘value’]);?>   

                                   变形:<?php $_GET['a']($_GET['b']);?>

                php@符又叫错误抑制符,也就是用来屏蔽错误的

                eval() 函数把字符串按照 PHP 代码来计算,该字符串必须是合法的 PHP 代码(其实就是去掉引号)

                试着写一个先保存(本地写一个会被windows杀掉)

                防火墙-->病毒和威胁防护--->添加排除项

                

试着访问

甚至执行一些cmd命令

        2)一句话木马管理软件:功能强大

        可以做到文件管理,文件的上传和下载等等;常见的有菜刀、蚁剑等等

        3)小马

        4)大马

甚至可以做到提权

        5)图片马

就是将木马放在正常图片里面,命令如下所示,得结合其他漏洞进行攻击吧

copy hack.jpg/b+hack.php/a normal.jpg

hack.jpg是正常图片,hack.php是一句话木马文件;/b是转换为二进制文件,/a是转换为ascii文件;将木马文件复制到图片中,重命名为normal.jpg文件

二、漏洞概述

1、漏洞原理

未对上传的文件做严格限制或者限制被过滤,导致用户可以上传任意文件就存在漏洞,若是上传脚本文件或者可执行文件就会导致服务器沦陷;

2、攻击成功的条件:

        1)上传的文件能被web容器解析执行

        2)用户通过web可访问该文件(知道文件上传后的路径和文件名)

3、文件上传思路(如何找到上传点)

        常规的有头像上传、扫描获取上传等等上传点

        先看是否有web中间件解析漏洞--->CMS通杀漏洞--->编辑器漏洞--->cve--->文件上传点

        工具:基于字典的扫描器/爬虫

三、文件上传绕过分类

1、前端绕过:所有的前端检测都是不安全的

        1)js检测文件后缀绕过

        两种办法:

        一种是直接禁用js;

        另一种是先将后缀改成允许上传的,然后抓包工具例如burp suite改为可执行文件的后缀

        2)文件类型绕过-->MIME检测:会根据上传的文件检测到content-type值

        例如php文件的content-type值就是application/octet-stream

        而jpg文件的content-type是image/jpeg

        这个也好绕过,抓包改一改就行,改成允许的就可以

2、后端绕过(针对黑名单过滤)

        1)文件后缀绕过

                a)文件后缀绕过

 一些web容器可能不仅允许php后缀,php2、php3、phtml等都可以被解析为php执行

     前提是配置文件中有写,例如apache的httd.conf中有下列语句

      AddType application/x-httpd-php .php .php2 .php3 .phtml

     而黑名单只对php后缀进行过滤                   

                b)上传配置文件

许多web容器允许在各个目录创建配置文件,仅对该目录生效

  • .htaccess文件绕过(分布式配置文件)
    • 前提:必须是apache
    • 即使和httd.conf不一样,在该目录中也是.htaccess文件生效
    • 利用:AddType application/x-httpd-php .jpg   

                (使得.jpg文件被当作php文件执行)

  • .user.ini文件绕过
    • 和.htaccess文件类似,只要是以fastcgi运行的php都可以用这个方法
    • 前提:上传的文件的目录下必须有可执行文件
    • 利用:.user.ini文件中的auto_append_file和auto_prepend_file两个配置项指定的文件都会被当前目录的可执行的PHP文件所包含(前者在末尾包含,后者在开头包含),类似与在执行当前目录的PHP文件前或后使用require()函数,包含配置项指定的文件。

                例如 auto_prepend_file=1.jpg

                1.jpg就是里面是包含攻击语句的php代码

                c)web容器解析漏洞
  • apache解析漏洞
    • apache在解析多后缀文件时,会自右向左依次检测,直到检测到可以识别的后缀;
    • 例如:1.jpg.php.eee.try会被识别为1.php
    • apache2.x的一些版本受影响
  • IIS解析漏洞(IIS5.x和IIS6.0)
    • 文件解析漏洞:1.asp;.jpg会解析为1.asp(分号后面的不解析)
    • 目录解析漏洞:.asp目录下的所有文件都会以asp格式执行,例如1.asp/1.jpg会被当作1.asp执行
  • Nginx解析漏洞
    • 虚构目录漏洞:例如有一个文件1.jpg,如果我们访问/1.jpg/1.php这个虚构目录,服务器会直接将1.jpg作为php文件进行解析

        2)文件内容检测绕过

                a)文件头检测绕过

                一些文件有文件标识,例如图片文件,常见的有

                        

                b)文件内容绕过:一些后端检测禁止<?php ?>等字样

绕过方法:可以使用<script language="php">...</script>或者php短标签

四、dvwa靶场

准备两个文件,一个木马,一个正常的png图片

1、security=low

尝试上传木马文件

成功上传

去访问

这里出现了一点小问题,因为phpstudy搭建在win10上,该文件直接被查杀了,我们同样去设置一下策略,“防火墙--->病毒和威胁”-->添加排除项,排除uploads文件夹

重新上传后访问

2、security=medium

上传muma.php失败

修改content-type值

成功上传

3、security=high

各种都尝试过,似乎需要上传图片马,结合命令执行漏洞更改文件后缀进行执行

也可以使用文件包含函数直接包含进去会被当作脚本文件执行!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值