美文网首页
upload-labs通关

upload-labs通关

作者: BuFFERer | 来源:发表于2018-12-07 17:56 被阅读0次

    pass-01

    尝试上传一个php,发现提示不行。

    前端js拦截了,先将php文件后缀改为允许的格式,比如jpg,burp抓包改一下就好了。后缀改为php成功上传。

    访问发现上传成功。

    pass-02

    观察第二关的源码,发现判断content-type。

    依旧burp抓包,修改content-type。

    访问发现上传成功。

    pass-03

    查看源码,发现是设置了文件后缀名黑名单,禁止上传后缀名为php的文件,这里利用php2、php3、php4、php5一样会解析,直接修改后缀名为php2上传。

    由于我这里是用phpstudy搭建的,所以没办法解析,只能放一张图以示抱歉。

    pass-04

    观察源码,这次的黑名单更多基本所有的都包括了,而且还将全部都转换为小写。

    这里网上百度的方法,上传.htaccess文件

    方法一、.htaccess内容为
    <FilesMatch "文件名">

      SetHandler application/x-httpd-php

    </FilesMatch>

    按情况修改文件名

    方法二、.htaccess内容为

    AddType application/x-httpd-php .jpg

    不过两种方法均为成功,很尴尬- -!

    pass-05

    观察第五关源码,发现将.htaccess也加入了黑名单,可是去掉了大写转换成小写,直接将后缀名改为大写上传成功。

    pass-06

    观察源码,发现一样的黑名单,也加上了大写转换成小写,但是没有了首位去空,这里可以最后加空格绕过。

    burp抓包,后缀名添加空格。

    访问上传成功。

    pass-07

    观察源码,这次和第六关相比,首位去空回来了,但是少了去“.”,利用windwos特性,会自动去掉文件后缀名最后的“.”进行上传。

    burp抓包修改,进行上传。

    访问发现上传成功。

    pass-08

    这是一个涨姿势的关,第八关这个绕过方式我之前是不知道的,就是在php+windows的情况下:如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名.且保持"::$DATA"之前的文件名。观察源码,巧了没有这个。

    burp抓包,修改后缀。

    发现成功上传。

    pass-09

    又是涨姿势的一关,程序先是去除文件名前后的空格,再去除文件名最后所有的.,再通过strrchar来寻找.来确认文件名的后缀,但是最后保存文件的时候没有重命名而使用的原始的文件名,导致可以利用类似one.php. .(两个点号之间有一个空格)绕过,如果重名名了文件的话应该会用$file_ext来进行拼凑文件,这样保存在服务器中的文件将没有后缀(去除了.空格)

    pass-10

    观察源码,发现是黑名单+去掉后缀名,双写后缀名绕过。

    pass-11

    观察源码,这次变成了白名单判断,当有php环境中有两个截断条件: 1.php版本小于5.3.4 详情关注CVE-2006-7243 2.php的magic_quotes_gpc为OFF状态,便会有00截断,利用00截断上传。

    burp抓包修改,上传成功。

    pass-12

    观察源码,这里保存用了post方法,所以要用burp再16进制里面改,因为post不会像get对%00进行自动解码。

    burp抓包找到然后修改。

    查看发现上传成功。

    pass-13 -- pass-16

    上传图片马即可。copy normal.jpg /b + shell.php /a webshell.jpg

    十三关是对比文件的前两个字节

    十四关是用了getimagesize函数来对文件类型做判断

    十五关是用的exif_imagetype函数

    十六关是用的二次渲染

    pass-17

    观察源码,发现是条件竞争,上传之后就会删掉。

    这里可以通过burp的intruder模块来实现。我又一次失败。

    pass-18

    一样失败,但看大佬的说是本关对文件后缀名做了白名单判断,然后会一步一步检查文件大小、文件是否存在等等,将文件上传后,对文件重新命名,同样存在条件竞争的漏洞。可以不断利用burp发送上传图片马的数据包,由于条件竞争,程序会出现来不及rename的问题,从而上传成功。

    pass-19

    观察源码,CVE-2015-2348 move_uploaded_file() 00截断。

    上传成功。

    到这里就结束了,好多都还没有吸收,都需要再回头复习。

    链接:https://pan.baidu.com/s/1dne-3fR5M1VylcjhhZQLCw

    提取码:ij7r

    Github上也有。

    相关文章

      网友评论

          本文标题:upload-labs通关

          本文链接:https://www.haomeiwen.com/subject/smfacqtx.html