zoukankan      html  css  js  c++  java
  • 文件上传漏洞总结篇

    文件上传漏洞总结

    漏洞位于:只要能上传文件的地方皆有可能出现文件上传漏洞

    寻找漏洞:寻找能上传文件的地方,文本编译器

    攻击方法:任意文件上传,后缀大小写绕过,文件类型绕过,双写后缀名绕过,请求特殊后缀绕过,图片木马合并上传,文件00截断绕过,截断攻击%和&,web服务器环境配置寻找漏洞  例如:IIS6.0的解析漏洞

    任意文件上传:

     

    直接上传没有任何防御措施

     

    后缀大小写绕过(成功概率很小,暂时没有成功过)

    例子:shell.php 改为:shell.Php, shell.pHp, shell.PHP

    文件类型绕过:

    现在大部分都进行了文件类型判断,通过Content-type头判断

    这里拿DVWA的中级防御来进行示范

     

    Php代码:

     

    直接上传百分百失败,先把1.php改为1.jpg。上传的时候用burpsuite截断,将1.jpg改为1.php

    即可绕过此防御。

     

    符合条件,所以上传成功。

     

    双写后缀名绕过:

    例子:shell.jpg 变为jspshell.jspsp

          Shell.jpg 变为 php shell.jphphp

          .........

    双写后缀名绕过虽然可以上传成功但是,无法连接到菜刀,所有

    只能用于恶意上传并不能获取服务器权限。

    特殊后缀名上传:

    将上传的文件的后缀名改为一些不常见的,

    1. 1.php 变为 1.vbs
    2. 1.php 变为 1.php0

    此操作也不能获取服务器权限

    图片马合并上传:

    在特殊的一些服务器环境里或文件包含漏洞,可以使用

    如:IIS6.0的解析漏洞

    1)当建立*.asa,*.asp格式的文件夹时,其目录下的任意文件都会被IIS当做asp文件解析。

    2)当上传的文件为*.asp;1.jpg时,IIS6.0同样以ASP脚本来执行。

    3)实例:http://blog.sina.com.cn/s/blog_7fe448c70101ab7u.html

    在挖掘到一个文件包含漏洞的时候,上传图片马。利用本地文件包含图片马

    从而获取服务器权限。

    实例:https://www.jianshu.com/p/0cc01ee0d247

    文件0x00截断上传:

    有些文件系统读到0x00的时候就不会在读,导致了截断。

    例子:上传 shell.jsp0x00jpg,会把jpg后缀给过滤掉

    导致shell.jsp上传(请求成功,但实际上无数据)

    截断文件将20改为00

    例子:将shell.php上传用burosuite抓包,改为shell.php +空格+shell.jpg=shell.php shell.jpg

    Hex,找到文件名哪行的20改为00

    例子:https://blog.csdn.net/yiyefangzhou24/article/details/8986281

    文件上传漏洞测试手段:

     

    一些常见的web配置环境所出现的漏洞:

    IIs6.0:(这里的IIS环境有很多类似的漏洞记得百度)

    4)IIS6.0:当建立*.asa,*.asp格式的文件夹时,其目录下的任意文件都会被IIS当做asp文件解析。

    5)当上传的文件为*.asp;1.jpg时,IIS6.0同样以ASP脚本来执行。

    Apache 1x2x:

    apache遇见不认识的后缀名会从后向前解析,例如:1.php.rar。他不认识rar就向前解析,直到他认识的后缀名。

    PHPCGINginx)(这个不是phpCGI独有的漏洞有时候在IIS也会出现):

    当上传1.jpg之后。访问1.jpg/1.php。此时的1.jpg会被当做php来解析。

    文件上传漏洞常见的防御手法:

    1)前端JavaScript验证 (发现有只前端验证的话,手动写一个文件上传的htmlaction设置为判断文件即可。)例如:

    检测上传文件的是:upload.php 但是服务端没做判断,前端做了判断。

    <form action=’http://xx/upload.php’ method=’post’>

    <input type=’file’ name=’file’ id=’file’><br>

    <input type=’submit’ value=’提交’>

    </form>

    2)服务端检测(黑白名单验证,Content-Type判断) 上面已经说过如何绕过服务端验证。

    黑名单检测绕过方法:如上

    白名单检测方法:白名单并不能完全防御住,上传漏洞。可以通过web环境配置的缺陷与

    其他漏洞一起利用。

    文件上传防御方法:

    服务端白名单防御。注意修复web环境带来的漏洞与其他漏洞。

  • 相关阅读:
    括号序列
    乘积最大
    装箱问题
    开心的金明
    金明的预算方案(有依赖的背包问题)
    砝码称重
    (枚举)算法竞赛入门经典(7.1.2)最大乘积
    (枚举)算法竞赛入门经典(7.1.1)除法
    Zabbix历史数据清理
    sonarqube6.7.1使用
  • 原文地址:https://www.cnblogs.com/haq5201314/p/9276363.html
Copyright © 2011-2022 走看看