zoukankan      html  css  js  c++  java
  • 【渗透课程】第七篇-上传漏洞之绕过上传漏洞

    前一篇我们已经讲过了上传漏洞的解析漏洞,在某些时候,知道网站存在哪个解析漏洞,那么我们就可以更好的利用上传漏洞

    这个知识点在我们前面就有粗略说过了(http://www.yuntest.org/index.php/archives/765.html), http拦截也是上传漏洞的其中之一, 下面我们来对绕过上传漏洞进行更深的了解。

    正文

    管理员防止文件上传漏洞时可以分为两种,一种是客户端检测,一种是服务端检测:

    客户端检测:使用JavaScript检测,在文件上传之前,就对文件进行验证

    服务器端检测:服务端脚本一般会检测文件的MIME类型(这里大家先点过去了解一下mime类型)检测文件扩展名是否合法,甚至有些程序检测文件中是否嵌入恶意代码

    图片一句话:

    把一句话木马插入在图片文件中,而且并不损坏图片文件,这一方法可以躲过少许的防火墙检测。再利用解析漏洞得到webshell

    推荐一款专业的制作软件:LEdjpgcom

    一、客户端检测绕过方法:

    FireBug插件:将用于检验文件扩展名的onsubmit事件删除。

    中间人攻击:使用Burp Suite,首先把木马扩展名改为一张正常图片(图片木马的简介上一篇说过了,大家可以百度加以了解)的扩展名,比如JPG扩展名,,在上传时使用Burp Suite拦截上传数据,再将其中的扩展名JPG修改为PHP,就可以绕过客户端验证。也有可能还需要相应地修改Content-Length(Http知识点,看不明白跑回去看:http://www.yuntest.org/index.php/archives/686.html)

    任何客户端验证都是不安全的,客户端验证是防止用户输入错误,减少服务器开销,而服务器端验证才可以真正防御攻击者。

    注:从第一篇一直看到这里的,不理解的去面壁

    二、服务器端检测

    白名单与黑名单验证

    黑名单过滤方法:定义不允许上传的文件扩展名

    黑名单的绕过方法:

    1.攻击者可以从黑名单中找到Web开发人员忽略的扩展名,如:cer

    2.对文件的后缀名进行大小写转换,比如黑名单中有php,可以将文件的后缀改为pHp,仅限windows平台

    3.在windows系统下,如果文件名以“.”或者空格作为结尾,系统会自动删除“.”与空格,利用此特性也可以绕过黑名单验证。(asp.或asp_)

    白名单过滤方法:定义允许上传的文件扩展名

    白名单的绕过方法:结合Web容器的解析漏洞

    MIME验证

    php中通过$_FILE['file']['type']来检验

    绕过方法:可以在Burp Suite中更改Content-Type的内容为image/jpeg

    目录验证

    在文件上传时,程序通常允许用户将文件放到指定的目录中,如果指定的目录存在,就将文件写入目录中,不存在的话则先建立目录,然后写入。

    比如:在前端的HTML代码中,有一个隐藏标签<input type="hidden" name="Extension" value="up"/>

    服务器端有如下代码

    if(!is_dir($Extension)){ //如果文件夹不存在,就建立文件夹

    mkdir($Extension);

    }

    攻击者可以利用工具将表单中value的值由“up”改为“pentest.asp”,并上传一句话图片木马文件。

    程序在接收到文件后,对目录判断,如果服务器不存在pentest.asp目录,将会建立此目录,然后再将图片一句话密码文件写入pentest.asp目录,如果Web容器为IIS 6.0,那么网页木马会被解析。

    截断上传攻击

    在ASP程序中最常见,也就是%00将后面的字符都截断了,比如上传文件名为1.asp%00xxser.jpg。

    实际操作过程中,利用Burp Suite的Repeater中的HEX选项卡可以进行这样的操作。

    截断上传漏洞不仅出现在ASP程序上,在PHP、JSP程序中也存在这样的问题。

    0x00不是针对所有基于白名单的后缀名检查都能绕过,代码的实现过程中必须存在截断上传漏洞。

    转载请注明出处:云态中国


  • 相关阅读:
    一些业内有名的网站收集
    WCF重载
    FCKEditor fckconfig.js配置,添加字体和大小 附:中文字体乱码问题解决
    查询第几条到第几条的数据的SQL语句
    SPOJ 9939 Eliminate the Conflict
    UVA 10534 Wavio Sequence
    HDU 3474 Necklace
    POJ 2823 Sliding Window
    UVA 437 The Tower of Babylon
    UVA 825 Walking on the Safe Side
  • 原文地址:https://www.cnblogs.com/cnhacker/p/6984687.html
Copyright © 2011-2022 走看看